2006年8月29日星期二

一个新的.net下的Lisp解析器——Lsharp

(华南理工大学 qjchen)

请允许我用很业余的方式来介绍这个软件,因为我对什么.net,csharp之类是不懂的,所以我只能说有这样的一个新事物,至于有什么用可能是由懂行的来研究评判了。
好像是听过csharp要比c++容易学一些,可能对网络等有优势,也大概知道.net frame现在去到2.0了,应该是未来发展的一种趋势。
今天,在http://jtbworld.blogspot.com上面看到了这样的一条消息,
http://lsharp.sourceforge.net/的Rob Blackwell开发了一种用于.net的强大的Lisp-like脚本语言-Lsharp。

[quote]
L Sharp .NET is a powerful Lisp-like scripting language for .NET. It uses a Lisp dialect similar to Arc but tightly integrates with the .NET Framework which provides a rich set of libraries.
L Sharp is free software distributed under the terms of the GNU General Public License. You can download the latest release from Sourceforge. You may also want to read Rob Blackwell's Web Log.
This documentation is a work in progress and is subject to change.
[/quote]

大致的意思是它采用了一种类似ARC(一种Lisp变化的语言)的语言形式,但是它和.net密切相关,而.net本身具有丰富的库。它是一种开源的免费软件。

于是我在它主页下载了两个文件,一个是LSharp-1.2.1-bin.zip
http://jaist.dl.sourceforge.net/sourceforge/lsharp/LSharp-1.2.1-bin.zip),
一个是LSharp-1.2.1-src.zip
http://jaist.dl.sourceforge.net/sourceforge/lsharp/LSharp-1.2.1-src.zip)。
第一个是编译过的程序,第二个是源码,里面有一些介绍。
它现在只是一个解析器,那么当你解压之后,就会发现有Lsharp.exe和LSharp.Launcher.exe两个可执行文件,第二个先运行一下,再运行第一个程序,很让你失望的是它只跳出一个黑乎乎的dos面孔来,假如连这个都打开不了,作者说,你需要安装.NET framework 2.0 from Microsoft.了。

此时,你可以在"<"符之后打上 (+ 5 2),就像在autocad命令行一样,会出现一个7的结果,这个表明安装是成功的,程序会工作了。 假如只能做和autolisp最简单的活,就让人没有什么信心了。那么,你可以打开sample.html,你会发现有不少新事物,什么rss,whois,http,堆栈啊,等等表明它的.net身份。或者你可以先做一个试验,打开记事本,输入下面一段文字 (reference "Lsharp.Libraries") (= play-sound (fn (filename) (Play LSharp.Libraries.Sound filename))) (play-sound "c:\\windows\\media\\tada.wav") 然后存为比如c:\123.ls,然后在资源管理器中,点文件,选打开方式,找到那个Lsharp.exe,然后打钩以后总是用它打开,再双击它,就会放音乐了,还挺让人激动的。因为后面还有不少测试程序,所以更好的做法是打开dos界面(开始-程序-附件-命令提示符),然后去到相应目录,然后键入123.ls,就会运行了,界面也不会消失。 用贯了界面程序的我们有点无所适从,难道要在这个dos面孔下打一堆代码么,还是可以怎么样?其实,可以用任何一款文本编辑工具来输入这些代码,再存为.ls格式或者.lsp格式,建议存为前面一种。作者推荐了两款工具,一款就是大名鼎鼎的和vim齐名的emacs了(最近安装了它的win版本,觉得还是很不错的,居然还内置了一些游戏,包括俄罗斯方块,大概也是用lisp编的),另一款叫做xacc.ide,http://sourceforge.net/projects/xacc;是一款新的开源软件,界面应该说很漂亮,至少我没有见过那么漂亮的选择模式,当然程序试用之后发现其只开发了一年,不少功能还有待完善(也有可能是我不会用),不过确实挺有创意的,它不但是一种程序代码编辑器,同时也带有调试运行功能。程序的下载是:http://jaist.dl.sourceforge.net/sourceforge/xacc/xacc.ide-0.2.0.57-setup.exe

我总觉得,既然autolisp是lisp的一种子集,那么lisp本身应该有更吓人的本领,但好像一直没有找到太好的普及的整套工具,就像visual studio等等的大件头,也提供丰富的接口,让我们这班lisp的fans也快乐一把。作为一种年龄只比最老的FORTRAN伯伯小一岁的古老语言,不少人通过它获得了图灵奖的人工智能语言,只在少数人中得到应用,确实和它应有的地位不称。
废话了不少,对.net和sharp不懂的我只能凭感觉认为,说不定Lsharp也能作出让人惊讶的东西来吧,有待高手们去判别了。

【附图】


xacc的界面