Projeto Compilador

6 respostas
GustavoLaguna

Bom, primeiro gostaria de dizer que não estou pedindo um trabalho pronto, gostaria apenas de uma ajuda nele.

Ai vai: Estou fazendo um projeto de um compilador muito simples para a faculdade, e na maioria dos casos o pessoal faz em Linguagem C por ser o caminho mais fácil ja que é essa a linguagem ensinada atualmente. Eu e alguns amigos resolvemos fazer em linguagens diferentes, no meu caso, escolhi Java por ser a linguagem que estou estudando (básico) atualmente.

Eis que veio minha maior duvida: Preciso fazer uma tabela de simbolos, ou seja, preciso armazer meus tokens e lexemas lá. Em C a gente faria um registro e estava tudo resolvido, agora em Java não tem esse tipo de estrutura, pelo menos não encontrei. Então o que fazer?

Para ilustrar melhor o que quero fazer, vou colocar um código em C:

Struct tabela
{
     char Lexema[50];
     char Token;
};
typedef struct tabela

Então, alguém sabe como posso resolver meu problema?

[]´s

6 Respostas

T

Em Java você pode usar uma classe em vez de uma “struct”.

class Tabela {
    String lexema;
    char token;
}
Tabela nodo = new Tabela(); // cria um objeto da classe Tabela
T

Mas acho que essa estruturação é meio “noob”.
Normalmente tabelas de símbolos poderiam ser representadas com estruturas de dados do próprio Java, como java.util.HashMap e java.util.TreeMap.
Se você estudou direitinho estruturas de dados, e sabe que vai ter de usar um monte em seu compilador (árvores sintáticas, semânticas e o escambau), então é hora de usar tudo que está prontinho, testado e otimizado no Java.

GustavoLaguna

Valeu pela ajuda. Ainda voltarei muito ao fórum =)

GustavoLaguna

Então, esse é o nosso 1º “contato” com o Compilador, estamos tendo essa matéria nesse semestre e de cara pediram para fazer esse projeto, claro que é um projeto bem simples, e infelizmente com prazos curtos para voce entregar. Então acho meio dificil implementar coisas que ainda não estudei direitinho como voce mesmo disse.

[]´s

GustavoLaguna

Thingol, dei uma lida rapida sobre HashMap e TreeMap e realmente pode ser interessante utiliza-los no projeto. Parecem ser uma mão na roda na hora de buscar as informações na tabela de simbolo, voce poderia me dar uma ideia de como usa-los para montar essa tabela?

thadeurc

para te ajudar na parte de reconhecimento dos tokens e coisas do tipo, vc pode usar o antLR go java guru… ele eh muito bom. eu usei na faculdade para fazer um compilador. Eh bem simples de usar.

[]´s

Criado 6 de abril de 2006
Ultima resposta 6 de abr. de 2006
Respostas 6
Participantes 3