These Days
有些日子没写博了,今天更新一下,说说最近在忙的事。
先说research。老板依旧很忙,但他也开始抽时间和俺一起思考我们的研究课题,开始一步步深入。每周两次的讨论比之前花了更多的时间。周三(老板忙,周一改到周三,周四的取消)的meeting,讨论了半个多小时,算是最多的一次,谈了一些具体的方法和要求。明天我得想想这些问题,周一还要继续讨论。我想说,有人push的话,效率还是会高一点的。此外,在OMNeT++平台实现我在RPE时做得系统也在进行之中,进度有点慢,但现在总算是写出一些代码了,实现了一些函数,继续努力。
课程方面,CIS 706依然有看不完的书,不过这周没有quiz,但有project。按要求在老师给定的static java语法的基础上扩展,构造extended static java,下周二午夜前交。从开始读description,到今晚把它完成,也花了四天时间,陆陆续续的,过程比较曲折。刚开始没有用老师提供的语法,而是直接根据extended static java的语法描述,在ANTLR上实现了该语法。实现之后,无法生成代码,有四个nonterminal mutually left-recursive。虽然只有四个,但要把问题从根本解决,估计得花上好几天时间,过程还非常复杂。为啥这么说?因为我就根据书上的一些个算法,打算从这最原始的grammar推导出ANTLR可以识别的grammar,推导了一个下午,写了n张纸,最后放弃。我想,老师不至于出这么BT的题吧。于是在周四的课上问了,老师说在他给的static java语法上扩展就行了,我才恍然大悟。然后,我就开始在Java运算符的优先级问题上纠结,从网上书上找到了运算符优先级表,在原有grammar上添加新的productions。整来整去,虽然能通过ANTLR生成代码,但在eclipse上用老师给的测试函数一直无法通过,总体是有十几个failure。那就是语法有问题,于是我反复查,一直在运算符优先级上徘徊。ANTLR生成代码时,有时候会报error,但再跑一次,error就没了,很诡异。那个error经常出现,说是ANTLR没法在两个alternatives里选择,并指出错误的位置,但我一直没弄明白。也许是第一次用ANTLR,不习惯,现在知道这样的error意味着啥了。后来和张志同学讨论一下java优先级的问题,我怕我把它理解错了。但按他使用的优先级修改之后,程序还是那十几个错误。接着又讨论一下,发现老师给的description有两处很有误导性,而我正是被误导了。而ANTLR报的错和其中一个有关。这两处修改之后,程序就通过了。然后我想看看,我原先理解的优先级到底有没有问题,于是把优先级调回了我原来写的,发现程序通过了。原来我纠结了三天的十几个错误都是这两个造成了,我还一直在优先级问题上死磕,杯具。程序总算写完了,送了一口气。
这周一个同学让我帮忙改改他的一篇论文的几个section,这几天忙着写程序,就没动手改。周日除了research,还得抽点时间改一下论文。
下周三中秋节。CSSA要举办活动庆祝一下,但不是在周三,是周五。主要弄一些小游戏让大家来玩,奖品有月饼,电话卡等。我负责一个游戏,“套圈”,国内街头常见的。因为是我在开会时提出这个游戏的,所以我负责,orz。今天去沃尔玛买东西时,顺便去了附近的一元店,dollar tree,想找找有没有游戏需要的圆圈。Dollar Tree里的东西都是一刀,清一色的made in China。转了半天,没找到。除了Dollar Tree,我去旁边的一家店转了转,都是卖装饰品的,各种玩意。本来不报希望的,问了下店员,居然有。找到了我要的size,买了15个(这个size的被我扫光了),平均一个接近一刀,够贵的。我之前还在想,如果买不到,就得自己去沃尔玛买铁线,自己扎圆圈了。剩下的就是写一些描述,拟定一下游戏规则,还得再买两箱矿泉水,排列在地上。去年中秋只吃到了四分之一块月饼,今年不知道能吃到多少。
原来还没中秋就开始想月饼了。。。。唉。。。