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

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

1 Curso Sistemas de Informação Disciplina: Arquitetura de Software Compiladores e Interpretadores.

Apresentações semelhantes


Apresentação em tema: "1 Curso Sistemas de Informação Disciplina: Arquitetura de Software Compiladores e Interpretadores."— Transcrição da apresentação:

1 1 Curso Sistemas de Informação Disciplina: Arquitetura de Software Compiladores e Interpretadores

2 2 Uma Linguagem de Programação é composta de símbolos e códigos, regras de sintaxe e ferramenta. A primeira e mais primitiva linguagem de computador é a própria linguagem de máquina (formada por 0s e 1s). Linguagem de Programação

3 3 Desenvolver um programa em linguagem de máquina é difícil, longo e principalmente caro de se construir. Um programa em linguagem de máquina é difícil de ser entendido por outros programadores. Essa complexidade levou a necessidade de desenvolver novas técnicas e ferramentas. Programação em Linguagem de Máquina

4 4 O processo de tradução da linguagem de montagem para a linguagem de máquina é realizada por um programa chamado ASSEMBLER. Os programas de alto nível também precisam ser traduzidos para a linguagem de máquina. O processo de montagem traduz um programa escrito numa Linguagem de Programação num programa equivalente em Linguagem de Máquina. Linguagem Assembly e o Processo de Tradução

5 5 Processo de Montagem e Tradução CÓDIGO FONTE TRADUÇÃO LINGUAGEM DE MÁQUINA

6 6 Compiladores (Processo de Compilação) Execução Fonte Compilação LP LM Dados Executável criado antes da execução

7 Interpretadores (Processo de Interpretação) Execução Fonte Interpretação LP LM Dados Executável criado em tempo de execução

8 Compiladores Híbridos Execução Fonte Interpretação LP LM Dados Compilação Código Intermediário Código intermediário criado antes da execução Executável criado em tempo de execução

9 9 É mais ágil de INTERPRETAR. Não é específico de uma PLATAFORMA. Necessita ser instalado um INTERPRETADOR DE CÓDIGO. Código Intermediário

10 10 Exemplo.: JVM – Java Virtual Machine (Máquina Virtual Java).NET – Dot Net (Máquina Virtual Microsoft) O código intermediário é chamado de bytecode. Código Intermediário

11 11 É uma linguagem usada para descrever outra linguagem. BNF é uma metalinguagem para descrever Linguagens de Programação. Backus-Naur Form - BNF

12 12 Backus-Naur Form - BNF John BackusNoam Chomsky Peter Naur Foram os idealizadores iniciais da linguagem de livre contexto. Mais tarde Peter Naur modificou a linguagem para o projeto do Algol 60.

13 13 Uma gramática em BNF é composta por um conjunto finito de regras para definir uma Linguagem de Programação. Portanto, a gramática consiste em um conjunto de definições REGRAS. É com a aplicação da gramática que conseguimos formar programas válidos na linguagem destino. Gramática BNF

14 14 Exemplo de Gramática BNF ::= begin end ::= ; | ; ::= := ::= A | B | C ::= + | - |

15 15 A BNF usa abstrações para representar estruturas sintáticas. Ex.: Os itens léxicos são representados pelo negrito e são chamados de TERMINAIS. Ex.: A | B | C | D O símbolo ::= é usado no sentido de: é definido por ::= A | B | C | D Gramática BNF

16 16 Sempre existe um símbolo não-terminal no lado esquerdo de uma instrução.| ::= A | B | C | D No lado direito podemos ter terminais e/ou não- terminais. ::= A | B | C | D ::= = Regras da BNF

17 17 Sempre existe um símbolo não-terminal no lado esquerdo de uma instrução.| ::= A | B | C | D No lado direito podemos ter terminais e/ou não- terminais. ::= A | B | C | D ::= = Regras da BNF

18 18 Quais são os Não-Terminais e os Terminais ? ::= begin end ::= ; | ; ::= := ::= A | B | C | D | E ::= + | - |

19 19 Quais são os Não-Terminais e os Terminais ? Não-Terminais programa lista_sentenças sentença id expressão Terminais begin end ;:= A B C D E +-

20 20 Exemplo de Programa Válido begin A := B + C; B := B - D; A := B; end Um programa apenas contém símbolos terminais!

21 21 Exemplo de uma Linguagem com SE condicional? ::= begin end ::= ; | ; | ; ::= := ::= if then end if | if then else end if ::= > | < | = | <> | <= | >= ::= A | B | C | D | E ::= + | - |

22 Parse Trees A := B + C A:=B+C A := B + C

23 Exercício Desenhe a Árvore de Análise para a instrução: A := B * ( A + C )

24 Exercício A ) * + B ( A C :=

25 Exercício Desenhe a Árvore de Análise para a instrução: A := (B * C) + (A * C) + (B * C)


Carregar ppt "1 Curso Sistemas de Informação Disciplina: Arquitetura de Software Compiladores e Interpretadores."

Apresentações semelhantes


Anúncios Google