A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Projeto de Linguagens de Programação

Apresentações semelhantes


Apresentação em tema: "Projeto de Linguagens de Programação"— Transcrição da apresentação:

1 Projeto de Linguagens de Programação
II – Fundamentos de Compilação e Interpretaçã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

2 II – Fundamentos de Compilação e Interpretação
II.1 Conceitos Fundamentais Atualmente uma série de tarefas das nas mais diversas áreas são realizadas através de um computador ou algum sistema controlado por um computador. Exemplifique algumas tarefas realizadas por este sujeito Exemplifique algumas tarefas realizadas por este sujeito. Uma delas é programar o =>

3 II – Fundamentos de Compilação e Interpretação
II.1 Conceitos Fundamentais O que é um programa? É um conjunto de instruções organizadas logicamente. Como se estabelece uma comunicação? Oi! Como vai você? Vou bem! E você? É necessário a utilização de uma Linguagem para que haja entendimento entre os interlocutores.

4 II – Fundamentos de Compilação e Interpretação
II.1 Conceitos Fundamentais Hi! How are you? O que? Poxa! Ninguém se entende! Por que?

5 II – Fundamentos de Compilação e Interpretação
II.1 Conceitos Fundamentais Hi! How are you? Olá! Como vai você? E aí Meu! Como vai? Vou bem! E você?

6 II – Fundamentos de Compilação e Interpretação
II.1 Conceitos Fundamentais Olá! Como vai você? Fine!

7 II – Fundamentos de Compilação e Interpretação
II.1 Conceitos Fundamentais Oi máquina =D6F Linguagem de Natural Máquina Tradução: Compiladores Interpretadores Linguagem de programação: Alto Nível Baixo Nível

8 II – Fundamentos de Compilação e Interpretação
II.2 Gerações das Linguagens de Programação 1ª Geração Linguagem de máquina; 2ª Geração Assembler, linguagem montadora; 3ª Geração Linguagem de alto nível orientada para os procedimentos, linguagem simbólica de composição do raciocínio; 4ª Geração diversificação das linguagens de programação. Linguagens de altíssimo nível, orientadas para problemas.

9 II – Fundamentos de Compilação e Interpretação
II.3 Linguagem de Programação Definição: é um conjunto de termos (vocábulos) e regras (sintaxe) que permitem a formulação de instruções (programas para serem executadas pelo computador) Tipos de linguagens: Linguagem de Máquina: é única entendida pelo computador, sendo formada por instruções em código binário.

10 II – Fundamentos de Compilação e Interpretação
II.3 Linguagem de Programação Linguagem de baixo nível: são aquelas cujo os códigos são muito próximos aos usados pela máquina. São utilizadas no desenvolvimento de aplicações que interagem diretamente com o hard-ware necessitando alta ve-locidade de execução. A estas linguagens dá-se o nome de Linguagem Mon-tadora (Assembler – As-sembly Language).

11 II – Fundamentos de Compilação e Interpretação
II.3 Linguagem de Programação Linguagem de alto nível: são aquelas cujo os códigos são muito próximos aos utilizados pela linguagem humana.

12 II – Fundamentos de Compilação e Interpretação
II.3 Linguagem de Programação Proximidade entre a linguagem e a máquina.

13 II – Fundamentos de Compilação e Interpretação
II.3 Linguagem de Programação Relação entre o usuário e o computador através da linguagem.

14 II – Fundamentos de Compilação e Interpretação
II.4 Sistema Operacional Definição: Conjunto de programas integrados, cuja tarefa é colocar a máquina em operação e proporcionar um ambiente para que o usuário possa se comunicar com ela. Histórico dos S.O´s 1° Nível (anos 50): Auxiliar programas nas operações de entrada e saída de dados e na tradução de programas-fontes. 2° Nível (anos 60): auxiliar na tradução de programas mais evoluídos, programas de serviço para transferência de informação entre periféricos. 3°Nível (anos 60): base para os tradutores de altíssimo rendimento.

15 II – Fundamentos de Compilação e Interpretação
II.4 Sistema Operacional Estrutura básica de um sistema operacional. Os programas de um S.O. podem ser divididos em grupos: Programas de controle: Coordenam o funcionamento de todos os elementos físicos (hardware) do computador (CPU, processamento de I/O e periféricos). Gerenciamento de dados: Controlar e coordenar todas as operações relativas à movimentação de dados.

16 II – Fundamentos de Compilação e Interpretação
II.4 Sistema Operacional Gerenciamento de serviços/trabalhos: Controlar os programas de usuários para execução e reexecução e atribuição a periféricos. Gerenciamento de sistemas: Coordenar e supervisionar o funcionamento dos demais programas tais como: proteção de memória, identificação de erros na memória e de erros de programa (quando a U.C (Unidade de Controle) não reconhecer o comando). Programas de processo: Usados para dar apoio e fornecer programas para execução: tradutores, utilitários.

17 II – Fundamentos de Compilação e Interpretação
II.5 Tradutores Fonte Objeto Executável Tradução Linkedição Entrada Saída Compilador Fonte Executável Interpretação Entrada Saída Interpretador

18 II – Fundamentos de Compilação e Interpretação
II.5 Tradutores Fonte Byte Code Código Intermediário Tradutor Entrada Saída Java Máquina Virtual

19 II – Fundamentos de Compilação e Interpretação
II.5 Tradutores Finalizando: A tradução dos programas pode se feitas de três formas: Montadores (Assembler): Transformam os programas escritos em linguagem de baixo nível (Assembly) em programas-objetos. Compiladores: Transforma programas escritos em linguagem de alto nível (programa-fonte) em programas-objetos, que após transformado pelo Linker, poderá ser executado pelo computador (arquivo tipo EXE).

20 II – Fundamentos de Compilação e Interpretação
II.5 Tradutores Interpretadores: Tem as mesmas características dos compiladores, só que não geram programas- objetos. A tradução é feita diretamente do programa fonte. É mais demorado que o compilador, uma vez que interpreta cada comando ao executá-lo.

21 II – Fundamentos de Compilação e Interpretação
II.5 Tradutores II.5.1 – Estrutura de um Tradutor

22 II – Fundamentos de Compilação e Interpretação
II.5 Tradutores II.5.1 – Estrutura de um Tradutor Fluxo de Caracteres Analisador Léxico Fluxo de tokens Analisador Sintático Árvore Sintática Analisador Semântico Processo de Análise = front-end compiler Tabela de Símbolos Árvore Sintática

23 II – Fundamentos de Compilação e Interpretação
II.5 Tradutores II.5.1 – Estrutura de um Tradutor Árvore Sintática Código da Máquina Alvo Gerador de Código Intermediário Representação Intermediária Gerador de Código Otimização de Código Depende da Máquina Otimização de Código independe da Máquina Processo de Sítese = back-end compiler Tabela de Símbolos

24 II – Fundamentos de Compilação e Interpretação
II.5 Tradutores II.5.1 – Estrutura de um Tradutor Tabela de Símbolos: É responsável pelo armazenamento das informações de todo o programa fonte e é utilizada por todas as fases do compilador.

25 Identifica uma sequência de caracteres: “token”. Palavra reservada;
II – Fundamentos de Compilação e Interpretação II.5 Tradutores II – Análise Léxica Identifica uma sequência de caracteres: “token”. Palavra reservada; Delimitadores; Identificadores Inicia a construção da tabela de símbolos e envia mensagem de erros. Exemplo: While i<100 do i:=j+1; [while,][id,7][<,][cte,13][do,][id,7][:=,][id,12][id,7][;, ]

26 II – Fundamentos de Compilação e Interpretação
II.5 Tradutores II – Análise Léxica [while,][id,7][<,][cte,13][do,][id,7][:=,][id,12][id,7][;, ] palavras reservadas, operadores e delimitadores são representados pelos próprios símbolos; Identificadores de variáveis e constantes numéricas são representados pelo parn [classe do símbolo, índice de tabela].

27 II – Fundamentos de Compilação e Interpretação
II.5 Tradutores II – Análise Sintática Verifica se a estrutura gramatical (frase) (expressões, comandos) estão de acordo com as regras da linguagem. Processo de varredura (parsing) Produz a árvore de derivação resultante da aplicação das regras gramaticais.

28 II – Fundamentos de Compilação e Interpretação
II.5 Tradutores II – Análise Semântica Verifica se as estruturas do programa irão fazer sentido durante a execução. Exemplo: While <expressão> do <comando>

29 II – Fundamentos de Compilação e Interpretação
II.5 Tradutores II – Geração de Código Intermediário Utiliza a representação interna produzida pelo analisador sintático e gera como saída uma sequência de código. Esta sequência pode ser o código final ou um código intermediário. A geração do código intermediário possui algumas vantagens: Otimização do código intermediário, obtendo- se um código final mais eficiente; Resolve, gradualmente, as dificuldades da passagem do código fonte para o objeto.

30 II – Fundamentos de Compilação e Interpretação
II.5 Tradutores II – Geração de Código Intermediário Exemplo: While i<100 do i:=j+1

31 II – Fundamentos de Compilação e Interpretação
II.5 Tradutores II – Otimização de Código Exemplo: While i<100 do i:=j+1 Anterior Otimizado

32 II – Fundamentos de Compilação e Interpretação
II.5 Tradutores II – Geração de Código Objeto Exemplo: while i<100 do i:=j+1 Otimizado Código baseado na linguagem simbólica de um PC 8086 Objeto

33 II – Fundamentos de Compilação e Interpretação
II.5 Tradutores II – Fundamentos de Compilação e Interpretação II – Gerencia de Tabelas Algumas tabelas são fixas como de paAlavras reservadas, delimitadores, etc.. É de grande importância a tabela montada durante a análise do programa fonte: Declaração de variáveis; Declaração dos procedimentos ou sub-rotinas; Parâmetros de sub-rotinas; etc. Dados coletados e armazenados na tabela dependem da linguagem.

34 II – Fundamentos de Compilação e Interpretação
C o n c l u s õ e s. Perguntas?

35 II – Fundamentos de Compilação e Interpretação
O fim....O fim


Carregar ppt "Projeto de Linguagens de Programação"

Apresentações semelhantes


Anúncios Google