Baixe o app para aproveitar ainda mais
Prévia do material em texto
INE 5201 – INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Aula 01: - 1. O Computador - 1.1 Arquitetura de Computadores 1.2 Linguagens de Programação 1.3 O Compilador Prof. André Wüst Zibetti 2013 - 2 O computador • “Equipamentos eletrônicos digitais destinados ao processamento de informações dos mais variados tipos.” Mokarazel, Fábio Carneiro. Introdução à ciência da computação. 2008. • “É uma máquina de execução de um algoritmo programável.” Holloway, James Paul. Introdução à programação para engenharia: resolvendo problemas com algoritmos. 2006 1. O Computador O computador Figura da disputa entre um abacista versus um algorista. Ábaco :1° Ferramenta de cálculo Teve origem provavelmente na Mesopotâmia, há mais de 5.500 anos. 1. O Computador O computador Blaise Pascal (1623-1662) construiu a primeira máquina calculadora, que fazia apenas somas e subtrações. Aprimorado pelo matemático alemão Gottfried Wilhelm Leibniz (1646-1726), que também inventou o cálculo. . . . Durante a Segunda Guerra Mundial, em segredo, o Exército dos Estados Unidos desenvolvia o primeiro computador a válvulas, o Eletronic Numeric Integrator And Calculator (ENIAC), capaz de fazer quinhentas multiplicações por segundo. 1. O Computador Arquitetura de computadores No ENIAC, o programa era feito rearranjando a fiação em um painel. Nesse ponto John von Neumann propôs a ideia que transformou os calculadores eletrônicos em “cérebros eletrônicos”: modelar a arquitetura do computador segundo o sistema nervoso central. 1.1 Arquitetura de Computadores Arquitetura de computadores Para isso, eles teriam que ter três características: 1. Codificar as instruções de uma forma possível de ser armazenada na memória do computador. Von Neumann sugeriu que fossem usados, 0 e 1; 2. Armazenar as instruções na memória, bem como toda e qualquer informação necessária a execução da tarefa; 3. Quando processar o programa, buscar as instruções diretamente na memória, ao invés de ler um novo cartão perfurado a cada passo. Arquitetura de Von Neumann 1.1 Arquitetura de Computadores Arquitetura de computadores 1.1 Arquitetura de Computadores 1.1 Arquitetura de Computadores http://visual6502.org/JSSim/index.html Níveis de linguagem 1.1 Arquitetura de Computadores Nível do usuário (abstrato) Nível do transistor 0 1 bits Linguagem de alto nível – ling. humana Linguagem de baixo nível – ling. máquina 0 1 0 1.1 Arquitetura de Computadores 0 1 0 1 0 0 1 Bits 0 e 1 bits dígito binário 8 bits = Byte termo binário 1.1 Arquitetura de Computadores Representação de números no sistema decimal: Representação de dados ... 1000 100 10 1 1 2 3 base 10 1*100 + 2*10 + 3*1 = 123 100 10 1 1.1 Arquitetura de Computadores Representação de números no sistema binário: Representação de dados base 2 ... 128 64 32 16 8 4 2 1 1.1 Arquitetura de Computadores Representação de números no sistema binário: Representação de dados base 2 ... 128 64 32 16 8 4 2 1 0 0 1 0 0 1 0 1 1.1 Arquitetura de Computadores Representação de números no sistema binário: Representação de dados base 2 128 64 32 16 8 4 2 1 0 0 1 0 0 1 0 1 1 Byte 8 bits 1.1 Arquitetura de Computadores Representação de números no sistema binário: Representação de dados base 2 128 64 32 16 8 4 2 1 1 1 1 1 1 1 1 1 1 Byte Qual o valor? Máximo = Mínimo = 1.1 Arquitetura de Computadores Tabela ASCII: Representação de dados Representando cores em binário Representando cores em binário Representando cores em binário Representando cores em binário Representando cores em binário Representando cores em binário 1.1 Arquitetura de Computadores 1.1 Arquitetura de Computadores 1.1 Arquitetura de Computadores 1.1 Arquitetura de Computadores 1.1 Arquitetura de Computadores 1.1 Arquitetura de Computadores 1.1 Arquitetura de Computadores 1.1 Arquitetura de Computadores 1.1 Arquitetura de Computadores 1.1 Arquitetura de Computadores 1.1 Arquitetura de Computadores Linguagens de Programação 1.2 Linguagens de Programação São conjuntos de símbolos e regras que permitem a comunicação com o computador. Linguagens naturais: - são aquelas que falamos...; - não foram projetadas, evoluíram; Linguagens formais: - são aquelas que foram projetadas por pessoas para aplicações específicas; - notação matemática linguagem formal, relação de número e símbolo; - notação química linguagem formal, representam estruturas químicas; - Linguagens de programação linguagem formal, desenvolvida para expressar computação; Linguagens de Programação 1.2 Linguagens de Programação São conjuntos de símbolos e regras que permitem a comunicação com o computador. Linguagens formais: - são aquelas que foram projetadas por pessoas para aplicações específicas; - notação matemática linguagem formal, relação de números e símbolos; - notação química linguagem formal, representam estruturas químicas; - linguagens de programação linguagem formal, desenvolvida para expressar computação; Linguagens de Programação 1.2 Linguagens de Programação Uma linguagem de programação é uma linguagem bem definida, que possui uma forma precisa (sintaxe) e um significado (semântica), e que pode ser traduzida mecanicamente em uma linguagem de máquina. Método padronizado para comunicar instruções para um computador, com uma maior produtividade. Projetadas para adotar uma sintaxe de alto nível, facilmente entendida por programadores humanos. Linguagens de Programação 1.2 Linguagens de Programação Sintaxe: é como as instruções de uma linguagem são escritas; como exprimimos uma ideia na linguagem. Semântica: descrição do significado da instrução; o significado do que exprimimos na linguagem. Linguagens de Programação 1.2 Linguagens de Programação Características: Regras estritas quanto à sintaxe: ex: 3 + 3 = 6 3 = +6$ H2O 2Zz As regras de sintaxe são de dois tipos: - relacionadas aos símbolos; - relacionadas à estrutura; O processo de análise sintática na computação é chamado de “parsing” Linguagens de Programação 1.2 Linguagens de Programação Programa É uma sequência de instruções que especificam como executar um cálculo ou tarefa. Com um número fixo de regras (princípios primitivos) é possível programar “qualquer coisa”. Exemplo de um conjunto de regras/instruções: Entrada – Input: Recebe os dados do teclado, arquivo, ou outro dispositivo; Saída – Output: Imprimi os dados na tela ou envia à um arquivo...; Calcula: Executa operações aritméticas; Executa condicionalmente: Verifica uma determinada condição e executa uma sequência aproximada de instruções; Repetir: Executa algumainstrução repetidamente...; Linguagens de Programação 1.2 Linguagens de Programação Exemplo: Sintaxe para escrever na tela “Olá, mundo.”. Em C++ #include <iostream.h> void main() { cout << "Olá, mundo." << endl; } Em Python print ("Olá, Mundo.") Em Delphi Program Ola_Mundo; {$APPTYPE CONSOLE} begin WriteLn('Olá, Mundo.'); end. Em FORTRAN PROGRAM HELLO WRITE(*,10) 10 FORMAT('Olá, Mundo.') STOP END Semântica: Escreve a <expressão> na tela. Linguagens de Programação 1.2 Linguagens de Programação Existem várias linguagens de programação; de acordo com o Índice Tiobe, as 20 mais populares são: [março, 2013] Linguagens de Programação 1.2 Linguagens de Programação Existem várias linguagens de programação; de acordo com o Índice Tiobe, as 20 mais populares são: [agosto, 2013] Linguagens de Programação 1.2 Linguagens de Programação Interpretação e compilação 1.3 Interpretação e compilação Uma linguagem de programação pode ser convertida, ou traduzida, em código de máquina por compilação ou interpretada por um processo denominado interpretação. Em ambas ocorre a tradução do código fonte para código de máquina. Compilação: tradução de todo o programa (código fonte) para um arquivo compilado, para somente depois ser executado. Ex: Pascal, C, ... Interpretação: execução do programa a medida que vai sendo traduzido, em um processo de tradução de trechos seguidos de sua execução imediata. Mais lento do que os compilados. Ex: JavaScript, BASIC, Python, Perl, MATLAB, ... Interpretação e compilação 1.3 Interpretação e compilação
Compartilhar