最近做了一个小的编译原理作业,是一个C_minus语言的词法分析器,本来四月初就已经写好了一个版本,而且
支持一部分的语义逻辑验证,并且还可以处理所有常数,所有的关键字,所有的算术运算符,因为功能超出了老师的预期,
以至于被老师怀疑是抄袭网上的代码,当然老师不只怀疑我,也怀疑别人。最终凭借我的讲解,彻底让老师信服。但是由于
我考虑到一个方法的可读性原则,不想一个循环把所有逻辑都处理掉,所以写了多个处理方法,把一个大循环,分离成多个
子循环。 这样可读性上升了不止一个档次。但是老师还是坚持要我们能够一个几百行的循环把所有逻辑都覆盖了。所以俺只
有重新写了,但是由于前段时间比较忙,直到这会儿,才有空把这个作业完成。
不管是刚接触Java的,还是Java学的半生不熟但说自己很牛的,都知道Java有个特性就是跨平台。俺就拿这个程序做
了一把验证。这个程序是带UI的,UI用的是Swing。但是Swing不像我希望的那样表现的那么出色。在相同jdk版本的情况下,
兼容Linux良好,但是Mac里表现的就不尽如人意了。界面变形很厉害。于是把代码小改了一下,把Area改窄了。于是可以跨
平台了。但还是做不到零修改。我这还算是比较简单的程序,UI很简单,但是如果是个比较复杂的swing做的C/S软件,那估
计就不会这么幸运了。而且Java这块打安装包的工具也很少,顺手的并不多。我用的那个软件在Linux和mac在打包的过程中,
不绑定jre,这也让Java桌面应用跨平台蒙上了一层阴影。希望这方面有经验的朋友给推荐个比较好的打包工具。
目前Java的应用领域已经完全倾向webApp和mobileApp。如果桌面还想分的一杯羹的话,建议Oracle能出个强
大些jre打包软件(最好免费,不过不大现实)。或者出个兼容性好些的GUI框架,jre的版本之间的差别相信大家也深有体
会,而且一般打包后体积也大很多。 下面上几个截图:
Linux平台:

Mac平台:
XP下:
Mac平台词法分析软件下载连接(不含jre,mac下会自带jvm,但是往往版本较老,10.5.*一般是1.5的,这个安装包我已经测
试,可以完美运行在JVM1.6下,有兴趣的朋友可以装装试试):
点击下载
posted on 2010-05-04 14:10
施杨 阅读(544)
评论(0) 编辑 收藏