C# 最后一年项目-在DLR上运行特定于领域的语言的想法?

C# 最后一年项目-在DLR上运行特定于领域的语言的想法?,c#,compiler-construction,project,computer-science,dynamic-language-runtime,C#,Compiler Construction,Project,Computer Science,Dynamic Language Runtime,我即将完成我的本科毕业设计,我对lexer、parser、compiler等非常感兴趣,我想在本科毕业设计中使用DLR(.NET 4.0 dynamic language runtime),但我很难找到使用它的理由 一种特定领域的语言可能是一个想法,但我能想到的所有领域都已经完成了 另一种方法是尝试移植一种现有的语言(或者至少是其中的一部分,如果时间允许的话),但是我想不出一种适合移植的语言。(不是APL或Perl——我不是受虐狂。) 有人知道我在最后一年的项目中可以使用DLR做什么吗?特定领域

我即将完成我的本科毕业设计,我对lexer、parser、compiler等非常感兴趣,我想在本科毕业设计中使用DLR(.NET 4.0 dynamic language runtime),但我很难找到使用它的理由

一种特定领域的语言可能是一个想法,但我能想到的所有领域都已经完成了

另一种方法是尝试移植一种现有的语言(或者至少是其中的一部分,如果时间允许的话),但是我想不出一种适合移植的语言。(不是APL或Perl——我不是受虐狂。)

有人知道我在最后一年的项目中可以使用DLR做什么吗?特定领域或其他想法

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

谢谢

Javascript呢?(ECMAScript)这是一种相对较小的语言,因此根据您的技能水平和您必须投入的时间,它可能是可接近的。IronJS确实存在,但您可以对事物进行不同的旋转。也许是Javascript的“仅适用于部分”版本?或者一个本地的咖啡脚本解释器可能会很有趣

有许多有趣的小语言可以重新实现。这是一个很好的例子


当然,编写自己的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和开关,使其更加有趣