UPE Caruaru Sistemas de Informao Disciplina Compiladores Prof
- Slides: 37
UPE – Caruaru – Sistemas de Informação Disciplina: Compiladores Prof. : Paulemir G. Campos Conceitos Básicos de Compilação (Parte 1) 10/19/2021 Comp - Prof. Paulemir Campos 1
Roteiro da Aula n Compiladores n Análise do Programa Fonte n Referências 10/19/2021 Comp - Prof. Paulemir Campos 2
Compiladores 10/19/2021 Comp - Prof. Paulemir Campos 3
Introdução n Um compilador é um programa que: n n 10/19/2021 lê um programa escrito numa linguagem, a linguagem fonte; e, o traduz num programa equivalente numa outra linguagem, a linguagem alvo (geralmente assembly ou linguagem de máquina). Comp - Prof. Paulemir Campos 4
Introdução n Como uma importante parte deste processo de tradução, o compilador relata ao usuário a presença de erros no programa fonte. 10/19/2021 Comp - Prof. Paulemir Campos 5
Introdução Diagrama de um compilador 10/19/2021 Comp - Prof. Paulemir Campos 6
Introdução n n Há milhares de linguagens fontes; Desde linguagens de programação tradicionais, como, Fortran e Pascal, até linguagens específicas que surgem virtualmente em toda área de aplicação de computador. 10/19/2021 Comp - Prof. Paulemir Campos 7
Introdução n Linguagem alvo pode ser: n n 10/19/2021 uma outra linguagem de programação; ou, a linguagem de máquina de qualquer computador, desde um microprocessador até um supercomputador. Comp - Prof. Paulemir Campos 8
Introdução n n As tarefas básicas que qualquer compilador deve desempenhar são essencialmente a mesma; Assim, pode-se construir compiladores para uma larga variedade de linguagens fontes e de máquinas alvo usando as mesmas técnicas básicas. 10/19/2021 Comp - Prof. Paulemir Campos 9
Introdução n O conhecimento sobre como organizar e escrever compiladores tem crescido consideravelmente desde o surgimento do primeiro compilador no início dos anos 50 do século passado. 10/19/2021 Comp - Prof. Paulemir Campos 10
Introdução n n É difícil dar uma data exata de quando foi criado o primeiro compilador; Isto porque inicialmente uma grande quantidade de experimentos e implementações foram concluídas independentemente por muitos grupos. 10/19/2021 Comp - Prof. Paulemir Campos 11
Introdução n n Muitos dos primeiros compiladores tratavam da tradução de fórmulas aritméticas para código de máquina. Durante toda a década de 50 do século XX, compiladores foram notoriamente considerados programas difíceis de serem escritos. 10/19/2021 Comp - Prof. Paulemir Campos 12
Introdução n n Por exemplo, o primeiro compilador Fortran levou 18 anos para ser implementado (Backus et al. , 1957). Contudo, tem sido descobertas técnicas sistemáticas para manipular muitas das importantes tarefas que ocorrem durante uma compilação. 10/19/2021 Comp - Prof. Paulemir Campos 13
Introdução n n Além disso, boas linguagens de implementação, ambientes de programação e ferramentas de computador também foram desenvolvidas. Assim, atualmente um compilador pode ser implementado num semestre. 10/19/2021 Comp - Prof. Paulemir Campos 14
O Modelo Análise-Síntese de Compilação n O processo de compilação é constituído de duas etapas: n n 10/19/2021 Análise – quebra o programa fonte em peças constituintes e cria uma representação intermediária; Síntese – constrói o programa alvo desejado a partir da representação intermediária. Comp - Prof. Paulemir Campos 15
O Modelo Análise-Síntese de Compilação n n A etapa de síntese requer técnicas mais especializadas; A análise do programa fonte será tratada informalmente no próximo tópico. 10/19/2021 Comp - Prof. Paulemir Campos 16
O Modelo Análise-Síntese de Compilação n n Durante a análise, as operações presentes no programa fonte são determinadas e registradas numa estrutura hierárquica chamada árvore. Conseqüentemente, esse tipo especial de árvore é chamada de árvore sintática. 10/19/2021 Comp - Prof. Paulemir Campos 17
O Modelo Análise-Síntese de Compilação n Numa árvore sintática: n n 10/19/2021 Cada nó representa uma operação; e, cada nó folha representa um argumento da operação. Comp - Prof. Paulemir Campos 18
O Modelo Análise-Síntese de Compilação n Árvore sintática para a declaração de atribuição: posicao : = inicial + taxa * 60 10/19/2021 Comp - Prof. Paulemir Campos 19
O Modelo Análise-Síntese de Compilação n n Muitas ferramentas de computador que manipulam programas fonte primeiro efetuam algum tipo de análise. Alguns exemplos de ferramentas que tratam do programa fonte: n 10/19/2021 Editores de Estrutura – Recebe uma seqüência de comandos para construir um programa fonte. Comp - Prof. Paulemir Campos 20
O Modelo Análise-Síntese de Compilação n Alguns exemplos de ferramentas que tratam do programa fonte (Cont. ): n 10/19/2021 Organizador de Impressão – Analisa um programa e o imprime de uma forma que sua estrutura torna-se claramente visível. Ex. : Comentários podem aparecer com um tipo de fonte e declarações com indentação proporcional ao seu aninhamento. Comp - Prof. Paulemir Campos 21
O Modelo Análise-Síntese de Compilação n Alguns exemplos de ferramentas que tratam do programa fonte (Cont. ): n 10/19/2021 Verificador Estático – Lê um programa, analisa-o e tentar descobrir potenciais bugs sem executar o programa. Ex. : Pode detectar partes do programa que nunca serão executadas, ou que uma variável pode ser usada antes de inicializada. Comp - Prof. Paulemir Campos 22
O Modelo Análise-Síntese de Compilação n Alguns exemplos de ferramentas que tratam do programa fonte (Cont. ): n 10/19/2021 Avaliador de Expressões – Executa as operações indicadas no programa fonte. Ex. : Pode construir uma árvore sintática de uma atribuição e avaliar o resultado “caminhando pela árvore”. Comp - Prof. Paulemir Campos 23
Análise do Programa Fonte 10/19/2021 Comp - Prof. Paulemir Campos 24
Introdução n Em compilação, a análise consiste de três fases: n 10/19/2021 Análise Linear – Onde a cadeia de caracteres que forma o programa fonte é lida da esquerda para a direita e agrupada em símbolos (tokens), que são seqüências de caracteres dando a idéia de coleção; Comp - Prof. Paulemir Campos 25
Introdução n Em compilação, a análise consiste de três fases (Cont. ): n n 10/19/2021 Análise Hierárquica – Onde caracteres ou símbolos (tokens) são agrupados hierarquicamente em coleções aninhadas; Análise Semântica – Onde certas verificações são efetuadas para assegurar que os componentes do programa estão aptos para continuar a compilação. Comp - Prof. Paulemir Campos 26
Análise Léxica n Em compilação, análise linear é chamada de análise léxica ou scanning. n 10/19/2021 Ex. : Na análise léxica, os caracteres na declaração de atribuição posicao : = inicial + taxa * 60 podem ser agrupados nos tokens a seguir. Obs. : Os espaço em branco separando os caracteres dos tokens podem normalmente serem eliminados durante o scanning. Comp - Prof. Paulemir Campos 27
Análise Léxica n 10/19/2021 Ex. : 1. O 2. O 3. O 4. O 5. O 6. O 7. O posicao : = inicial + taxa * 60 identificador posicao. símbolo de atribuição : =. identificador inicial. sinal de adição +. identificador taxa. sinal de multiplicação *. número 60. Comp - Prof. Paulemir Campos 28
Análise Sintática ou Parsing n n n Análise Hierárquica é chamada de Parsing ou Análise Sintática. Esta fase envolve o agrupamento dos tokens do programa fonte em frases gramaticais usadas pelo compilador para sintetizar a saída. Normalmente, as frases gramaticais são representadas por árvores sintáticas. 10/19/2021 Comp - Prof. Paulemir Campos 29
Análise Sintática ou Parsing Árvore sintática de posicao : = inicial + taxa * 60 10/19/2021 Comp - Prof. Paulemir Campos 30
Análise Sintática ou Parsing n A estrutura hierárquica de um programa é geralmente expressa por regras recursivas. Ex. : 1. Todo <identificador> é uma <expressão> 2. Todo <número> é uma <expressão> 3. Se <expressão 1> e <expressão 2> são expressões então <expressão 1> + <expressão 2> <expressão 1> * <expressão 2> ( <expressão 1> ) também são. 10/19/2021 Comp - Prof. Paulemir Campos 31
Análise Sintática ou Parsing n n n Note que as regras (1) e (2) são regras básicas (não recursivas); Já a regra (3) define expressões em termos de operadores aplicados a outras expressões. Assim, pela regra (1) inicial e taxa são expressões; 10/19/2021 Comp - Prof. Paulemir Campos 32
Análise Sintática ou Parsing n n Pela regra (2) 60 é uma expressão; E pela regra (3) pode-se inferir primeiro que taxa * 60 é uma expressão e em seguida que inicial + taxa * 60 é uma expressão. 10/19/2021 Comp - Prof. Paulemir Campos 33
Análise Semântica n n A fase de análise semântica verifica o programa fonte em busca de erros semânticos e anexa informações de tipo para a fase de geração de código. Usa a estrutura hierárquica determinada pela análise sintática e identifica os operadores e operandos de expressões e declarações. 10/19/2021 Comp - Prof. Paulemir Campos 34
Análise Semântica n n Um importante componente da análise semântica é a verificação de tipos. Assim, o compilador verifica se cada operador tem operandos permitidos pela especificação da linguagem fonte. 10/19/2021 Comp - Prof. Paulemir Campos 35
Análise Semântica Inserção de conversão de tipo na fase de análise semântica. 10/19/2021 Comp - Prof. Paulemir Campos 36
Referências n Aho, A. V. ; Sethi, R. e Ullman, J. D. Compilers: Principles, Techniques, and Tools. Addison Wesley Longman, 1985. (Capítulo 1, seções 1. 1 e 1. 2). 10/19/2021 Comp - Prof. Paulemir Campos 37
- Curso expresiones regulares
- Compiladores
- Gramáticas libres de contexto (glc)
- Curso de compiladores
- Tabla de simbolos compiladores
- Regras de nomenclatura dos seres vivos
- Certo fabricante segundo levantamentos estatísticos
- Ouvidoria pedro ernesto
- Upe 2a
- Upe 2014 numa competição esportiva cinco atletas
- Didysis lokiu ezeras
- Upe 2017
- Uel a cidade desempenha papel fundamental no pensamento
- Skrubai
- Upe 2a
- Vandens išgraužta vieta
- Cuales son los fines fundamentales de la contabilidad
- Koja disciplina
- La fijacion de los hechos quinta disciplina
- Literatura disciplina
- Disciplina edm
- Grupo financiero gst
- Lcp disciplina
- Caracteristica de la disciplina
- Disciplina virtude
- Literatura disciplina
- Model programa scolara pentru o disciplina optionala
- Como se disciplina a un pastor
- Disciplina como valor
- Que es la disciplina
- Strofa je
- Acorde disciplina
- Elementos de la disciplina
- Disciplina operativa pemex
- O que é disciplina operacional
- O que é a vara da disciplina
- Que es una disciplina científica
- Imagens da disciplina de português