Apostila de Compiladores e Linguagens Formais Disponibilizada Para Livre Acesso e Download Pelas Universidades UFPE e URICER
O material a seguir é tema de estudos de profissionais de TI que cursam nível
superior em formações como Sistemas de Informação e Ciência da Computação.
Nem sempre é uma disciplina avaliada como fácil pelos alunos (normalmente é o contrário), portanto vale a pena dar uma reforçada no assunto, fixar, se prevenir, e para estes fins disponibilizamos uma apostila de qualidade disponibilizada para livre acesso e download no site da UFPE .
Saiba um pouco mais sobre compiladores, sobre a apostila e acesse o conteúdo completo a seguir.
Sobre Compiladores
Linguagens Formais
A primeira coisa que normalmente se aprende sobre compiladores é que trata-se de um tema derivado da Teoria das Linguagens Formais. Portanto, para para facilitar seu primeiro contato com a disciplina, veja a seguir uma definição do conceito de Linguagens Formais.
"Entende-se por linguagem formal estudo de modelos matemáticos que possibilitam a especificação e o reconhecimento de linguagens (no sentido amplo da palavra), suas classificações, estruturas, propriedades, características e inter-relacionamentos ." ( Wikipedia , Maio de 2016)Se a descrição acima não ajudou, tente entender desta forma: o objetivo das linguagens formais é usar a matemática para estruturar linguagens e traduzi-las, decifrá-las.
Relação Entre Linguagens Formais e Compiladores
Segundo MENEZES (1997), os estudos sobre linguagens formais iniciaram-se na década de 50 com o objetivo de definir matematicamente as estruturas das linguagens naturais.
Pouco tempo depois, percebeu-se que esta teoria que estava surgindo (das Linguagens Formais) cairia muito bem no estudo da Ciência da Computação.
Ora, sabia-se que...
- os computadores interpretam linguagem de máquina ( machine code )
- os humanos poderiam então:
- desenvolver linguagens de programação e de comandos mais fáceis de serem compreendidas e usadas por pessoas
- Usar um processo de tradução para converter sua linguagem em linguagem de máquina (aqui entra a utilidade das linguagens formais)
A partir dai, as linguagens formais começaram a ser usadas para traduzir linguagens de programação em linguagem de máquina ( machine code ).
O programa que faz esta tradução é chamado por compilador!
Definição de Compilador
Agora você já conquistou uma primeira intimidade com esta disciplina, fica mais fácil interpretar a definição de um compilador, transcrita a seguir.
"Um compilador é um programa de computador (ou um grupo de programas) que, a partir de um código fonte escrito em uma linguagem compilada, cria um programa semanticamente equivalente, porém escrito em outra linguagem, código objeto ." ( Wikipedia , Maio de 2016)
Exemplos de Compiladores
- Muitas vezes, o compilador é um programa de console , exemplos:
- 4DOS / 4OS2 / 4NT - ( DOS , OS/2 , Windows NT )
- CL - ( OS/400 )
- bash - (Linux, Mac OS X)
- CLI / Amiga Shell - ( AmigaOS )
- cmd.exe - (OS/2, Windows NT )
- command.com - ( MS-DOS , Windows 95 - Windows XP )
- csh - (UNIX)
- DCL - ( VMS / OpenVMS )
- Podem também ser disponibilizados como bibliotecas usadas em conjunto com outros programas, como o GNU .
- IDE´s também executam processos de compilação de código, tais como:
Sobre a Apostila
Autor
A apostila em PDF que sugerimos a seguir está disponível para livre acesso e download no site da Universidade Federal de Pernambuco (UFPE) . É possível que o professor que a disponibilizou ensine também na URICER – Universidade Regional Integrada do Alto Uruguai e das Missões – Campus de Erechim , pois a apostila cita esta outra instituição logo na primeira página.O professor da disciplina não se identifica nesta apostila, mas buscaremos seu nome e citá-lo aqui assim que for conhecido.
Conteúdo
Confira alguns conceitos que você irá aprender / revisar ao estudar esta apostila:
Tipos de Linguagem
Especificação de uma linguagem
Tipos de Compilação
Sistemas de Interpretação Híbridos
Construção de Compiladores
Processadores de linguagens
Estrutura geral de um compilador
Analisador léxico (ou scanner)
Analisador sintático (ou parser)
Analisador semântico
Otimização de código
Geração de código
Simplificações de Gramáticas Livres de Contexto
Dentre outros ...
Apostila de Compiladores e Linguagens Formais ( download aqui )
Estude Outras Disciplinas de Sistemas de Informação e Ciência da Computação: