Escolar Documentos
Profissional Documentos
Cultura Documentos
• Unidade de Ensino: 1
Estrutura de um
compilador
padrão para transmitir instruções para um computador • Próxima a linguagem de máquina (baixo nível); MOV BX, 4; //Move 4 para BX
ADD AX, BX; // Soma AX com BX
• É relacionada com a arquitetura
• Linguagens de baixo nível; HLT; //Finaliza o programa
de computadores;
• Linguagens de alto nível. FORTRAN, ALGOL, COBOL:
• Primeiras linguagens de alto nível.
LISP:
• Paradigma funcional;
• Utiliza expressões matemáticas como estrutura de
dados elementares
1
11/10/2019
?- esta(pra_chuva, Resposta).
Tipos de Compiladores
• Montadores: traduz o código Assembly em código de
máquina;
• Compiladores: traduz o código em alto-nível em uma
linguagem alvo;
• Interpretadores: as instruções são executadas
diretamente;
• Compiladores híbridos: todos os passos de uma
compilação, mas gera código intermediário, que será
executado por uma MV.
Fonte: Livro texto
2
11/10/2019
Linguagens Formais
• Alfabeto (∑): É um conjunto finito, não vazio, de
Fundamentos de símbolos os quais são formadas as cadeias.
Ex.: ∑= {a, b}.
linguagens formais
• Símbolo (caractere): é uma en.dade abstrata
básica a qual não é definida formalmente.
Ex.: letras; números; a, b.
3
11/10/2019
GramáNca Gramática
• Coleção finita de regras; Gramá.ca caracterizada como G=(V,T,P,S), onde:
• V Variáveis. Conjunto finito de símbolos variáveis ou
• Para gerar uma palavra, as regras devem
não- terminais;
ser aplicadas sucessivamente;
• A linguagem é definida pelo conjunto de • T alfabeto (å). Símbolos dos quais as sentenças da
palavras gerada pela gramá.ca. linguagem são cons.tuídas. Dá-se o nome
de terminais aos elementos do å.
Gramática
Gramática caracterizada como G = (V,T,P,S), onde:
• P conjunto de todas as leis de formação utilizadas
pela gramática para definir a linguagem. A cada regra
Hierarquia de
da formação dá-se o nome de produção
da gramática;
Chomsky e BNF
• S é um elemento de N, o qual dá início ao processo
de geração de sentenças. S é chamado de símbolo
inicial da gramática.
4
11/10/2019
5
11/10/2019
6
11/10/2019
Planejamento da
construção de um
Compilador
Bootstrapping Bootstrapping
O primeiro compilador foi escrito em código de máquina, O bootstrapping possui 3 passos:
sua construção foi trabalhosa, porém, como vantagem a • 1º passo: para a linguagem ‘A’, escrevemos
rapidez e serviu como base para todos os outros através do
o compilador na linguagem de máquina ‘M’;
processo de bootstraping.
• 2º passo: agora, para a linguagem ‘A’, escrevemos um
outro compilador na própria linguagem ‘A’ ;
A bootstrapping é a técnica para produzir a
• 3º passo: a saída do 2º passo será entrada para
autocompilação.
o primeiro compilador, aquele
construído no 1º Passo.
Bootstrapping Bootstrapping
7
11/10/2019
Ferramentas de Apoio
Ferramentas de apoio para o desenvolvimento dos
Ferramentas para o compiladores:
• Geradores de analisadores léxicos;
desenvolvimento • Geradores de analisadores sintáticos; e
de um Compilador
• Geradores de código.
8
11/10/2019
• Apresentar uma proposta de cronograma e as Finalidade – neste caso será uma linguagem para fins
ferramentas necessárias para desenvolver o educacionais.
compilador;
• Será criado apenas o frontend ou frontend e backend?
• Con.nuidade das palestras des.nadas à capacitação
dos seus profissionais, com um workshop sobre Eficiência
ferramentas que agilizam a construção dos • A compilação precisa ser rápida?
compiladores.
• 2.1 O executável gerado precisa ser rápido?
9
11/10/2019
Plataforma
Linguagem
• Em qual linguagem se pretender escrever o
compilador?
• Seria possível o uso de ferramentas?
Fonte: Livro texto
e-mails
social, endereço e e-mail.
10
11/10/2019
11
11/10/2019
Ø Conceitos de linguagem:
• Alfabeto;
• Palavra;
• Linguagem;
• Gramá.ca.
Ø BNF e EBNF.
12