Linguagens de Programação. Roberto Willrich INE- CTC-UFSC URL:

Tamanho: px
Começar a partir da página:

Download "Linguagens de Programação. Roberto Willrich INE- CTC-UFSC URL:"

Transcrição

1 Linguagens de Programação Roberto Willrich INE- CTC-UFSC URL:

2 Linguagens de Programação Conteúdo Software e Hardware Tipos de Softwares Níveis de Linguagem de Programação Etapas para Geração de um Programa Paradigmas de programação Linguagens Interpretadas e Compiladas Exemplos de Linguagens de Programação 2

3 Programação de Computadores Sistema Computacional Termo mais abrangente que computador Inclui qualquer máquina baseada em processador Características diferentes tanto a nível de arquitetura e linguagem de programação Visto como uma associação de Hardware está associado à parte física do sistema (os circuitos e dispositivos) que suporta o processamento da informação; Software corresponde ao conjunto de programas responsáveis pela pilotagem do sistema para a execução das tarefas consideradas 3

4 Programação de Computadores 4 Classificação dos softwares quanto ao tipo de serviço por ele realizado software de sistema (ou sistema operacional) capaz de oferecer ao usuário, ou a outros softwares, facilidades de acesso aos recursos do computador através de comandos ou serviços especiais a nível de um programa administra os arquivos, controla periféricos e executa utilitários. software utilitário programas desenvolvidos por especialistas ou mesmo por usuários experimentados tem por objetivo facilitar a realização de determinadas atividades correntes no uso dos computadores detecção e eliminação de vírus, programas de comunicação em redes de computadores, compressão de arquivos, etc... software aplicativo programas desenvolvidos ou adquiridos pelos usuários para algum fim específico de natureza profissional, educacional ou mesmo de lazer (jogos)

5 5 Programação de Computadores Linguagem de Programação Definida como sendo um conjunto limitado de instruções (vocabulário) associado a um conjunto de regras (sintaxe) define como as instruções podem ser associadas como se pode compor os programas para a resolução de um determinado problema Existem várias linguagens de programação algumas de uso mais geral outras concebidas para áreas de aplicação específicas

6 Níveis de Linguagens de Programação Classificação das linguagens de programação Podem ser classificadas em níveis de linguagens Sendo que os níveis mais baixos são mais próximos da linguagem interpretada pelo processador e mais distante das linguagens naturais Níveis: Linguagem de Máquina Linguagem Hexadecimal Linguagem Assembly Linguagem de Alto nível 6

7 Linguagem de Máquina Computador Corresponde basicamente a um conjunto de circuitos Sua operação é controlada através de programas escritos numa forma bastante primitiva baseada no sistema binário de numeração tanto para a representação dos dados quanto das operações Linguagem de Máquina Forma básica (em linguagem binária) de representação dos programas É a forma compreendida e executada pelo hardware do sistema 7

8 Linguagem de Máquina Representação Instruções de linguagem de máquina são representadas por códigos na forma de palavras binárias cuja extensão pode variar de 8 a 64 bits Contém instruções elementares, como transferência de dados da memória para registros internos da CPU, adição de valores, etc significa colocar valor 1 no registro interno AL incrementa de 1 o valor do registro AL Programação impraticável para escrita e leitura 8

9 Linguagem Hexadecimal Linguagem Hexadecimal Simplifica a compreensão e a programação de computadores seqüência de bits é representada por números hexadecimais Notação em hexadecimal b = B001 h significa colocar valor 1 em AL b = FEC0 h incrementa de 1 AL Programação de aplicações diretamente em linguagem de máquina é impraticável mesmo representada na notação hexadecimal 9

10 10 Linguagem Assembly Linguagem Assembly (linguagem de montagem) linguagem de máquina de cada processador é acompanhada de uma versão legível da linguagem de máquina Uma linguagem simbólica Pois não é composta de números binários/hexadecimais Utiliza palavras abreviadas, chamadas de mnemônicos, indicando a operação MOV R1, R2 mnemônico MOV (abreviação de MOVE) dois registradores como parâmetros: R1 e R2 processador comanda o movimento do conteúdo de R2 para R1 equivalente a instrução Pascal R1:=R2 ADD R1, R2 mnemônico ADD (abreviação de ADDITION) dois registradores como parâmetros: R1 e R2. processador comanda a adição do conteúdo de R1 ao conteúdo de R2 e o resultado é armazenado em R1 equivalente a instrução Pascal R1:=R1+R2

11 11 Linguagem Assembly Simplifica a programação em código de máquina Escolhendo nomes descritivos para as posições de memória e usando mnemônicos para representar códigos de operação Exemplo: operação de dois números inteiros: v1:=v2+v3 se associarmos o nome v2 à posição de memória 200 h, v3 à posição 202 h e v1 à posição 204 h em notação hexadecimal ficaria: A A30402 usando a técnica mnemônica: MOV AX,v2; AX recebe o valor de memória associada a B ADD AX,v3 ; AX recebe a soma de AX (B) com o valor de C MOV v1,ax; variável A recebe valor de AX

12 Linguagem Assembly Linguagem Assembly apresenta certas dificuldades Necessidade de definição de um conjunto relativamente grande de instruções para a realização de tarefas que seriam relativamente simples Exigência do conhecimento de detalhes do hardware do sistema arquitetura interna do processador, endereços e modos de operação de dispositivos de hardware, etc... Tem vantagens Utilização da linguagem Assembly proporciona um maior controle sobre os recursos do computador permitindo também obter-se bons resultados em termos de otimização de código 12

13 Linguagem Assembly Geração do código de máquina Assembly é uma versão legível da linguagem de máquina passagem de um programa escrito em Assembly para a linguagem de máquina é quase sempre direta não envolvendo muito processamento Passagem de um programa Assembly para linguagem de máquina é chamada de Montagem programa que realiza esta operação é chamado de montador (Assembler). Linguagem simbólica Assembly Programa Montador (Assembler) Linguagem de Máquina 13

14 14 Linguagem Assembly Linguagem Assembly é orientada para máquina (processador) É necessário conhecer a estrutura do processador para poder programar em Assembly Utiliza instruções de baixo nível que operam com registros e memórias diretamente é muito orientada às instruções que são diretamente executadas pelo processador Não pode ser reutilizado em famílias de processadores diferentes Famílias geralmente mantém um certo nível de interoperabilidade Família x86 processador Pentium suporta o Assembly do 80486, que suporta o do Na seqüência da evolução Procurou-se aproximar mais a linguagem de programação à linguagem natural que utilizamos no dia-a-dia surgiram então as linguagens de alto nível, tipo Pascal, C, C++, etc

15 15 Linguagem Assembly Desvantagens com relação as linguagens de alto nível: Assembly apresenta um número muito reduzido de instruções do tipo operações de movimentação de dados em memória, para registros e para memórias, e operações lógicas e aritméticas bem simples instruções assembly são de baixa expressividade elas são de baixo nível programador deve programar num nível de detalhamento muito maior para fazer a mesma coisa que em um programa escrito em linguagem de alto nível Programador utiliza diretamente os recursos do processador e memória ele deve conhecer muito bem a máquina onde ele está programando Programa escrito em linguagem Assembly não é muito legível por isso ele deve ser muito bem documentado

16 Linguagem Assembly Desvantagens com relação as linguagens de alto nível: Programa Assembly não é muito portável portável apenas dentro de uma família de processadores Assembly tem um custo de desenvolvimento maior devido a sua baixa expressividade, ilegibilidade e exigência do conhecimento sobre a máquina faz a programação requerendo um maior número de homens/hora comparado com a programação utilizando linguagens de alto nível 16

17 17 Linguagem Assembly Vantagens com relação as linguagens de alto nível: Permite o acesso direto ao programa de máquina utilizando uma linguagem de alto nível não tem-se o controle do código de máquina gerado pelo compilador programador pode gerar um programa mais compacto e eficiente que o código gerado pelo compilador pode ser 0 ou 300 % menor e mais rápido que um programa compilado Assembly permite o controle total do hardware por exemplo, permitindo a programação de portas seriais e paralela de um PC

18 Linguagem Assembly 18 Aplicações da Linguagem Assembly Controle de processos com resposta em tempo real devido a possibilidade de gerar programas mais eficientes Aplicação tempo-real processador deve executar um conjunto de instruções em um tempo limitado» exemplo: a cada 10 ms processador deve ler um dado, processá-lo e emitir um resultado Comunicação/transferência de dados devido a possibilidade de acessar diretamente o hardware linguagem Assembly é utilizada para a implementação de programas de comunicação ou transferência de dados Otimização de sub-tarefas da programação de alto nível um programa não precisa somente ser escrito em linguagem Assembly ou linguagem de alto nível existem programas de alto nível com sub-tarefas escritas em linguagem Assembly pode-se otimizar partes de programas, no caso de tarefas tempo-real para a programação do hardware do computador

19 19 Linguagem de Alto Nível Linguagem de Alto Nível Assim denominadas por apresentarem uma sintaxe mais próxima da linguagem natural Fazem uso de palavras reservadas extraídas do vocabulário corrente (como READ, WRITE, TYPE, etc...) Permitem a manipulação dos dados nas mais diversas formas números inteiros, reais, vetores, listas, etc... enquanto a linguagem Assembly trabalha com bits, bytes, palavras, armazenados em memória. Origem e Exemplos Surgiram entre o final da década de 50 e início dos anos 60 Fortran, Cobol, Algol e Basic Algumas delas têm resistido ao tempo e às críticas Fortran ainda é visto como uma linguagem de implementação para muitas aplicações de engenharia Cobol é uma linguagem bastante utilizada no desenvolvimento de aplicações comerciais

20 Linguagem de Alto Nível Linguagem de Alto Nível para linguagem de máquina Passagem é bem mais complexa são utilizados compiladores e linkadores Linguagem simbólica de Alto Nível Programa Compilador Linguagem de Máquina 20

21 21 Linguagem de Alto Nível Permitiria Interoperabilidade Dado que os comandos das linguagens de alto nível não referenciam os atributos de uma dada máquina podem ser facilmente compilados tanto em uma máquina como em outra Programa escrito em linguagem de alto nível poderia, teoricamente, ser usado em qualquer máquina bastando escolher o compilador correspondente Interoperabilidade não é tão simples Quando um compilador é projetado certas restrições impostas pela máquina são refletidas como características da linguagem a ser traduzida Exemplo tamanho do registrador e as células de memória de uma máquina limitam o tamanho máximo dos inteiros que nela podem ser convenientemente manipulados Em diferentes máquinas uma mesma linguagem pode apresentar diferentes características, ou dialetos é necessário fazer ao menos pequenas modificações no programa antes de move-lo de uma máquina para outra

22 Linguagem de Alto Nível Problema da Interoperabilidade Para auxiliar a interoperabilidade American National Standards Institute (ANSI) e a International Organization for Standardization (ISO) adotaram e publicaram padrões para muitas das linguagens mais populares também surgiram padrões informais devido à popularidade de um dados dialeto de uma linguagem e ao desejo oferecerem produtos compatíveis 22

23 Linguagens de Alto Nível Classificação quanto ao uso Linguagens de uso geral podem ser utilizadas para implementação de programas com as mais diversas características e independente da área de aplicação Pascal, Modula-2 e C; Linguagens especializadas são orientadas ao desenvolvimento de aplicações específicas Prolog, Lisp e Forth; Linguagens orientadas a objeto oferecem mecanismos sintáticos e semânticos de suporte aos conceitos da programação orientada a objetos Smalltalk, Eiffel, C++ e Delphi 23

24 Desenvolvimento de Programas Ambiente de desenvolvimento Desenvolvimento de programas é associado ao uso de ferramentas ou ambientes de desenvolvimento que acompanham o programador desde a etapa de codificação propriamente dita até a geração e teste do código executável Principais etapas de geração de um programa Codificação do código fonte Tradução do código fonte Linkagem Depuração Engenharia de Software Metodologias mais completas que definem os passos para o desenvolvimento de programas 24

25 Desenvolvimento de Programas Tradução do Código Fonte (código objeto) Compreende três atividades: análise léxica, análise sintática e geração de código são processadas pelos módulos do tradutor: analisadores léxico, sintático e gerador de código Análise léxica É o processo de reconhecer quais cadeias de símbolos do programafonte representam entidades indivisíveis Exemplos três símbolos 153 não devem ser interpretados como 1, seguido por 5, seguido por 3, mas são reconhecidos como um valor numérico apenas palavras que aparecem no programa, embora compostas de caracteres individuas, devem ser interpretadas cada qual como uma unidade inseparável 25

26 Desenvolvimento de Programas Tradução do Código Fonte (código objeto) Análise léxica Analisador léxico identifica um grupo de símbolos que representam uma única entidade classifica como sendo um valor numérico, ou uma palavra, ou um operador aritmético, e assim por diante gera um padrão de bits conhecido como átomo (token), indicativo da classe do elemento Átomos são os dados de entrada do analisador sintático 26

27 Desenvolvimento de Programas Tradução do Código Fonte (código objeto) Análise sintática Processo de identificação da estrutura gramatical do programa, e de reconhecimento do papel de cada um dos seus componentes Processo de análise sintática é feito com base em um conjunto de regras sintáticas que definem a sintaxe da linguagem de programação Uma forma de expressar regras sintáticas é através de diagramas de sintaxe 27

28 Desenvolvimento de Programas Tradução do Código Fonte (código objeto) Diagramas de Sintaxe Representações gráficas da estrutura gramatical de um programa Terminais são identificados por elipses Não-Terminais são identificados por retângulos if Expressão Booleana then Comando else Comando 28

29 Desenvolvimento de Programas Tradução do Código Fonte (código objeto) Árvore sintática Processo de análise sintática de um programa consiste em construir uma árvore de sintaxe para o programa-fonte Por isso as regras de sintaxe que descrevem a estrutura gramatical de um programa não devem propiciar que duas ou mais árvores de sintaxe distintas possam ser construídas para a mesma cadeia dado que isto levaria a ambigüidades no analisador sintático Esta falha pode ser bastante sutil A própria regra de if-then-else apresentada contém esse defeito If B1 then if B2 then S1 else S2» aceita duas árvores de sintaxe 29

30 Desenvolvimento de Programas Tradução do Código Fonte (código objeto) Árvore sintática Comando if Expressão booleana then Comando B1 if Expressão booleana then Comando else Comando B2 S1 S2 30

31 Desenvolvimento de Programas Tradução do Código Fonte (código objeto) Árvore sintática Comando if Expressão booleana then Comando else Comando B1 if Expressão booleana then Comando S2 31 B2 S1

32 Desenvolvimento de Programas 32 Tradução do Código Fonte (código objeto) Em muitas linguagens, evita-se tais problemas usando chaves, ou então Begin-End If B1 then Begin End else S2 e If B1 then Begin End; if B2 then S1 if B2 then S1 else S2

33 Desenvolvimento de Programas Tradução do Código Fonte (código objeto) À medida que um analisador sintático recebe átomos do analisador léxico, ele vai analisando os comandos e ignorando os comentários As informações extraídas das declarações são tabeladas em uma estrutura conhecida como tabela de símbolos guarda informações sobre as variáveis declaradas, os tipos de dados e as estruturas de dados associadas a tais variáveis Analisador sintático utiliza como base estas informações ao analisar comandos tais como: Total:=Custo+Imposto; 33

34 Desenvolvimento de Programas 34 Tradução do Código Fonte (código objeto) Total:=Custo+Imposto; para determinar o significado do símbolo + analisador deverá saber qual o tipo de dados associados às variáveis Custo e Imposto Se Custo for do tipo real e Imposto for do tipo caractere» estão somar Custo e Imposto faz pouco sentido e deverá ser considerado um erro Se Custo e Imposto forem ambos de tipo inteiro» analisador solicitará ao gerador de código a construção de uma instrução em linguagem de máquina que utilize o código de operação correspondente à adição de inteiros Se ambos forem de tipo real» analisador solicitará o uso do código de operação correspondente à adição de valores em ponto flutuante

35 Desenvolvimento de Programas 35 Tradução do Código Fonte (código objeto) Total:=Custo+Imposto; Também tem sentido quando os dados envolvidos não forem do mesmo tipo Por exemplo, se Custo for inteiro e Imposto for real, o conceito de adição ainda será aplicável Analisador sintático poderá decidir que o gerador de código construa as instruções necessárias para converter um dado de um tipo para outro, antes de executar a adição Tal conversão implícita entre tipos é denominada coerção. As operações de coerção são mal-vistas por muitos projetistas de linguagens argumentam que a necessidade da coerção é um sintoma de falha no projeto do programa, não devendo, pois, ser contornada pelo analisador sintático a maioria das linguagens modernas são fortemente tipadas todas as ações solicitadas por um programa devem envolver dados de tipos compatíveis, sem coerção analisadores sintáticos consideram como erros quaisquer incompatibilidade de tipo

36 Desenvolvimento de Programas 36 Tradução do Código Fonte (código objeto) processo de construção das instruções em linguagem de máquina envolve numerosos problemas um dos quais é o da construção de um código eficiente Por exemplo, consideremos a tarefa de traduzir a seguinte seqüência de dois comandos: x:=y+z; w:=x+z; Estes comandos poderiam ser traduzidos como comandos independentes esta interpretação tende a não produzir um código eficiente. gerador de código deve ser construído de tal forma que seja capaz de identificar que, ao ser completado o primeiro comando, os valores de x e de z já se encontram em registradores de propósito geral do processador não necessitando serem carregados a partir da memória para o cálculo de w Melhorias como essa constituem a otimização de código cuja realização constitui importante tarefa do gerador de código

37 Desenvolvimento de Programas Tradução do Código Fonte (código objeto) Análises léxica e sintática e a geração de código não são efetuadas em ordem estritamente seqüencial, mas de forma intercalada Analisador léxico começa identificando o primeiro átomo e fornecendo-o ao analisador sintático com esta pista sobre a estrutura que vem a seguir, o analisador sintático solicita ao analisador léxico o próximo átomo À medida que o analisador sintático reconhece sentenças ou comandos completos vai ativando o gerador de código para que este possa produzir as correspondentes instruções de máquina 37

38 Desenvolvimento de Programas Editores de ligação (linker) Objetivo: rearranjar o código do programa incorporando a ele todas as partes referenciadas no código original resultando num código executável pelo processador Tarefa é feita pelos ligadores (linkadores) Código Fonte Código Fonte Código Fonte Código Fonte Código Objeto Código Objeto Código Objeto Código Objeto 38 Biblioteca Linker Programa executável

39 Desenvolvimento de Programas 39 Depuradores ou debuggers Auxilia o programador a eliminar (ou reduzir) a quantidade de bugs (erros) de execução no seu programa Executam o programa gerado através de uma interface apropriada que possibilita uma análise efetiva do código do programa Graças à: execução passo-a-passo (ou instrução por instrução) de partes do programa visualização do estado do programa através das variáveis e eventualmente dos conteúdos dos registros internos do processador alteração em tempo de execução de conteúdos de memória ou de variáveis ou de instruções do programa etc...

40 Paradigmas de programação Existem vários paradigmas de programação que são estilos utilizados pelos programadores para conceber um programa os mais conhecidos são Programação não-estruturada Programação Procedural Programação Modular Programação Orientada a Objetos 40

41 Paradigmas de programação Programação não-estruturada Pessoas aprendem a programação escrevendo programas pequenos e simples consistindo apenas de um programa principal uma seqüência de comandos ou declarações que modificam dados que são acessível a todos os pontos do programa Técnica de programação não estruturada tem várias desvantagens no caso de programas grandes se a mesma seqüência é necessária em localizações diferentes ela deve ser copiada não permite a organização do programa 41

42 42 Programação não estruturada PROGRAM MaiorN; VAR Num1,Num2,Num3,Maior : integer; BEGIN (* Leitura dos numeros *) write( Entre com o primeiro numero -> ); readln(num1); write( Entre com o segundo numero -> ); readln(num2); write( Entre com o terceiro numero -> );readln(num3); (* Determinacao do maior numero *) Maior := Num1; IF Maior < Num2 THEN Maior := Num2; IF Maior < Num3 THEN Maior := Num3; (* Impressao do maior numero *) writeln( Programa de Determinacao do Maior Numero ); writeln; writeln( >> O maior numero eh o ->,Maior); END.

43 Paradigmas de programação 43 Programação Procedural Programa é visto como uma seqüência de chamadas de procedimentos exemplo de procedimento clássico é o cálculo de uma raiz quadrada Uma chamada de procedimento é usado para invocar o procedimento podendo ser passado alguns parâmetros Após a seqüência ser executada controle retorna justo após o ponto de chamada do procedimento Programas podem ser escritos mais estruturados e livres de erro introduzindo parâmetros tão bem quanto procedimentos de procedimentos (sub-procedimentos) Por exemplo, se um procedimento é correto, toda vez que ele é usado ele produz um resultado correto» no caso de erros pode-se direcionar a busca àqueles lugares que não são livres de erros

44 44 Programação Procedural PROGRAM MaiorN1; VAR ImpMaior(Maior); END. Num1,Num2,Num3,Maior : Integer; PROCEDURE LeNum(VAR N1: Integer; VAR N2: Integer; VAR N3: Integer); BEGIN write( Entre com o primeiro numero -> ); readln(n1); write( Entre com o segundo numero -> ); readln(n2); write( Entre com o terceiro numero -> ); readln(n3); END; (* LeNum *) FUNCTION DetMaior(N1:Integer;N2:Integer;N3:Integer): Integer; var M: Integer; BEGIN M := Num1; IF M < Num2 THEN M := Num2; IF M < Num3 THEN M := Num3; DetMaior:=M; END; (* DetMaior *) BEGIN (* Programa Principal *) LeNum(Num1,Num2,Num3); Maior:=DetMaior(Num1,Num2,Num3);

45 Paradigmas de programação Programação Modular No passar dos anos ênfase no projeto de programas passou do projeto de procedimentos para a organização dos dados surgindo a programação modular Procedimentos relacionados e dados que eles utilizam são agrupados em módulos separados por exemplo, todas as funções de manipulação de uma pilha (empilhar, desempilhar, etc.) e a pilha em si podem ser agrupadas em um módulo Cada módulo tem seus próprios dados permite que cada módulo gerencie um estado interno que é modificado por chamadas a procedimentos deste módulo 45

46 Programação Modular 46 Program InverteNome ; Uses PilhaCar ; Var Tam, i : Integer ; Nome, Inverso : String ; Begin Write ( 'Entre um nome : ' ) ; Readln ( Nome ) ; Tam := Length ( Nome ) ; For i := 1 To Tam Do Empilha ( Nome [ i ] ) ; Inverso := '' ; While Not PilhaVazia Do Inverso := Inverso + Retira ; Writeln ( Inverso ) End. Unit PilhaCar ; Interface Function PilhaVazia : Boolean ; Procedure Empilha ( X : Char ) ; Function Retira : Char ; Implementation Const TamPilha = 100 ; Type Indice = 1..TamPilha ; VetorChar = Array [ Indice ] Of Char Var Pilha : VetorChar ; Topo : 0..TamPilha ; Function PilhaVazia : Boolean ; Begin PilhaVazia := (Topo = 0) End ; Procedure Empilha ( X : Char ) ; Begin Topo := Topo + 1 ; Pilha [ Topo ] := X End ; Function Retira : Char ; Begin Retira := Pilha [ Topo ] ; Topo := Topo - 1 End ; Begin Topo := 0 End.

47 Paradigmas de programação Programação Orientada a Objetos Temos uma malha de objetos que interagem cada um mantendo seu próprio estado Essência da programação orientada a objetos consiste em tratar os dados e os procedimentos que atuam sobre os dados como um único objeto Objeto entidade independente com uma identidade e certas características próprias 47

48 Paradigmas de programação 48 Linguagens de programação e seus paradigmas Uma linguagem de programação fornece o suporte a um estilo ou paradigma de programação se ela fornece funcionalidades que a tornam conveniente para usar determinado estilo Uma linguagem não suporta uma técnica se é necessário esforços excepcionais ou destreza para escrever tal programa ela meramente habilita a técnica a ser usada Por exemplo, pode-se escrever programas estruturados em Fortran e programas orientados a objetos em C mas isto é desnecessariamente difícil de fazer porque estas linguagens não suportam diretamente estas técnicas É de responsabilidade do programador aplicar certa técnica de programação

49 49 Linguagens Interpretadas Linguagens de programação compiladas Etapas de desenvolvimento anteriores consideram que o uso de linguagens de programação compiladas aquelas que produzirão um programa na forma da linguagem de máquina do processador instruções definidas pelo programador usando uma linguagem de alto nível serão traduzidas para as instrução na linguagens de máquina Linguagens de programação interpretadas Interpretação do programa usando outro programa, chamado interpretador Linguagem interpretada mais conhecida: Basic Linguagens Híbridas: Parcialmente compilada e interpretada (java) interpretada por uma máquina virtual chamada JVM (Java Virtual Machine) Interpretador Programa que executa as instruções escritas em linguagem de alto nível Geralmente translada as instruções de alto nível em uma forma intermediária que é executada

50 Linguagens Interpretadas 50 Compilador Versus Interpretador Programa compilado executa mais rapidamente que um programa interpretado Vantagem do interpretador é que ele não necessita passar por um estágio de compilação durante a qual as instruções de máquina são gerados Processo de tradução pode consumir muito tempo se o programa é longo Interpretador pode executar imediatamente os programas de altonível Interpretadores são algumas vezes usados durante o desenvolvimento de um programa quando um programador deseja testar rapidamente seu programa Interpretadores são com freqüência usados na educação pois eles permitem que o estudante programe interativamente.

51 Linguagens Interpretadas Compilador Versus Interpretador Tanto os interpretadores como os compiladores são disponíveis para muitas linguagens de alto nível Java, Basic e LISP são especialmente projetadas para serem executadas por um interpretador Linguagens interpretadas podem possibilitar a portabilidade Como não é gerado um código de máquina, e sim um código intermediário que será interpretado por uma máquina virtual Pode-se obter a portabilidade do código se esta máquina virtual for desenvolvida para várias plataformas este é o caso da linguagem Java 51

52 Linguagens Híbridas Java Códigos fontes de Java (arquivos com a extensão.java) são traduzidos na forma de um código intermediário chamado bytecode (arquivos com a extensão.class) que podem ser executados por um interpretador Java. Bytecode pode ser transferido através de uma rede e executada por uma Máquina Virtual Java (JVM) 52

53 Linguagens Interpretadas Java Existem várias implementações de JVM s para diversos sistemas operacionais, incluindo UNIX, Macintosh OS e Windows 53

Linguagens de Programação

Linguagens de Programação Capítulo 4 Linguagens de Programação 4.0 Índice Capítulo 4 1 4.0 Índice 1 4.1 Programação de Computadores 2 4.2 Níveis de Linguagens de Programação 2 4.2.1 Linguagem de Máquina 2 4.2.2 Linguagem Hexadecimal

Leia mais

Linguagens de Programação Classificação

Linguagens de Programação Classificação Classificação Classificação A proximidade que a linguagem de programação tem com a humana determina sua classe (o nível): Linguagem de máquina (primeira geração) Linguagem assembly - de montagem (segunda

Leia mais

Introdução a Ciência da Computação

Introdução a Ciência da Computação Ministério da Educação Universidade Tecnológica Federal do Paraná Câmpus Santa Helena Introdução a Ciência da Computação Bacharelado em Ciência da Computação Professor : Agnaldo da Costa 1 Camadas do Usuário

Leia mais

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Introdução geovanegriesang@unisc.br Processadores de linguagem Linguagens de programação são notações para se descrever

Leia mais

II.1 Conceitos Fundamentais. Uma delas é programar o =>

II.1 Conceitos Fundamentais. Uma delas é programar o => II.1 Conceitos Fundamentais II.2 Gerações das Linguagens de Programação II.3 Linguagem de Programação II.4 Sistema Operacional II.5 Tradutores II.5.1 Estrutura de um tradutor II.5.1.1 Análise Léxica II.5.1.3

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Conjunto de Instruções Slide 1 Sumário Características de Instruções de Máquina Tipos de Operandos Tipos de Operações Linguagem de Montagem Slide 2 Características

Leia mais

Compiladores. Introdução à Compiladores

Compiladores. Introdução à Compiladores Compiladores Introdução à Compiladores Cristiano Lehrer, M.Sc. Introdução (1/2) O meio mais eficaz de comunicação entre pessoas é a linguagem (língua ou idioma). Na programação de computadores, uma linguagem

Leia mais

Universidade Veiga de Almeida Algoritmos e Linguagem I

Universidade Veiga de Almeida Algoritmos e Linguagem I Aula 1 Conteúdo: 1. Apresentação da disciplina 2. Contextualização e definições: 2.1. Algoritmos 2.2. Programas 2.3. Linguagens de programação 2.4. Sintaxe e semântica 2.5. Desenvolvimento de programas

Leia mais

Programação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1

Programação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1 Programação de Computadores IV Introdução a Linguagens de Programação Simone Martins simone@ic.uff.br SLIDES CEDIDOS POR BRUNO MARQUES 1 Arquitetura de programação 2 O Que é um Dado? Dado é o elemento

Leia mais

Sistema Computacional

Sistema Computacional Algoritmos e Lógica de Programação Conceitos Básicos Abstração Reinaldo Gomes reinaldo@cefet-al.br O que é um? Integração de componentes atuando como uma entidade, com o propósito de processar dados, i.e.

Leia mais

Desenvolvimento de Aplicações Desktop

Desenvolvimento de Aplicações Desktop Desenvolvimento de Aplicações Desktop Conceitos Básicos de Programação Professor: Charles Leite O Desenvolvimento de Programas A programação consiste em indicar como o computador (hardware) deve trabalhar

Leia mais

Programação de Computadores:

Programação de Computadores: Instituto de C Programação de Computadores: Introdução a Linguagens de Programação Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Seis Camadas Problema

Leia mais

Algoritmos e Programação

Algoritmos e Programação Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Parte 04 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav

Leia mais

Compiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores

Compiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores Motivação Prof. Sérgio Faustino Compiladores Conhecimento das estruturas e algoritmos usados na implementação de linguagens: noções importantes sobre uso de memória, eficiência, etc. Aplicabilidade freqüente

Leia mais

PROGRAMAÇÃO I. Introdução

PROGRAMAÇÃO I. Introdução PROGRAMAÇÃO I Introdução Introdução 2 Princípios da Solução de Problemas Problema 1 Fase de Resolução do Problema Solução na forma de Algoritmo Solução como um programa de computador 2 Fase de Implementação

Leia mais

COMPILAÇÃO. Ricardo José Cabeça de Souza

COMPILAÇÃO. Ricardo José Cabeça de Souza COMPILAÇÃO Ricardo José Cabeça de Souza www.ricardojcsouza.com.br Programas Código-fonte escrito em linguagem de programação de alto nível, ou seja, com um nível de abstração muito grande, mais próximo

Leia mais

Introdução à Computação

Introdução à Computação UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Introdução à Computação Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Histórico da Computação Prof. Yandre

Leia mais

Introdução à Computação

Introdução à Computação UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Introdução à Computação Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Histórico da Computação Prof. Yandre

Leia mais

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior Meio pelo qual se pode indicar os passos que devem ser realizados pelo computador para resolver problemas; Através da linguagem,

Leia mais

Aula teórica 7. Preparado por eng.tatiana Kovalenko

Aula teórica 7. Preparado por eng.tatiana Kovalenko Aula teórica 7 Tema 7. Introdução a Programação Ø Linguagens de Programação Ø LP Java ØEstrutura de um programa em Java ØIdentificadores, variáveis e constantes. ØTipos de dados básicos Preparado por eng.tatiana

Leia mais

a) Computador b) Estrutura do sistema i. Hardware ii.software c) Linguagens de Programação i. Paradigmas e Programação 1.

a) Computador b) Estrutura do sistema i. Hardware ii.software c) Linguagens de Programação i. Paradigmas e Programação 1. a) Computador b) Estrutura do sistema i. Hardware ii.software c) Linguagens de Programação i. Paradigmas e Programação 1. Estruturada 2. Orientada a eventos 3. Orientada a objetos d) Sistemas Operacionais

Leia mais

Introdução à Computação

Introdução à Computação Introdução à Computação Jordana Sarmenghi Salamon jssalamon@inf.ufes.br jordanasalamon@gmail.com http://inf.ufes.br/~jssalamon Departamento de Informática Universidade Federal do Espírito Santo Agenda

Leia mais

Conceitos básicos sobre computadores (continuação)

Conceitos básicos sobre computadores (continuação) SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Conceitos básicos sobre computadores (continuação) Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário O que é um computador e

Leia mais

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Conceitos de Linguagens de Programação Aula 03 Processo de Compilação Edirlei Soares de Lima Métodos de Implementação Arquitetura de Von Neumann: A linguagem de máquina de um computador

Leia mais

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2) Tecnólogo em Análise e Desenvolvimento de Sistemas Sistemas Operacionais (SOP A2) Conceitos de Hardware e Software Referências: Arquitetura de Sistemas Operacionais. F. B. Machado, L. P. Maia. Editora

Leia mais

Métodos de implementação de linguagens. Kellen Pinagé

Métodos de implementação de linguagens. Kellen Pinagé Métodos de implementação de linguagens Kellen Pinagé Sumário Métodos de implementação de linguagens Compilação Interpretação pura Híbrido Métodos de implementação de linguagens Principais componentes de

Leia mais

Capítulo 6: Linguagens de Programação

Capítulo 6: Linguagens de Programação Capítulo 6: Linguagens de Programação Ciência da Computação: Uma Visão Abrangente 11a Edição by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Capítulo 6: Linguagens de programação 6.1 Perspectiva

Leia mais

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível.

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível. Aula 3 SOFTWARE (programas) Um programa (software) consiste em uma sequência de instruções escritas numa linguagem precisa chamada linguagem de programação. Estas instruções são traduzidas em um compilador,

Leia mais

INE5421 LINGUAGENS FORMAIS E COMPILADORES

INE5421 LINGUAGENS FORMAIS E COMPILADORES INE5421 LINGUAGENS FORMAIS E COMPILADORES PLANO DE ENSINO Objetivo geral Conhecer a teoria das linguagens formais visando sua aplicação na especificação de linguagens de programação e na construção de

Leia mais

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 03: FUNCIONAMENTO DE UM COMPUTADOR Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação O QUE É UM COMPUTADOR?

Leia mais

Informática I. Aula 9. Aula 9-17/05/2006 1

Informática I. Aula 9.  Aula 9-17/05/2006 1 Informática I Aula 9 http://www.ic.uff.br/~bianca/informatica1/ Aula 9-17/05/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

Conversões de Linguagens: Tradução, Montagem, Compilação, Ligação e Interpretação

Conversões de Linguagens: Tradução, Montagem, Compilação, Ligação e Interpretação Conversões de Linguagens: Tradução, Montagem, Compilação, Ligação e Interpretação Para executar uma tarefa qualquer, um computador precisa receber instruções precisas sobre o que fazer. Uma seqüência adequada

Leia mais

Noções de compilação

Noções de compilação Noções de compilação Compilador: o que é, para que serve e estrutura geral Parentes do compilador e programas correlatos Prof. Thiago A. S. Pardo 1 Compilação: por que estudar? (parte 1) Compiladores:

Leia mais

Computadores podem ser úteis em problemas que envolvem: Grande número de dados. Grande número de cálculos. Complexidade. Precisão.

Computadores podem ser úteis em problemas que envolvem: Grande número de dados. Grande número de cálculos. Complexidade. Precisão. O uso do computador Computadores podem ser úteis em problemas que envolvem: Grande número de dados. Grande número de cálculos. Complexidade. Precisão. Exemplos: Modelos meteorológicos. Cálculo estrutural.

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação Prof.: Edilberto M. Silva http://www.edilms.eti.br Aula 2 Linguagens de Programação Desenvolvimento e execução de programas Características de linguagens Execução de programas

Leia mais

Noções de compilação

Noções de compilação Noções de compilação Compilador: o que é, para que serve e estrutura geral Parentes do compilador e programas correlatos Prof. Thiago A. S. Pardo 1 Exercício em duplas Para esquentar... 2 1 Compilação:

Leia mais

Compiladores. Introdução

Compiladores. Introdução Compiladores Introdução Apresentação Turma Noite Continuada I 20/03 Continuada II 22/05 Atividades Regimental 05/06 Total 1 Ponto 1 Ponto 1 Ponto 7 Pontos 10 Pontos Aulas expositivas teórico-práticas Exercícios

Leia mais

Memória. Arquitetura de Von Neumann. Universidade do Vale do Rio dos Sinos Laboratório I Prof.ª Vera Alves 1 CPU. Unidade de controle ULA

Memória. Arquitetura de Von Neumann. Universidade do Vale do Rio dos Sinos Laboratório I Prof.ª Vera Alves 1 CPU. Unidade de controle ULA Universidade do Vale do Rio dos Sinos Laboratório I Prof.ª Vera Alves 1 Arquitetura de Von Neumann CPU Unidade de controle Unidade de entrada Unidade de saída ULA Von Neumann era um gênio. Falava muitos

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais CAP 2: Conceitos de Hardware e Software Prof. MSc. Diego R. Moraes diegorm@anhanguera.com Download de todo conteúdo da disciplina https://sites.google.com/site/diegorafaelmoraes/downloads

Leia mais

Construção de Compiladores. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2014.

Construção de Compiladores. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2014. Construção de Compiladores Capítulo 1 Introdução José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2014.2 1/22 1 Linguagens de programação 2 Compilação 2/22 Tópicos 1

Leia mais

Projeto de Compiladores

Projeto de Compiladores Projeto de Compiladores FIR Faculdade Integrada do Recife João Ferreira 12 e 13 de fevereiro de 2007 Questionário 1. Em quais linguagens de programação você já programou? 2. O que você sabe sobre compiladores?

Leia mais

Programação I A Linguagem C. Prof. Carlos Alberto

Programação I A Linguagem C. Prof. Carlos Alberto Programação I A Linguagem C Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br 2 Origem A linguagem C foi desenvolvida em 1972, nos Laboratórios Bell, por Dennis Ritchie. Implementada

Leia mais

Infraestrutura de Hardware. Funcionamento de um Computador

Infraestrutura de Hardware. Funcionamento de um Computador Infraestrutura de Hardware Funcionamento de um Computador Computador: Hardware + Software Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é

Leia mais

Informática I. Aula 9. Aula 9-27/09/2006 1

Informática I. Aula 9.   Aula 9-27/09/2006 1 Informática I Aula 9 http://www.ic.uff.br/~bianca/informatica1/ Aula 9-27/09/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação 128 13 129 Linguagens de Programação Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas

Leia mais

Introdução à Computação: Máquinas Multiníveis

Introdução à Computação: Máquinas Multiníveis Introdução à Computação: Máquinas Multiníveis Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Paradigma Imperativo Matheus Hafner Tiago Xavier CET 087 - Conceitos de Linguagens de Programação (CLP) 10 de novembro de 2011 Sumário 1 Introdução 2 Paradigma imperativo Modelo

Leia mais

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 Exercícios de revisão Lista 01: a) Monte um mapa conceitual indicando as relações entre os seguintes conceitos, no contexto do assunto visto em aula:

Leia mais

Linguagem de Programação

Linguagem de Programação Linguagem de Programação Aula 2 Introdução Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Técnico em Informática Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno O que

Leia mais

Puca Huachi Vaz Penna

Puca Huachi Vaz Penna BCC201 Introdução à Computação Turmas 31, 32 e 33 Puca Huachi Vaz Penna Departamento de Computação Universidade Federal de Ouro Preto http://www.decom.ufop.br/puca puca@iceb.ufop.br Aula 2 Introdução:

Leia mais

Introdução. (Aula 2) Organização Estruturada de Computadores

Introdução. (Aula 2) Organização Estruturada de Computadores Introdução (Aula 2) Organização Estruturada de Computadores Introdução Arquitetura de Hardware 01- Monitor 02- Placa-Mãe 03- Processador 04- Memória RAM 05- Placas de Rede, Som, Vídeo, Fax... 06- Fonte

Leia mais

Slides trabalhados durante a quinta aula

Slides trabalhados durante a quinta aula Slides trabalhados durante a quinta aula prática Estruturas de Controle de Fluxo 3. Laços de repetição (continuação) Exercício: Construa um algoritmo, representando-o através de um pseudocódigo e de um

Leia mais

Prof. Sandro Wambier

Prof. Sandro Wambier Prof. Sandro Wambier São elementos da Arquitetura de um computador: conjunto de instruções de um processador, os modos de endereçamentos, o tipo e tamanho dos dados manipulados pelo processador, ex.: Intel

Leia mais

EA876 - Introdução a Software de Sistema

EA876 - Introdução a Software de Sistema A876 - Introdução a Software de Sistema Software de Sistema: conjunto de programas utilizados para tornar o hardware transparente para o desenvolvedor ou usuário. Preenche um gap de abstração. algoritmos

Leia mais

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

Conceitos de Linguagens de Programação - Características. Paavo Soeiro Conceitos de Linguagens de Programação - Características Paavo Soeiro Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o

Leia mais

Linguagens de Programação

Linguagens de Programação O estudante estuda muito. Regras: 7 9 12 14. . Regras: 2 4 . Regras: 1 Representar através de uma árvore de derivação. 77 O estudante estuda muito.

Leia mais

Projeto de Compiladores

Projeto de Compiladores Projeto de Compiladores FIR Faculdade Integrada do Recife João Ferreira 26 e 27 de fevereiro de 2007 Agenda da Aula Revisão Linguagem de Programação Tradutores Compilador As Fases de Um Compilador Linguagem

Leia mais

Introdução (Aula 2) Introdução Arquitetura de Hardware. Organização Estruturada de Computadores. Introdução Conceitos (2) Introdução Conceitos (1)

Introdução (Aula 2) Introdução Arquitetura de Hardware. Organização Estruturada de Computadores. Introdução Conceitos (2) Introdução Conceitos (1) Introdução Arquitetura de Hardware Introdução (Aula 2) Organização Estruturada de Computadores 01- Monitor 02- Placa-Mãe 03- Processador 04- Memória RAM 05- Placas de Rede, Som, Vídeo, Fax... 06- Fonte

Leia mais

Como construir um compilador utilizando ferramentas Java

Como construir um compilador utilizando ferramentas Java Como construir um compilador utilizando ferramentas Java p. 1/2 Como construir um compilador utilizando ferramentas Java Aula 1 - Introdução Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir um

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Linguagens de Programação: sintaxe e semântica de linguagens de programação e conceitos de linguagens interpretadas e compiladas Engenharia da Computação Professor: Críston Pereira

Leia mais

Algoritmos e Programação

Algoritmos e Programação ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE ENGENHARIA ELÉTRICA

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Linguagens Conceito de Algoritmo Pseudocódigo

Leia mais

Algoritmos. Prof. Jonatas Bastos Site:

Algoritmos. Prof. Jonatas Bastos   Site: Algoritmos Prof. Jonatas Bastos Email: jonatasfbastos@gmail.com Site: http://jonatasfbastos.wordpress.com/ 1 Dúvidas! p p p Como os computadores entendem os algoritmo? Os computadores não entendem os passos

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Linguagem de programação C 3.1. Conceitos

Leia mais

Olá pessoal, Hoje vamos entender os conceitos sobre linguagem de programação. Definição, tipos de linguagens e as linguagens mais utilizadas

Olá pessoal, Hoje vamos entender os conceitos sobre linguagem de programação. Definição, tipos de linguagens e as linguagens mais utilizadas Olá pessoal, Hoje vamos entender os conceitos sobre linguagem de programação. Definição, tipos de linguagens e as linguagens mais utilizadas atualmente. Uma linguagem de programação é um conjunto padronizado

Leia mais

Algoritmos e Programação

Algoritmos e Programação ESTADO DE MATO GROSSO SECRETARIA DE ESTADO DE CIÊNCIA E TECNOLOGIA UNIVERSIDADE DO ESTADO DE MATO GROSSO CAMPUS UNIVERSITÁRIO DE SINOP FACULDADE DE CIÊNCIAS EXATAS E TECNOLÓGICAS Algoritmos e Programação

Leia mais

Curso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 1ª Parte Prof. Sandra Pais Soares

Curso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 1ª Parte Prof. Sandra Pais Soares Curso Profissional de Gestão e Programação de Sistemas Informáticos Programação e Sistemas de Informação Módulo 1 1ª Parte Prof. Sandra Pais Soares Linguagens de Programação Linguagens de Programação Uma

Leia mais

LAPRO I. Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática - FACIN. Prof. Dr. Rafael Garibotti

LAPRO I. Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática - FACIN. Prof. Dr. Rafael Garibotti Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática - FACIN LAPRO I Prof. Dr. Rafael Garibotti v Baseado no material cedido pelos Profs. Dr. Marco Mangan e Dr. Matheus Trevisan

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Linguagens Paradigmas para linguagens de Programação

Leia mais

Introdução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Introdução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação Aula 03 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação Linguagens de Programação A primeira linguagem de programação foi criada por Ada Lovelace. Amiga

Leia mais

Introdução à programação em PASCAL. Aula de 22/10/2001. Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores

Introdução à programação em PASCAL. Aula de 22/10/2001. Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores Introdução à programação em PASCAL Aula de 22/10/2001 Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores Conteúdo Conceito de linguagem de programação O processo

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Linguagem de Montagem e Linguagem de Máquina Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br Conceitos básicos Linguagem/código

Leia mais

As fases de um compilador

As fases de um compilador As fases de um compilador Compilando um programa simples estrutura de um compilador formas de organização de um compilador processo de execução de uma linguagem de alto-nível Compilando um programa simples

Leia mais

Informática I. Aula Aula 18-29/10/2007 1

Informática I. Aula Aula 18-29/10/2007 1 Informática I Aula 18 http://www.ic.uff.br/~bianca/informatica1/ Aula 18-29/10/2007 1 Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript

Leia mais

Programação I Apresentação

Programação I Apresentação Programação I Apresentação Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Referências JUNIOR, D. P.; NAKAMITI, G. S.; ENGELBRECHT, A. de M. E.; BIANCHI, F. Algoritmos e Programação

Leia mais

Autômatos e Linguagens

Autômatos e Linguagens Autômatos e Linguagens Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Agosto, 2016 1 / 41 Sumário 1 Compiladores 2 Linguagens de programação 3 Ciência dos compiladores

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação Sintaxe e semântica Aula 4 Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Sintaxe A sintaxe de uma linguagem de programação é a forma

Leia mais

Introdução aos Compiladores

Introdução aos Compiladores Universidade Católica de Pelotas Introdução aos Compiladores André Rauber Du Bois dubois@ucpel.tche.br 1 MOTIVAÇÃO Entender os algor ıtmos e estruturas usados para se implementar linguagens de programação

Leia mais

Linguagens de Programação

Linguagens de Programação Universidade Federal do Rio Grande do Norte Centro de Tecnologia Departamento de Computação e Automação Linguagens de Programação Professor Responsável: Luiz Affonso Henderson Guedes de Oliveira Prof.

Leia mais

Aula 23: Noções de Compilação, Montagem, Link-edição, e Interpretação

Aula 23: Noções de Compilação, Montagem, Link-edição, e Interpretação Aula 23: Noções de Compilação, Montagem, Link-edição, e Interpretação Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Compilação, Montagem, Link-edição,

Leia mais

Fundamentos de Programação 1

Fundamentos de Programação 1 Fundamentos de Programação 1 Slides N. 2 E / Prof. SIMÃO Slides elaborados pelo Prof. Robson Linhares elaborados pelo Prof. Robson Linhares http://www.dainf.ct.utfpr.edu.br/~robson/ Jean Marcelo SIMÃO

Leia mais

SSC510 Arquitetura de Computadores 1ª AULA

SSC510 Arquitetura de Computadores 1ª AULA SSC510 Arquitetura de Computadores 1ª AULA REVISÃO DE ORGANIZAÇÃO DE COMPUTADORES Arquitetura X Organização Arquitetura - Atributos de um Sistema Computacional como visto pelo programador, isto é a estrutura

Leia mais

Linguagens de Programação

Linguagens de Programação Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Linguagens de Programação DCA0800 - Algoritmos e Lógica de Programação Heitor Medeiros 1 Tópicos da aula

Leia mais

Introdução à Computação

Introdução à Computação Universidade Federal do Maranhão Curso de Química Departamento de Informática Introdução à Computação Linguagem Fortran Profa. Msc. Maria Auxiliadora Freire maria@deinf.ufma.br 1 Lógica de Programação

Leia mais

Sistemas Operacionais I

Sistemas Operacionais I Sistemas Operacionais I Revisão de conceitos Sistemas Operacionais I Dionisio Gava Junior Componentes básicos Componentes Básicos da Tecnologia da Informação Hardware CPU, Memória e Periféricos de E/S.

Leia mais

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP Aula 1 Introdução à Computação Eventos históricos: 1) Primeiro computador a válvulas, o Eletronic Numeric Integrator And

Leia mais

Compiladores I Prof. Ricardo Santos (cap 1)

Compiladores I Prof. Ricardo Santos (cap 1) Compiladores I Prof. Ricardo Santos (cap 1) Compiladores Linguagens de programação são notações que permitem descrever como programas devem executar em uma máquina Mas, antes do programa executar, deve

Leia mais

INTRODUÇÃO À PROGRAMAÇÃO. Introdução. Sérgio Carlos Portari Júnior

INTRODUÇÃO À PROGRAMAÇÃO. Introdução. Sérgio Carlos Portari Júnior INTRODUÇÃO À PROGRAMAÇÃO Introdução Sérgio Carlos Portari Júnior Sergio.junior@uemg.br TÓPICOS ABORDADOS Comparação homem x computador Entendendo o computador Linguagens de Programação Tipos de traduções

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Conceito de Algoritmo Pseudocódigo Tipos de

Leia mais

Linguagens de Programação Aula 3

Linguagens de Programação Aula 3 Aula 3 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada... Classificação das LPs (nível, geração e paradigma) Paradigmas Imperativo, OO, funcional, lógico e concorrente 2/33 Na aula de hoje...

Leia mais

As fases de um compilador

As fases de um compilador As fases de um compilador Paradigmas de LP Métodos de Implementação de LP Compilando um programa simples estrutura de um compilador formas de organização de um compilador processo de execução de uma linguagem

Leia mais

Capítulo 1. Aspectos Preliminares

Capítulo 1. Aspectos Preliminares Capítulo 1 Aspectos Preliminares Tópicos do Capítulo 1 Razões para estudar conceitos de linguagens de programação Domínios de programação Critérios de avaliação de linguagens Influências no projeto de

Leia mais

FACULDADE ZACARIAS DE GÓES SISTEMAS DE INFORMAÇÃO ADRIEL ALMEIDA CAFÉ PROCESSO DE COMPILAÇÃO

FACULDADE ZACARIAS DE GÓES SISTEMAS DE INFORMAÇÃO ADRIEL ALMEIDA CAFÉ PROCESSO DE COMPILAÇÃO 0 FACULDADE ZACARIAS DE GÓES SISTEMAS DE INFORMAÇÃO ADRIEL ALMEIDA CAFÉ PROCESSO DE COMPILAÇÃO Valença Bahia Novembro 2010 1 ADRIEL ALMEIDA CAFÉ PROCESSO DE COMPILAÇÃO Trabalho apresentado como requisito

Leia mais

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO DEPARTAMENTO DE ENGENHARIA DE COMPUTAÇÃO E SISTEMAS DIGITAIS PCS LABORATÓRIO DE PROCESSADORES I

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO DEPARTAMENTO DE ENGENHARIA DE COMPUTAÇÃO E SISTEMAS DIGITAIS PCS LABORATÓRIO DE PROCESSADORES I ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO DEPARTAMENTO DE ENGENHARIA DE COMPUTAÇÃO E SISTEMAS DIGITAIS PCS LABORATÓRIO DE PROCESSADORES I PROGRAMAÇÃO DE MICROPROCESSADORES Autor: Prof. Dr. Carlos

Leia mais

16. Compilação no Linux

16. Compilação no Linux 16. Compilação no Linux 16.1 Compilador X Interpretador Um código fonte pode ser compilado ou interpretado. Compiladores e interpretadores tratam o código de maneira diferente. Interpretador: Lê o código

Leia mais

ORGANIZAÇÃO DE COMPUTADORES

ORGANIZAÇÃO DE COMPUTADORES ORGANIZAÇÃO DE COMPUTADORES AULA 03 PROFº RITIELLE SOUZA DISTRIBUIÇÃO LÓGICA DISTRIBUIÇÃO LÓGICA Arquitetura de Von Neumann Uma unidade central de processamento recebe informações através de uma unidade

Leia mais

Introdução à Programação de Computadores Fabricação Mecânica

Introdução à Programação de Computadores Fabricação Mecânica Introdução à Programação de Computadores Fabricação Mecânica Edilson Hipolito da Silva edilson.hipolito@ifsc.edu.br - http://www.hipolito.info Aula 04 - Linguagens de Programação, Interpretador, compilador

Leia mais

1 Introdução à Programação O que é? Para que serve?... 1

1 Introdução à Programação O que é? Para que serve?... 1 Nesta aula... Conteúdo 1 Introdução à Programação 1 1.1 O que é?................................. 1 1.2 Para que serve?............................. 1 2 Linguagens de programação 2 2.1 Programação estruturada........................

Leia mais