Upload
hoangnguyet
View
220
Download
0
Embed Size (px)
Citation preview
CPU
• Principal componente de um computador digital.
• Localiza e executa as instruções de um programa.
• Capaz de executar operações simples com grande rapidez.
Memória
• Principal – Memória volá3l usada para armazenar dados e programas. – Conteúdo modificável pelas instruções dos programas. – Permite acesso aleatório.
• Secundária – Um dos disposi3vos não-‐voláteis mais usados para o armazenamento de grandes volumes de dados.
– U3liza superHcies magne3záveis para armazenar as informações.
– Permite acesso randômico aos dados armazenados.
• Qualquer construção em linguagem de máquina deve ser representada por números binários formados apenas com seqüências de zeros (0s) e uns (1s)
• Computadores entendem apenas um conjunto rela3vamente pequeno de instruções simples como, por exemplo, mova tal número de uma posição para outra em memória ou some dois números inteiros. Cada 3po de computador possui um conjunto de instruções específico dessa natureza
• Uma sensível evolução em relação à linguagem de máquina foi o surgimento da linguagem assembly (final da década de 1940), que introduziu os seguintes melhoramentos: – Uso de palavras mnemônicas para representar operações escritas como códigos binários em linguagem de máquina. • ADD ao invés de 1001
– Uso de variáveis simbólicas em vez de endereços para representar espaços na memória do computador • X ao invés do endereço 1100
Linguagens de Programação • Programar em linguagem de máquina é uma tarefa entediante e propensa a erros.
• A par3r de meados dos anos 50 várias linguagens de alto nível foram criadas.
• Tais linguagens possuem nível de abstração rela3vamente elevados.
• �������������Elas são mais próximas das linguagens u3lizadas pelos seres humanos.
• Escolha da linguagem de programação depende da aplicação que sera desenvolvida.
Linguagens de alto nível • FORTRAN (1957) • COBOL (1960) • ALGOL (1968) • PASCAL (1970) • C (1972) • C++ (1983) • Python (1991) • JAVA (1995) • Go (2009)
Tradutores • Tradutor
– Tradutor é um programa de computador que aceita como entrada um programa escrito em assembly ou numa linguagem de alto nível, e produz como saída um programa escrito em linguagem de máquina. São 3:
– Assembler • programas escritos em assembly requerem um assembler (ou montador) para
traduzir programas escritos em assembly em programas escritos em linguagem de máquina.
– Compilador • Compilador é um programa que traduz um programa escrito numa linguagem de
alto nível (programa-‐fonte) num programa escrito numa linguagem de máquina (programa-‐objeto)
– Interpretador • interpretador não produz programas-‐objeto, ele simula um computador cuja
linguagem de máquina seria aquela do programa-‐fonte que está sendo traduzido, de forma que cada instrução do programa-‐fonte seja traduzida exatamente antes de ser executada e de acordo com o fluxo de execução do programa
Compilação
• Programas escritos em linguagens de alto nível não são executados diretamente pelo processador.
• Antes de executá-‐lo é preciso traduzir os comandos de alto-‐nível para instruções de máquina.
• Esta tarefa (compilação) é realizada por um programa chamado de compilador.
Solução de problemas • Obje3vo: encontrar uma sequência de passos que permitam que o
problema possa ser resolvido de maneira automá3ca e repe33va. • Detalhamento do problema. • Perfeita compreensão do problema. • Descrição da solução:
– Clara – não ambígua – Sequencial
• Linguagem u3lizada na solução deve ser compreendida pelo executor da solução.
• Atores envolvidos – criador da solução (programador) – executor da solução (computador) – usuário da solução (cliente, etc.)
Algoritmo • definição precisa do problema -‐> algoritmo • algoritmo consiste de uma sequência de passos
(instruções) que recebem alguns valores como entrada e produzem alguns valores como saída – quando executadas, as instruções de um algoritmo resolvem um determinado problema.
– essas instruções não devem ser ambíguas – todo algoritmo deve encerrar
• Receita culinária, instruções de direção = Algoritmos – Numa receita culinária, os ingredientes e utensílios u3lizados (por exemplo, ovos, farinha de trigo, assadeira) compõem a entrada e o produto final (por exemplo, um bolo) é a saída
Algoritmo • um algoritmo é desenvolvido para lidar com vários casos de
entrada. • Um algoritmo é correto, quando, para cada caso de
entrada, ele pára com a saída correta. Um algoritmo incorreto pode não parar quando ele recebe um dado caso de entrada ou pode parar apresentando um resultado que não é correto.
• Pode haver vários algoritmos funcionalmente equivalentes que resolvem um mesmo problema
• tradução de algoritmo planejado em código – etapa principal do desenvolvimento
• nem todo problema possui algoritmo – jogar xadrez, enriquecer etc.
Algoritmo • problemas que são resolvidos trivialmente por seres
humanos, como falar uma língua natural ou reconhecer um rosto, também não possuem solução algorítmica
• problemas rela3vamente diHceis para seres humanos, como mul3plicar dois números inteiros com mais de dez dígitos cada, possuem algoritmos rela3vamente triviais.
• A abordagem mais comum u3lizada na construção de algoritmos é denominada dividir e conquistar.
• U3lizando essa abordagem, divide-‐se sucessivamente um problema em subproblemas cada vez menores até que eles possam ser resolvidos trivialmente.
Algoritmo
• Variáveis • Operadores – Unários e Binários
• Expressões – Aritmé3cas – Relacionais – Lógicas
• Ações condicionais • Repe3ções
Bom código
• Legibilidade • Manutenibilidade • Portabilidade • Eficiência • Reusabilidade • Robustez • Usabilidade • Confiabilidade
• Linguagens declara3vas – HTML, NCL, XML…
• Declara3vo se descreve o que ele faz e não como seus procedimentos funcionam
• Linguagens de marcação são declara3vas pois descrevem o que são suas estruturas e não como elas serão u3lizadas
HTML
• HTML – abreviação para HyperText Markup Language, que significa Linguagem de Marcação de Hipertexto
• u3lizada na construção de páginas na Web. • Documentos HTML podem ser interpretados por navegadores.
• fruto da junção entre os padrões HyTime e SGML.
HTML
• Criada por Tim Berners-‐Lee – Década de 90 – Em estação NeXTcube usando o ambiente de desenvolvimento NeXTSTEP
• Em janeiro de 2008 a W3C publicou a especificação do HTML5
• TAGs
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="description" content="a descrição do seu site em no máximo 90 caracteres"> <meta name="keywords" content="escreva palavras-chaves curtas, máximo 150 caracteres"> <title>Título do Documento</title> </head> <body> <!-- Aqui fica a página que será visível para todos, onde pode-se inserir textos, imagens, links para outras páginas, etc, geralmente usa-se: --> <div>Tag para criar-se uma 'caixa', um bloco, mais utilizada com "Cascading Style Sheets (Folhas de Estilo em Cascata)</div> <span>Tag para modificação de uma parte do texto da página</span> <img src="endereço_de_uma_imagem.jpg" /> <a href="http://www.wikipedia.org">Wikipedia, A Enciclopédia Livre</a> </body> </html>
HTML • Cabeçalho – <3tle>: define o ztulo da página, que é exibido na barra de ztulo dos navegadores
– <style type="text/css">: define formatação em CSS – <script type="text/javascript">: define programação de certas funções em página com scripts, podendo adicionar funções de JavaScript
– <link>: define ligações da página com outros arquivos como feeds, CSS, scripts, etc
– <meta>: define propriedades da página, como codificação de caracteres, descrição da página, autor, etc
HTML
• Corpo – <br />: quebra de linha. – <h1>,<h2>...: ztulos pré formatados – <div>: determina uma divisão na página a qual pode possuir variadas formatações.
– <u> e <s>: negrito, itálico, sublinhado e riscado, respec3vamente.
– <img />: imagem. – <a>: hiper-‐ligação para um outro local, seja uma página, um e-‐mail ou outro serviço.
HTML
• Links – <a href="ht-‐tp://pt.wikipedia.org/">Clique aqui para aceder à página principal da Wikipédia em português.</a>
– <a name="nome">texto</a>
HTML5
• Esta evolução da linguagem padrão para web pode eliminar a necessidade de plug-‐ins para aplicações mul3mídia em navegadores – desenvolvimento do HTML5 tornaria o Adobe Flash não mais necessário, tanto para assis3r vídeo ou mesmo exibir qualquer conteúdo web
• Com a evolução da linguagem, os navegadores passam da categoria "mostradores" de páginas para um renderizador de "web so~ware".
HTML5
• Novas API’s, entre elas uma para desenvolvimento de gráficos bidimensionais
• Controle embu3do de conteúdo mul3mídia • Aprimoramento do uso off-‐line • Melhoria na depuração de erros • <audio> e <video> • EME (Encrypted Media Extensions -‐ DRM)
HTML5 • Canvas • Timed Media Playback • Offline • Editable content • Drag-‐and-‐drop • History • MIME type and protocol handler registra3on • Microdata • Web Messaging • Web Storage – similar a cookies
HTML5 <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8" /> <title>Áudio em HTML5</title> </head> <body> <audio controls autoplay> <source src="audio.ogg" /> <!-- Mensagem explicando que o navegador não suporta áudio ou o formato usado. --> <p>Seu navegador não suporta áudio HTML5 ou o formato Opus.</p> </audio> </body> </html>
JavaScript
• Netscape 2.0 • Subset de ECMAScript – ISO/IEC 16262
• Linguagem interpretada • Comumente executada no lado do cliente – Node.js – JS do lado do servidor
• Orientada a objetos
<!DOCTYPE html> <html lang="pt-BR"> <head> <meta charset="UTF-8" /> <title>Teste</title> <script> window.onload = function () { document.getElementById("hello").addEventListener("click", function () { alert("Bem-vindo!"); }, false); }; </script> </head> <body> <noscript>Seu navegador não suporta JavaScript ou ele está desabilitado.</noscript> <button id="hello">Dizer "Olá"</button> </body> </html>