|
Acadêmico(a): Geovanio Batista Andre |
Título: Protótipo de Gerador de Código Executável a Partir do Ambiente Furbol |
|
Introdução: |
José [JOS1987] define uma linguagem de programação como um conjunto de todos os textos que podem ser gerados a partir de uma gramática. A linguagem de programação difere da linguagem natural por ser simples e direta, pois é por intermédio desta que uma máquina pode ser instruída. Para que uma linguagem seja interpretada por um computador, é necessário que as instruções estejam em código de máquina, a qual é considerada como uma linguagem de baixo nível (dependente de máquina). Uma linguagem de alto nível (independente de máquina), necessita ser transformada para uma linguagem de baixo nível para ser interpretada. Para isso existem os geradores de código. Um gerador de código recebe como entrada a representação intermediária do programa fonte e produz como saída um programa alvo equivalente. Segundo [AHO1995], são impostas severas exigências a um gerador de código, como por exemplo, o código de saída precisa ser correto e de alta qualidade. Este projeto de Trabalho de Conclusão de Curso visa descrever uma proposta para especificação e implementação de um protótipo de gerador do código executável para computadores tipo IBM-PC no ambiente de programação FURBOL [SCH1999a]. Através deste protótipo será gerado um arquivo executável que poderá ser executado em outro microcomputador compatível sem o uso do referido ambiente. O tipo de código a ser gerado são os identificados pela extensão “.COM”. A descrição do formato do código executável para computadores tipo IBM-PC pode ser visto em [DUN1990]. A especificação para a criação do código executável será incorporada na definição formal da linguagem de programação do ambiente FURBOL. A concepção inicial da criação do ambiente FURBOL teve início em 1987, através da experiência relatada no artigo [SIL1987], apresentado no I Simpósio de Engenharia de Software. Em 1993, houve uma continuidade com o trabalho Editor Dirigido por Sintaxe, financiado pela Universidade Regional de Blumenau, através do Programa de Iniciação a Pesquisa (PIPe). O referido trabalho teve como orientador o professor José Roque Voltolini da Silva e como bolsista o acadêmico Douglas Nazareno Vargas [VAR1992]. Após, houve uma continuidade do trabalho pelo acadêmico Joilson Marcos da Silva, através de um Trabalho de Conclusão de Curso (TCC) apresentado no primeiro semestre do ano de 1993, com o título “Desenvolvimento de um Ambiente de Programação para a Linguagem Portugol” [SIL1993]. Em seguida, houve uma continuidade do referido trabalho pelo acadêmico Douglas Nazareno Vargas, também através de um TCC apresentado no segundo semestre do ano de 1993, com o título “Definição e Implementação no Ambiente Windows de uma Ferramenta para o Auxílio no Desenvolvimento de Programas” [VAR1993]. No segundo semestre do ano de 1996, através do TCC cujo título é “Definição de um Interpretador para a Linguagem “PORTUGOL” utilizando Gramática de Atributos” [BRU1996], houve uma nova redefinição do ambiente, utilizando Gramática de Atributos [KNU1968]. Após, houve uma extensão do referido trabalho através de um TCC apresentado no segundo semestre de 1997, com o título “Protótipo de um Ambiente para Programação em uma Linguagem Bloco Estruturada com Vocabulário na Língua Portuguesa” [RAD1997]. Este novo ambiente implementou novas construções, como chamadas de procedimentos e recursividade, entre outras. Ainda, melhorou a interface com o usuário, utilizando para a implementação do ambiente, a linguagem de programação Visual Basic [ORV1994]. Também, gerou o código objeto para a Máquina de Execução para Pascal (MEPA) proposta por [KOW1983]. Um interpretador para a MEPA também foi criado. A nível de depuração, foi dada a opção para visualização da execução passo a passo com acompanhamento do comando no programa fonte associado com as instruções em código de máquina. A visualização da pilha de execução também foi disponibilizada para ser mostrada. No primeiro semestre de 1999, o TCC com o título Implementação de Registros e Métodos de Passagem de Parâmetros no Ambiente FURBOL [SCH1999a], foi uma continuidade no trabalho de [RAD1997], estendendo-o com a implementação de novas construções, tais como produto cartesiano (registros) e métodos de passagem de parâmetros (cópia valor e referência). Ainda, alguns ajustes na definição formal foram realizadas. A BNF (Backus Normal Form) e gramática de atributos foram os métodos usados para a especificação formal da linguagem. O referido software foi implementado no ambiente DELPHI 3.0 [SCH1999b]. Também, a nível de depuração, além das opções existentes no ambiente desenvolvido por [RAD1997], foi disponibilizada a opção para visualização do vetor de registradores de base. A especificação da linguagem FURBOL apresentada em [SCH1999a] será utilizada, estendendo-a através da introdução dos comandos para geração do código executável. A implementação será feita no ambiente Delphi 3.0. Segundo [PER1998] entre os ambientes de programação visual que surgiram, nenhum veio tão completo e acabado quanto o Delphi, que oferece uma grande gama de objetos já prontos para facilitar a confecção da interface com o usuário. A escolha do assunto do trabalho foi motivada por ser uma continuação de um projeto iniciado em 1987 que vem sendo aprimorado através de trabalhos de conclusão de curso. O trabalho proposto tem como objetivo principal ampliar o ambiente de programação FURBOL, apresentado em [SCH1999a]. Esta ampliação consiste na geração de código executável para processadores Intel e seus compatíveis. |
|
|