Compiladores
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
572
On Slideshare
572
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
12
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Carlos Wagner 1Técnico em Informática● Prof.: Carlos Wagner– Linux Básico– Programação 1– Introdução a Sistemas Distribuídos e Segurança deRedes– Montagem e manutenção
  • 2. Carlos Wagner 2Linguages de Programação eCompiladores● Linguagens de programação são conjuntos depadrões e comandos usados para dar ordens aoscomputadores;● Compiladores são os programas que transformamos programas escritos em linguagens deprogramação (de baixo ou alto nível) para alinguagem de máquina, própria da plataforma doequipamento.
  • 3. Carlos Wagner 3Linguages de Programação eCompiladores● Linguagens de baixo nível estão mais relacionadascom a arquitetura dos equipamentos e portanto sãodiferentes entre si;● LPs de alto nível estão mais longe dos detalhes dasmáquinas e são padronizadas.
  • 4. Carlos Wagner 4Paradigmas de programação● Fornecem e determinam a visão que oprogramador possui sobre a estruturação eexecução do programa:– Procedural;– Estruturada;– Modular;– Orientada a objetos;– Linear.
  • 5. Carlos Wagner 5Paradigmas de programação● Procedural ou programação imperativa:baseado no conceito de chamadas aprocedimentos (rotinas, subrotinas, métodosou funções)– Facilidade em reutilizar código;– Facilita organizar o fluxo do programa;● Ex.: Ada, Algol, Basic, C/C++, Cobol,D, ECMAScript, Frtran...
  • 6. Carlos Wagner 6Paradigmas de programação● Estruturada: preconiza, recomenda que todosos programas possíveis podem ser reduzidosa apenas três estruturas: sequência, decisão erepetição.– Ex.: C/C++, Pascal, Basic, Cobol
  • 7. Carlos Wagner 7Paradigmas de programação● Orientado a objetos: baseado na composiçãoe interação de diversas unidades de softwarechamadas objetos. Objetos são instâncias dasClasses que definem atributos e métodos quedevem ser usados e manipulados paraexecutarem os programas.– Ex.: C++, Object Pascal, Smalltalk, C#,Ada
  • 8. Carlos Wagner 8Compiladores● Um compilador é um programa de sistemaque traduz um programa descrito em umalinguagem de programação de alto nível paraum programa equivalente em código demáquina para um determinado processador.
  • 9. Carlos Wagner 9Compiladores● Uma LP consiste essencialmente de umasequência de strings ou símbolos com regrasoara definir quais dessas sequenências sãoválidas na linguagem (sintaxe)● A interpretação do significado de umasequência válida de símbolos corresponde àsemântica da linguagem.● A sintaxe de uma LP é expressa na forma deuma gramática.
  • 10. Carlos Wagner 10Linguagens interpretadas● Nem todas as linguagens precisam sercompiladas. Algumas podem ser interpretadase outras ainda devem ser executadas emmáquinas virtuais.● As linguagens interpretadas precisam de umprograma (interpretador) que leem o códigofonte do programa e executam os comandoscontidos no arquivo.
  • 11. Carlos Wagner 11Linguagens interpretadas● Nem todas as linguagens precisam sercompiladas. Algumas podem ser interpretadase outras ainda devem ser executadas emmáquinas virtuais.● As linguagens interpretadas precisam de umprograma (interpretador) que leem o códigofonte do programa e executam os comandoscontidos no arquivo.
  • 12. Carlos Wagner 12Linguagens interpretadas● Exemplos de linguagens interpretadas: Basic,Logo, R, S, Python, Lisp, JavaScript, Lua, Ruby,VBScript, ActionScript...
  • 13. Carlos Wagner 13Linguagens que geram bytecode● Algumas Lps podem rodar em verdadeirasplataformas que incluem até máquinas virtuais.Estas tecnologias normalmente passam por umprocesso que gera um arquivo intermediáriochamado bytecode que é específico para a VMdaquela linguagem. Este bytecode então pode serinterpretado e executado para aquela VM emqualquer plataforma.– Ex.: Java, C#, .Net, Lua, Adobe Flash...
  • 14. Carlos Wagner 14Bytecode java
  • 15. Carlos Wagner 15Compiladores de compiladores● Ou gerador de compilador, gerador de analisadorsintático ou ainda gerador de parser – é umalgoritmo, um componente de software ou umprograma de computador que gera o código fonte deum analisador sintático, interpretador ou compiladorde uma linguagem de programação.● Na maioria dos casos ele é alimentado com adescrição sintática e semântica da linguagemindependente de arquitetura, junto com uma umadescrição do conjunto de instruções da arquiteturaindependente de linguagem de programação.
  • 16. Carlos Wagner 16Compiladores 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
  • 17. Carlos Wagner 17Técnico em Informática● Carlos Wagner– Fone: 8413-6949– cwagnersc@gmail.com– http://cwagnersc.blogspot.com– http://www.facebook.com/CWagnersc