【问题标题】:Final Year Project - Idea for a domain specific language to run on the DLR? [closed]Final Year Project - 在 DLR 上运行特定领域语言的想法? [关闭]
【发布时间】:2011-09-06 23:49:30
【问题描述】:

我的本​​科最后一年项目即将到来,我对词法分析器、解析器、编译器等非常感兴趣,并希望在我的本科最后一年项目中使用 DLR(.NET 4.0 动态语言运行时),但我正在苦苦挣扎找到使用它的理由!

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

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

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

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

谢谢!

【问题讨论】:

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

标签: c# compiler-construction project computer-science dynamic-language-runtime


【解决方案1】:

Javascript 怎么样? (ECMAScript)它是一种相对较小的语言,因此根据您的技能水平和您必须投入其中的时间量,它可能是平易近人的。 IronJS 确实存在,但您可以对事物采取不同的看法。也许是 Javascript 的“只有好的部分”版本?或者本地的咖啡脚本解释器可能会很有趣。

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

当然,编写自己的 lisp 总是很有趣。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      创建一种用于定义事件和活动的语言怎么样?在我的家庭自动化系统中,我有如下 C# 代码:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-05
        • 1970-01-01
        • 2010-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多