Compiladores
-
Upload
carlos-wagner-costa -
Category
Documents
-
view
391 -
download
2
Transcript of Compiladores
Carlos Wagner 1
Técnico em Informática
● Prof.: Carlos Wagner– Linux Básico
– Programação 1
– Introdução a Sistemas Distribuídos e Segurança de Redes
– Montagem e manutenção
Carlos Wagner 2
Linguages de Programação e Compiladores
● Linguagens de programação são conjuntos de padrões e comandos usados para dar ordens aos computadores;
● Compiladores são os programas que transformam os programas escritos em linguagens de programação (de baixo ou alto nível) para a linguagem de máquina, própria da plataforma do equipamento.
Carlos Wagner 3
Linguages de Programação e Compiladores
● Linguagens de baixo nível estão mais relacionadas com a arquitetura dos equipamentos e portanto são diferentes entre si;
● LPs de alto nível estão mais longe dos detalhes das máquinas e são padronizadas.
Carlos Wagner 4
Paradigmas de programação
● Fornecem e determinam a visão que o programador possui sobre a estruturação e execução do programa:
– Procedural;– Estruturada;– Modular;– Orientada a objetos;– Linear.
Carlos Wagner 5
Paradigmas de programação
● Procedural ou programação imperativa: baseado no conceito de chamadas a procedimentos (rotinas, subrotinas, métodos ou funções)
– Facilidade em reutilizar código;– Facilita organizar o fluxo do programa;
● Ex.: Ada, Algol, Basic, C/C++, Cobol, D, ECMAScript, Frtran...
Carlos Wagner 6
Paradigmas de programação
● Estruturada: preconiza, recomenda que todos os programas possíveis podem ser reduzidos a apenas três estruturas: sequência, decisão e repetição.
– Ex.: C/C++, Pascal, Basic, Cobol
Carlos Wagner 7
Paradigmas de programação
● Orientado a objetos: baseado na composição e interação de diversas unidades de software chamadas objetos. Objetos são instâncias das Classes que definem atributos e métodos que devem ser usados e manipulados para executarem os programas.
– Ex.: C++, Object Pascal, Smalltalk, C#, Ada
Carlos Wagner 8
Compiladores
● Um compilador é um programa de sistema que traduz um programa descrito em uma linguagem de programação de alto nível para um programa equivalente em código de máquina para um determinado processador.
Carlos Wagner 9
Compiladores
● Uma LP consiste essencialmente de uma sequência de strings ou símbolos com regras oara definir quais dessas sequenências são válidas na linguagem (sintaxe)
● A interpretação do significado de uma sequência válida de símbolos corresponde à semântica da linguagem.
● A sintaxe de uma LP é expressa na forma de uma gramática.
Carlos Wagner 10
Linguagens interpretadas
● Nem todas as linguagens precisam ser compiladas. Algumas podem ser interpretadas e outras ainda devem ser executadas em máquinas virtuais.
● As linguagens interpretadas precisam de um programa (interpretador) que leem o código fonte do programa e executam os comandos contidos no arquivo.
Carlos Wagner 11
Linguagens interpretadas
● Nem todas as linguagens precisam ser compiladas. Algumas podem ser interpretadas e outras ainda devem ser executadas em máquinas virtuais.
● As linguagens interpretadas precisam de um programa (interpretador) que leem o código fonte do programa e executam os comandos contidos no arquivo.
Carlos Wagner 12
Linguagens interpretadas
● Exemplos de linguagens interpretadas: Basic, Logo, R, S, Python, Lisp, JavaScript, Lua, Ruby, VBScript, ActionScript...
Carlos Wagner 13
Linguagens que geram bytecode
● Algumas Lps podem rodar em verdadeiras plataformas que incluem até máquinas virtuais. Estas tecnologias normalmente passam por um processo que gera um arquivo intermediário chamado bytecode que é específico para a VM daquela linguagem. Este bytecode então pode ser interpretado e executado para aquela VM em qualquer plataforma.
– Ex.: Java, C#, .Net, Lua, Adobe Flash...
Carlos Wagner 14
Bytecode java
Carlos Wagner 15
Compiladores de compiladores
● Ou gerador de compilador, gerador de analisador sintático ou ainda gerador de parser – é um algoritmo, um componente de software ou um programa de computador que gera o código fonte de um analisador sintático, interpretador ou compilador de uma linguagem de programação.
● Na maioria dos casos ele é alimentado com a descrição sintática e semântica da linguagem independente de arquitetura, junto com uma uma descrição do conjunto de instruções da arquitetura independente de linguagem de programação.
Carlos Wagner 16
Compiladores de compiladores● ANTLR
● Bison
● Coco/R
● DMS Software Reengineering Toolkit
● ELI
● Grako, a Python EBNF-to-PEG parser generator.
● Lemon
● parboiled, a Java library for building parsers.
● Packrat parser
● PQCC, a compiler-compiler that is more than a parser generator.
● SYNTAX, an integrated toolset for compiler construction
● VisualLangLab, a visual parser generator for JVM languages.
● Yacc
● XPL
Carlos Wagner 17
Técnico em Informática
● Carlos Wagner– Fone: 8413-6949
– http://cwagnersc.blogspot.com
– http://www.facebook.com/CWagnersc