论坛首页 综合技术版

新的Scala for NetBeans提供测试

浏览 1749 次
精华帖 (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大叔!加油!
呵呵,国人中要有更多的实干家软件业才会起色得更快。
   
0 请登录后投票
时间: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)
=======================================================
   
0 请登录后投票
时间:2008-04-23
另外,dcaoyuan大叔有空时能否简单说一下为NetBeans开发某一门语言的插件要从哪里
开始入门?先要了解NetBeans提供的哪些规范?哪些源码需要看的?

我在http://www.netbeans.org/上找了好久都没找到多少有用的信息,
如果你觉得哪些网址有帮助的,能否列几个出来看看,谢谢!

我找到你的英文Blog啦,呵呵,帮你在这打下广告:
http://blogtrader.net/page/dcaoyuan/
   
0 请登录后投票
时间:2008-04-23
因为NetBeans的几个基础模块在Trunk里有与6.1不兼容的的变化,所以现在Scala plugins只能安装在Nightly Build上了。现在Trunk里的代码目标是是7.0,在多语言支持方面会有较大的重构。

写语言插件的信息恐怕就是我的英文blog上比较多了。你可以跟一下我的Scala代码。
   
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
JavaEye推荐
    快速回复 引用上一条消息 (Alt+S)