最后一年的项目——在DLR上运行一个领域特定语言的想法
本文关键字:语言 一个 DLR 项目 一年 最后 运行 | 更新日期: 2023-09-27 18:07:53
我有我的本科最后一年的项目即将到来,我对词法分析器,解析器,编译器等非常感兴趣,并希望使用DLR(。. NET 4.0动态语言运行时)为我的本科最后一年的项目,但我很难找到一个理由使用它!
一个特定领域的语言是一个想法,但是我能想到的所有领域都已经完成了。
另一种方法是尝试移植一种现有的语言(或者至少是它的一部分,如果时间允许的话),但是……我想不出一种适合移植的语言。(不是APL或Perl -我不是一个受虐狂)
有没有人知道我可以在我的最后一年的项目中使用DLR ?一个特定的领域或其他想法?
这个问题对那些想要尝试DLR但又想以更实际的方式使用它的人也很有帮助,而不仅仅是在一个玩具项目中。
谢谢!
Javascript怎么样?(ECMAScript)它是一门相对较小的语言,所以根据你的技能水平和你必须投入的时间,它可能是可以接近的。IronJS确实存在,但您可以采取不同的方式。也许是一个"只有好部分"的Javascript版本?或者一个本地的咖啡脚本解释器可能会很有趣。
有许多有趣的小语言可以重新实现。http://iolanguage.com/就是一个很好的例子。
当然,编写自己的lisp总是很有趣的。
我知道的最简单的语言之一是Forth。您可以使用DLR来实现这一点。
创建一种定义事件和活动的语言怎么样?在我的家庭自动化系统中,我有这样的c#代码:
Kitchen.KitchenFloor.Or(Kitchen.MotionSensor, Kitchen.BackDoorToGarage,
Kitchen.BreakfastBarFloor,
Kitchen.Phone)
.Provided(Time.AlmostDark)
.Do("Activity near dark"", sender => { ... });
这是一种用c#实现的定义事件、条件和活动的流畅语言。它有点像响应式框架,但比它更早,也可以在当前状态下持久化到数据库中,然后检索(这是必要的,因为有些间隔可能是几个小时、几天甚至几个月!)。
一个领域特定的语言,你可以定义传感器,然后将它们与事件流、条件和活动联系起来,这可能是一个有趣的项目。添加一个Netduino和一些led和开关,使其更有趣。