Final Year Project - Idea for a domain specific language to run on the DLR? [closed]
I have my undergraduate final year project coming up and am very interested in lexers, parsers, compilers and the like and would like to use the DLR (.NET 4.0 dynamic language runtime) for my undergraduate final year project, but am struggling to find a reason to use it!
A domain specific language would be an idea, but all the domains I can think of have already been done.
Another approach would be to attempt to port an existing language (or at least part of it, time permitting), but again...I can't think of a suitable language to port. (Not APL or Perl - I'm not a masochist.)
Does anyone have an idea as to what I could use the DLR for in my final year project? A particular domain or other idea?
This question would also be helpful to those who wish to try the DLR out but want to use it in a more practical way, rather than just in a toy project.
Thanks!
How about Javascript? (ECMAScript) It's a relatively small language so it may be approachable depending on your skill level and the amount of time you have to sink into it. IronJS does exist, but you could take a different spin on things. Perhaps a "good parts only" version of Javascript? Or a native coffeescript interpreter could be interesting.
There are many interesting small languages you could re-implement. http://iolanguage.com/ is a good example.
And of course, writing your own lisp is always good fun.
One of the simplest languages I know is Forth. You could use the DLR to implement this.
How about creating a language for defining events and activities? In my home automation system I have C# code like:
Kitchen.KitchenFloor.Or(Kitchen.MotionSensor, Kitchen.BackDoorToGarage,
Kitchen.BreakfastBarFloor,
Kitchen.Phone)
.Provided(Time.AlmostDark)
.Do("Activity near dark"", sender => { ... });
This is a fluent language for defining events, conditions and activities implemented in C#. It's a bit like the Reactive framework but predates it and can also be persisted in its current state to a database and then retrieved (necessary because some of the intervals can be hours, days or even months!).
A domain specific language where you can define sensors and then hook them up with event flows, conditions and activities might be an interesting project. Add a Netduino and some LEDs and switches to make it even more fun.
精彩评论