开发者

What is the processes to parse an interpreted programming language?

I would like to know how is the best way 开发者_如何学JAVAto create the syntax tree.


The standard Stack Overflow resource for learning to write compilers and interpreters is Learning to write a compiler


Here is some explanation about abstract syntax trees (AST) from the LLVM project.

Teaser:

The AST for a program captures its behavior in such a way that it is easy for later stages of the compiler (e.g. code generation) to interpret. We basically want one object for each construct in the language, and the AST should closely model the language.


No different from any other language, really. The difference between interpreted and compiled languages is primarily in the backend, not the frontend. Specific languages may have specific parsing requirements, but you can't make a meaningful comparison in parsing technologies between the two classes of languages.


You don't list a language requirement for your parser, so if C or C++ is a possibility, you should start by looking at yacc: http://en.wikipedia.org/wiki/Yacc

Yacc generates a C parser for your specific syntax. Getting started with that might be a little extra work, but once you get the thing up and rolling, it should be easier to maintain.

Disclaimer: I have only used yacc in one project and it was 10+ years ago, so your milage may vary.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜