Quais são os processos para analisar uma linguagem de programação interpretada?
-
20-09-2019 - |
Pergunta
Eu gostaria de saber como é a melhor maneira de criar a árvore de sintaxe.
Solução 2
O recurso padrão de estilância de pilha para aprender a escrever compiladores e intérpretes é Aprendendo a escrever um compilador
Outras dicas
Aqui está alguma explicação sobre Resumo Sintaxe Árvores (AST) do projeto LLVM.
Teaser:
O AST para um programa captura seu comportamento de tal maneira que é fácil para os estágios posteriores do compilador (por exemplo, geração de código) interpretar. Basicamente, queremos um objeto para cada construto no idioma, e o AST deve modelar de perto o idioma.
Não é diferente de qualquer outro idioma, na verdade. A diferença entre idiomas interpretados e compilados está principalmente no back -end, não no front -end. Idiomas específicos podem ter requisitos específicos de análise, mas você não pode fazer uma comparação significativa nas tecnologias de análise entre as duas classes de idiomas.
Você não liste um requisito de idioma para o seu analisador; portanto, se C ou C ++ for uma possibilidade, você deve começar olhando para YACC: http://en.wikipedia.org/wiki/yacc
O YACC gera um analisador C para sua sintaxe específica. Começar com isso pode ser um pouco extra, mas depois que você levanta a coisa e o rolamento, deve ser mais fácil de manter.
Isenção de responsabilidade: eu só usei o YACC em um projeto e foi há mais de 10 anos, para que sua milhagem possa variar.