I've had an idea for a semantic model of computing that's theoretically sound but is also quite unusual. I'd like to quickly prototype a system to prove that it can work in practice. Most of my work is in programming languages, so I'm comfortable putting together a small language for the purposes of testing, but I wonder if this is the best approach, as it necessitates a certain amount of advance work on the linguistic side that's not directly related to the computational model.

So what is the best prototyping strategy for a very high-level theoretical framework such as this? Should I go with a new language, or an embedded DSL, or some other approach? I can provide a bit more background if necessary, but this doesn't need to turn into a discussion of the specifics of the model.

  • With the little information given, the answer is 42. – user281377 Feb 1 '11 at 8:12
  • Which functionality will you need in the prototype to prove that the idea has enough merit to be implemented fully. – blueberryfields Feb 1 '11 at 8:15
  • @ammoQ: I was uncertain of how to phrase my question. Could you suggest some more information I might add? – Jon Purdy Feb 1 '11 at 8:18
  • @blueberryfields: Basically, I need to prove that it's possible to implement with good performance on real hardware, and test its capabilities with respect to different classes of algorithms. – Jon Purdy Feb 1 '11 at 8:22
  • Well, should your idea become reality, there will be a new something. If the something is (or contains) hardware, you need a hardware simulation to prove its viability. It the something is software based, you will need to implement the core of it. – user281377 Feb 1 '11 at 9:31

Try with an embedded DSL first. Maybe you don't need a whole new language. If you do, working with the DSL will quickly hurt, allowing you to learn that you do in fact need a whole new language.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.