Realidades Paralelas

Tuesday, February 01, 2005

Compiladores

Primeiro estava olhando a documentação do projeto Tree SSA do GCC, que consiste na geração de código na forma Static Single Assignment para o suporte a passes de otimização. O interessante é que a árvore SSA é processada sem efeitos colaterais; ou seja, é uma parte funcional do compilador GCC que está entrando em operação agora nas versões a partir da 3.4. Parece que o mainstream está aprendendo algo com a comunidade funcional.

E por falar em GCC, descobri que eles estão com um Wiki, incluindo informações sobre a estrutura do compilador e outras informações interessantes.

E sim, ainda estou com meu projeto de compilador. Terminei o parser, tarefa mais agradável do que eu esperava, já que o MLYacc é menos "imperativo" que o ML-Lex; agora estou fazendo parte da análise semântica, mais especificamente a verificação de tipos. Nada difícil, nem inferência de tipos tem, mas é meio trabalhoso. A análise semântica trabalha em cima da árvore sintática gerada pelo parser, e aí é só fazer um punhado de funções recursivas e tá tudo resolvido. Quando isso estiver terminado, vai ser a vez da geração de código intermediário. Daí pra frente, não sei se vou ter paciência para fazer geração de código nativo não; há muito o que fazer e o tempo é curto.

Em breve: semântica e formalismos para concorrência.

0 Comments:

Post a Comment

<< Home