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和開關,使它更有趣。