Carlos Wagner 1Técnico em Informática● Prof.: Carlos Wagner– Linux Básico– Programação 1– Introdução a Sistemas Distribuíd...
Carlos Wagner 2Linguages de Programação eCompiladores● Linguagens de programação são conjuntos depadrões e comandos usados...
Carlos Wagner 3Linguages de Programação eCompiladores● Linguagens de baixo nível estão mais relacionadascom a arquitetura ...
Carlos Wagner 4Paradigmas de programação● Fornecem e determinam a visão que oprogramador possui sobre a estruturação eexec...
Carlos Wagner 5Paradigmas de programação● Procedural ou programação imperativa:baseado no conceito de chamadas aprocedimen...
Carlos Wagner 6Paradigmas de programação● Estruturada: preconiza, recomenda que todosos programas possíveis podem ser redu...
Carlos Wagner 7Paradigmas de programação● Orientado a objetos: baseado na composiçãoe interação de diversas unidades de so...
Carlos Wagner 8Compiladores● Um compilador é um programa de sistemaque traduz um programa descrito em umalinguagem de prog...
Carlos Wagner 9Compiladores● Uma LP consiste essencialmente de umasequência de strings ou símbolos com regrasoara definir ...
Carlos Wagner 10Linguagens interpretadas● Nem todas as linguagens precisam sercompiladas. Algumas podem ser interpretadase...
Carlos Wagner 11Linguagens interpretadas● Nem todas as linguagens precisam sercompiladas. Algumas podem ser interpretadase...
Carlos Wagner 12Linguagens interpretadas● Exemplos de linguagens interpretadas: Basic,Logo, R, S, Python, Lisp, JavaScript...
Carlos Wagner 13Linguagens que geram bytecode● Algumas Lps podem rodar em verdadeirasplataformas que incluem até máquinas ...
Carlos Wagner 14Bytecode java
Carlos Wagner 15Compiladores de compiladores● Ou gerador de compilador, gerador de analisadorsintático ou ainda gerador de...
Carlos Wagner 16Compiladores de compiladores● ANTLR● Bison● Coco/R● DMS Software Reengineering Toolkit● ELI● Grako, a Pyth...
Carlos Wagner 17Técnico em Informática● Carlos Wagner– Fone: 8413-6949– cwagnersc@gmail.com– http://cwagnersc.blogspot.com...
Upcoming SlideShare
Loading in...5
×

Compiladores

395

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
395
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Compiladores

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 12. Carlos Wagner 12Linguagens interpretadas● Exemplos de linguagens interpretadas: Basic,Logo, R, S, Python, Lisp, JavaScript, Lua, Ruby,VBScript, ActionScript...
  13. 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. 14. Carlos Wagner 14Bytecode java
  15. 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. 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. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×