论坛首页 Java企业应用论坛

(更新src)构建编译器,设计自己的脚本语言

浏览 12006 次
精华帖 (2) :: 良好帖 (12) :: 新手帖 (2) :: 隐藏帖 (3)
作者 正文
   发表时间:2009-06-10  
Antlr主要是做什么的?
0 请登录后投票
   发表时间:2009-06-10  
RednaxelaFX 写道
==,楼主不是要做直接的运行程序,而是要做源码到源码的代码生成(这话用中文说怎么这么别扭……source-to-source code generation),这样的话ANTLR+StringTemplate虽然是Terence Parr很推荐的方式,但要这么用的话其实还有另外一种非常方便的工具:JetBrains的MPS。比起ANTLR,这个工具应更适合楼主的需求,它对编译原理之类的知识的要求更低,而且能更方便的做源码生成,外加可以很方便的生成出你的DSL对应的编辑器

MPS是免费的工具,官网上也有些视频教程,应该能很快上手……吧。

更新:刚到官网去试下新的版本,怪哉……我下载不到那安装包。jetbrains.com能连上,但是download.jetbrains.com连不上。有墙外的人能试试么?
现在下载不到MPS的安装包,不过楼主或许会有兴趣看看官网上的视频来感受一下它会不会比ANTLR更合适。我找找看以前下的版本还在不在……


多谢这位仁兄!MPS确实也是个好东西!
0 请登录后投票
   发表时间:2009-06-10  
TaoistWar 写道
Antlr主要是做什么的?

antlr主要是帮助你做词法分析和语法分析的
0 请登录后投票
   发表时间:2009-06-10  
楼主为这个任务设计新的脚本语言有点杀鸡用牛刀,一般新的脚本语言跟现有的脚本语言都需要有一些语言特性上不同或改进,否则就用现成的就可以的。基本上这个应用封装几个函数,再利用现有的脚本语言python,groovy。。肯定轻松完成了。。

不过楼主如果对设计脚本语言感兴趣,就不一样了,不过最好能加入一点新的理念在里面。。
0 请登录后投票
   发表时间:2009-06-10  
TaoistWar 写道
Antlr主要是做什么的?

ANTLR是一个解析器生成器,可以根据语法描述来生成词法分析器、语法分析器、抽象语法树分析器。它生成的语法分析器采用LL(*)算法。能够以Java、C#、C++、Python、ActionScript 3等许多语言为生成目标语言。
之前发过几帖关于ANTLR的,这里:http://rednaxelafx.iteye.com/blog/313143

Salin 写道
多谢这位仁兄!MPS确实也是个好东西!

我这诡异的网络……今天那又能下载到MPS了 =v=
0 请登录后投票
   发表时间:2009-06-10  
是个学习编译原理的好武器!!
0 请登录后投票
   发表时间:2009-06-10  
不蛮搂主说,现在很多大学的编译原理课配套的实践课就是用antlr等工具构建一个简单的解释器,或者干脆从头开始写……
0 请登录后投票
   发表时间:2009-06-11  
我果真登上你的号了。。。
0 请登录后投票
   发表时间:2009-06-11  
Read all the articles in Venkat's "Creating DSLs in Java" series:                                 





上次分析Json就用了antlr,生成的东西给人的感觉不是很好,可能是我有代码洁癖吧。
简单的词法还是自己分析好了,有一两次的经验就好 不会很难的。
0 请登录后投票
   发表时间:2009-06-13  
首页底下更新了SRC
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics