|
|
| Linha 4: |
Linha 4: |
| <br> | | <br> |
|
| |
|
| = Conceito =
| | 1 Conceito |
| <br>
| | 2 Princípio de funcionamento |
| Compiladores nada mais é que um programa que recebe e converte uma linguagem de fácil escrita e leitura, feita por programadores em uma linguagem que possa ser conhecida e executada por máquina. Porém para ser passado por esse processo de reconhecimento de escrita na máquina o compilador tem 3 fases de processamento e analise chamadas: Análise Léxica, Análise Sintática e Análise Semântica.
| | 3 Análise Léxica |
| | | 4 Análise Sintática |
| = Princípio de funcionamento =
| | 5 Análise Semântica |
| <br>
| | 6 Exemplos de compiladores |
| | | 7 Referências bibliográficas |
| = Análise Léxica =
| |
| <br>
| |
| O analisador Léxico faz a varredura do programa fonte, analisando caractere por caractere e traduz em uma sequência de símbolos léxicos ou tokens (“símbolos”). É nessa fase que são reconhecidas as palavras reservadas, constantes, identificadores e outras palavras que pertencem a linguagem de programação. O analisador léxico executa também outras tarefas como por exemplo o tratamento de espaços, eliminação de comentários, contagem do número de linhas que o programa possui e etc. A parte léxica é a primeira parte da compilação, tendo nessa parte dois estados de análise.
| |
| A análise léxica ela e posta em dois estados. O Primeiro estado é o SCANNING onde ele remove os comentários os espaços desnecessários e etc. Já o segundo estado é a própria análise Léxica onde ela agrupa os caracteres em tokens (“símbolos”).
| |
| Tokens ou símbolos > São unidades logicas que representam um ou mais caracteres.
| |
| | |
| = Análise Sintática =
| |
| <br>
| |
| A análise sintática que é a segunda parte da compilação que é o processo de analisar uma sequência gramatical de entrada para determina sua estrutura gramatical segundo uma gramatica formal a parte de analise sintática pode ser também conhecida como “parsing” palavra em inglês.
| |
| Dada uma gramática livre do contexto G e uma sentença S, o objetivo do analisador sintático é verificar se a sentença S pertence à linguagem gerada por G.
| |
| O analisador sintático, recebe do analisador léxico a sequência de tokens (“símbolos”) que constitui a sentença S e produz como resultado uma árvore de derivação para S, se a sentença é válida, ou emite uma mensagem de erro, caso contrário.
| |
| | |
| = Análise Semântica =
| |
| <br>
| |
| A análise semântica é a terceira parte da compilação, essa é a parte onde se verifica os erros do código fonte. Essa parte tem como objetivo de trabalhar nesse nível de inter-relacionamento entre partes distintas do programa. As tarefas básicas desempenhada durante a análise semântica incluem a verificação de tipos, a verificação do fluxo de controle e a verificação da unicidade da declaração de variáveis. Dependendo da linguagem de programação, outros tipos de verificações podem ser necessários.
| |
| | |
| = Exemplos de compiladores =
| |
| <br>
| |
| Existem vários tipos de linguagem de programação hoje em dia e de acordo com o índice TIOBI (que significa uma lista ordenada de linguagem de programação que é classificada de acordo com o índice de freqüência de pesquisa na web usando o nome da linguagem como a palavra-chave) tendo uma lista dos mais populares.
| |
| | |
| 1. Java
| |
| | |
| 2. C
| |
| | |
| 3. C++
| |
| | |
| 4. Python
| |
| | |
| 5. C♯
| |
| | |
| 6. PHP
| |
| | |
| 7. Visual Basic .NET | |
| | |
| 8. JavaScript
| |
| | |
| 9. Perl
| |
| | |
| 10. Ruby
| |
| | |
| 11. Assembly
| |
| | |
| 12. Visual Basic
| |
| | |
| 13. Delphi / Object Pascal
| |
| | |
| 14. Swift
| |
| | |
| 15. Objective-C
| |
| | |
| 16. MATLAB
| |
| | |
| 17. Pascal
| |
| | |
| 18. R
| |
| | |
| 19. PL/SQL
| |
| | |
| 20. COBOL
| |
| | |
| Tendo como mais ultilizados atualmente C/C++ e Java porem para esses tipos de linguagem existem seus compiladores como por exemplo para:
| |
| ----
| |
| C/C++
| |
| ----
| |
| DEV -C++ -- Esse compilador é gratuito, esse compilador é um dos melhores para quem é iniciante tanto na linguagem quanto na programação porem facilita a vida do usuario contando com uma interface
| |
| | |
| GCC -- Gratuito, porem esse compilador é ultilizado pelo projeto GNU. É padrão ANSI C e nativo do sistema Linux, facilitando muito a vida de usuários Linux, pois não é preciso instalar compiladores de terceiros. Porem a sua desvantagem é para iniciantes pois ele não conta com uma interface gráfica.
| |
| | |
| C++ BUILDER – Esse é um dos melhores compiladores que tem, porem ele te dá uma vantagem de criar projetos extensos, porem a sua desvantagem é que esse é pago. Pois A Borland mantém no site da Code Gear duas versões: uma demo e outra paga.
| |
| Existem outros exemplos a mais de compiladores para esse tipo de linguagem.
| |
| | |
| ------------------------------------------------------
| |
| JAVA
| |
| ------------------------------------------------------
| |
| JBUILDER -- JBuilder é uma IDE (Ambiente Integral de Desenvolvimento) para desenvolvimento de aplicações mais gráficas, a partir de JFames. O JBuilder foi desenvolvido pela Borland (a mesma que produz o C++ Builder) utilizando tecnologias da comunidade do Eclipse Europa.
| |
| | |
| ECLIPSE -- Eclipse é uma IDE (Ambiente Integral de Desenvolvimento) de código aberto desenvolvido inicialmente pela IBM e posteriormente doada para a comunidade do sofware livre.
| |
| | |
| JDEVELOPER -- IDE desenvolvido pela Oracle. Cobre todo processo de produção do software em Java, desde o desenvolvimento do código até a implantação do software.
| |
| Dentre outros.
| |
| | |
| = Referências bibliográficas =
| |
| <br>
| |
| http://www.oocities.org/walterchagas/compiler.html
| |
| | |
| https://pt.wikipedia.org/wiki/An%C3%A1lise_l%C3%A9xica
| |
| | |
| www.cin.ufpe.br/~gaa/disciplinas/compiladores/Analise%20Lexica.ppt
| |
| | |
| https://pt.wikipedia.org/wiki/An%C3%A1lise_sint%C3%A1tica_(computa%C3%A7%C3%A3o)
| |
| | |
| http://www.cin.ufpe.br/~pftbm/apostila-LFeC-II.pdf
| |
| | |
| https://pt.wikibooks.org/wiki/Constru%C3%A7%C3%A3o_de_compiladores/An%C3%A1lise_sem%C3%A2ntica
| |
| | |
| https://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o#Lista_de_linguagens
| |
| | |
| http://www.tiexpert.net/programacao/algoritmo/lista-compiladores-c.php
| |
Esta pesquisa deve fornecer um conteúdo atualizado sobre o tema acima. Não esqueça de incluir as
referëncias (fontes) no último item, reforçando que não deve ser um Copy/Paste e sim uma síntese
das pesquisas que fizer.
1 Conceito
2 Princípio de funcionamento
3 Análise Léxica
4 Análise Sintática
5 Análise Semântica
6 Exemplos de compiladores
7 Referências bibliográficas