3

我有我的大学生最后一年项目即将到来,并对词法分析器,解析器,编译器等非常感兴趣,并希望为我的本科生最后一年项目使用DLR(.NET 4.0动态语言运行库),但我正在努力找到一个使用它的理由!最后一年项目 - 在DLR上运行域特定语言的想法?

一个领域特定的语言将是一个想法,但我能想到的所有领域已经完成。

另一种方法是尝试移植现有语言(或至少部分时间允许),但是再次......我想不出合适的语言来移植。 (不APL或Perl - 我不是受虐狂。)

有没有人有一个想法,我可以在我的最后一年项目中使用DLR?一个特定的领域或其他想法?

这个问题对于那些希望试用DLR但希望以更实用的方式使用它,而不仅仅是在玩具项目中,也会有帮助。

谢谢!

+1

如果你不想设计自己的动态语言,你可以考虑实现一个简单的。像基本一样。只是Dim关键字,没有As子句。 –

回答

1

Javascript怎么样? (ECMAScript)这是一种相对较小的语言,因此根据您的技能水平以及您必须沉浸其中的时间长短,它可能是平易近人的。 IronJS确实存在,但你可以采取不同的方式。也许一个“好的部分”版本的Javascript?或者一位本地咖啡标记翻译可能会很有趣。

有许多有趣的小语言可以重新实现。 http://iolanguage.com/就是一个很好的例子。

当然,编写自己的lisp总是很好玩。

0

我知道的最简单的语言之一就是Forth。你可以使用DLR来实现这一点。

0

如何创建定义事件和活动的语言?在我的家庭自动化系统我有C#代码,如:

Kitchen.KitchenFloor.Or(Kitchen.MotionSensor, Kitchen.BackDoorToGarage, 
         Kitchen.BreakfastBarFloor, 
         Kitchen.Phone) 
       .Provided(Time.AlmostDark) 
       .Do("Activity near dark"", sender => { ... }); 

这是定义在C#实现的事件,条件和活动一口流利的语言。它有点像Reactive框架,但是它早于它,并且也可以保持其当前状态到数据库,然后被检索(因为一些间隔可能是几个小时,几天甚至几个月!)。

一个领域特定的语言,您可以定义传感器,然后将它们与事件流,条件和活动挂钩,这可能是一个有趣的项目。添加一个Netduino和一些LED和开关,使它更有趣。