|
精华帖 (11) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-04-19
呵呵,谢谢!
免费听了一次课。 我目前的部分研究方向是语言设计与编译器实现,如何与IDE紧密集成这一块还没有研究, 不过我去年看完了OpenJDK的javac源码,这个javac我猜是编译器团队跟NetBeans团队合作后的成果, 它里面抽象出很多有关AST的接口(都在com.sun.source.tree包中), 词法(lexer,由Parser驱动)、语法(Parser)、Enter/MemberEnter、语义(类型系统)、数据流分析这几个阶段得来的信息都挂到AST上面, 对AST可以进行很细粒度的控制(精确到每一个Token的起始行、列), 这样在editor中敲入一个字符就可以很快定位到AST中的具体节点, 这个javac的实现挺不错的,对IDE非常友好。 前三个星期我也看了Erlang的官方编译器源码,不过我只看了前面2/5的代码, 它的Parser是先由yecc(一个基于LALR(1)算法的生成器)生成的,而且这个Parser得到的不是一棵像javac的AST, 它有自己的形式,叫做“Abstract Format(AF)”,之后又在这个AF上不断变形(比如把Record有关的东西变成Tuple), 而且这个AF它只精确到某一行(编译错误信息非常不友好),还有一些include进来的文件对IDE来讲也是一个难题, Erlang这个官方编译器确实对IDE不友好的。 Scala我才累计学了3天左右,正在开始看它的官方编译器源码,我浏览了大部分文件,跟javac有很多相似的地方, 把Scala的官方编译器源码提炼一下我想还是能做到像javac一样的, 对于Scala语言来说可能最难的就是语义(类型系统)这一大块。 当然了, dcaoyuan大叔要自个单干, 哪怕做的工作跟官方编译器有很多重复的,还是很有意义的,这样不用受制于人, 说不定哪天积累多了,也能搞出个更优秀的新语言。 身在国外,光是英语就占了很大优势, 我这个月本想参加Sun举办的OpenJDK有关Closures for Java实现的挑战赛, 但是我英文实在太烂,字面交流都成问题,之后想想只好作罢。 dcaoyuan大叔!加油! 呵呵,国人中要有更多的实干家软件业才会起色得更快。 |
|
| 返回顶楼 | |
|
时间:2008-04-23
重新更新以后就装不起来啦,错误如下:
======================================================= Missing required modules for Plugin Common Scripting Language API: Common Scripting Language Support [module org.netbeans.modules.gsf/2 = 1] Missing required modules for Plugin Common Scripting Language Platform Support: Common Scripting Language Support [module org.netbeans.modules.gsf/2 = 1] Missing required modules for Plugin Common Scripting Language Support: Common Scripting Language Support [module org.netbeans.modules.gsf/2 = 1] Missing required modules for Plugin Embedded Ruby (RHTML): Common Scripting Language Support [module org.netbeans.modules.gsf/2 = 1] Missing required modules for Plugin Ruby Platform: Common Scripting Language Support [module org.netbeans.modules.gsf/2 = 1] ======================================================= 上面的插件找不到, 我的NetBeans版本如下: ======================================================= Product Version: NetBeans IDE 6.1 RC2 (Build 200804170002) Java: 1.6.0_04; Java HotSpot(TM) Client VM 10.0-b19 System: Linux version 2.6.17-12-generic running on i386; UTF-8; zh_CN (nb) ======================================================= |
|
| 返回顶楼 | |
|
时间:2008-04-23
另外,dcaoyuan大叔有空时能否简单说一下为NetBeans开发某一门语言的插件要从哪里
开始入门?先要了解NetBeans提供的哪些规范?哪些源码需要看的? 我在http://www.netbeans.org/上找了好久都没找到多少有用的信息, 如果你觉得哪些网址有帮助的,能否列几个出来看看,谢谢! 我找到你的英文Blog啦,呵呵,帮你在这打下广告: http://blogtrader.net/page/dcaoyuan/ |
|
| 返回顶楼 | |
|
时间:2008-04-23
因为NetBeans的几个基础模块在Trunk里有与6.1不兼容的的变化,所以现在Scala plugins只能安装在Nightly Build上了。现在Trunk里的代码目标是是7.0,在多语言支持方面会有较大的重构。
写语言插件的信息恐怕就是我的英文blog上比较多了。你可以跟一下我的Scala代码。 |
|
| 返回顶楼 | |





