Executando verificação de segurança...
1

Oi Júlio, boa tarde.

Eu ministro uma disciplina de construção de compiladores e é uma das minhas áreas favoritas na Ciência da Computação. A linguagem AuroraLogo é interpretada. O parser (analisador sintático) foi escrito usando ANTLR e a gramática pode ser vista aqui: https://github.com/davidbuzatto/AuroraLogo/blob/main/gramatica/AuroraLogo.g4

Inclusive, a gramática é algo que eu preciso reescrever para as futuras versões, pois está complicada em demasia, poderia ser mais enxuta. O processo de execução das instruções e construções da linguagem é feito durante o percurso da árvore de análise sintática gerada pelo parser. Eu uso o padrão Visitor, mas pode-se implementar usando Observer. A cada nó visitado, há um método de alguma classe que resolve o que determinada instrução em AuroraLogo deve executar. Seria nesses passos que eu geraria outra linguagem caso fosse um compilador. A implementação dos visitors está aqui https://github.com/davidbuzatto/AuroraLogo/tree/main/src/br/com/davidbuzatto/auroralogo/parser/impl/visitors

Na disciplina que ministro a gente implementa um compilador de fato, que gera linguagem assembly para uma máquina virtual baseada em pilha. Aí forneço o montador que vai transformar o assembly nos opcodes da VM.

Carregando publicação patrocinada...
1

Isso é muito massa!
Gostaria (e ficaria muito feliz) de ver esses conteúdos por aqui no tab-news!
Compiladores foi uma disciplina que gostei muito - inclusive irei fazer uma reciclagem de estudos.
Vi que em seu canal tem umas aulas lá!

Um grande abraço, professor.


Meu site: www.juliomiguel.me

1

Tem as aulas dos anos da pandemia. Estão bem cansativas, foram feitas pra quebrar galho. Presencial é melhor kkk. Vou ver se animo pra escrever uns artigos aqui pro TabNews. Abraço!