| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2006 16:09:00
|
GustavoLaguna
JavaTeenager
![[Avatar]](/images/avatar/099fe6b0b444c23836c4a5d07346082b.jpg)
Membro desde: 06/04/2006 15:58:47
Mensagens: 162
Localização: Mirassol/SP
Offline
|
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:
Então, alguém sabe como posso resolver meu problema?
[]´s
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2006 16:17:06
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Em Java você pode usar uma classe em vez de uma "struct".
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2006 16:19:06
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
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.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2006 16:26:35
|
GustavoLaguna
JavaTeenager
![[Avatar]](/images/avatar/099fe6b0b444c23836c4a5d07346082b.jpg)
Membro desde: 06/04/2006 15:58:47
Mensagens: 162
Localização: Mirassol/SP
Offline
|
Valeu pela ajuda. Ainda voltarei muito ao fórum =)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2006 16:28:33
|
GustavoLaguna
JavaTeenager
![[Avatar]](/images/avatar/099fe6b0b444c23836c4a5d07346082b.jpg)
Membro desde: 06/04/2006 15:58:47
Mensagens: 162
Localização: Mirassol/SP
Offline
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2006 16:54:11
|
GustavoLaguna
JavaTeenager
![[Avatar]](/images/avatar/099fe6b0b444c23836c4a5d07346082b.jpg)
Membro desde: 06/04/2006 15:58:47
Mensagens: 162
Localização: Mirassol/SP
Offline
|
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?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2006 18:01:43
|
thadeurc
JavaChild
![[Avatar]](/images/avatar/6c530aae768250b8d9c3c908a13ee287.jpg)
Membro desde: 25/10/2004 08:14:14
Mensagens: 130
Localização: São Paulo
Offline
|
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
|
http://blog.caelum.com.br
|
|
|
 |
|
|