views:

146

answers:

3

Im interested in doing a programming languages project using scheme. A couple that i have considered -

  1. A scheme extension interpreter in Scheme(metacircular) - The thing is that a lot of these already exist and its not too challenging.

  2. Implementing a Domain-specific language. This one is good, but I cant think of any domain which which would benefit from a DSL. Do you know any?

Some help with more ideas?

Thanks.

+2  A: 

If you don't want to do a metacircular evaluator, you may want to try writing an interpreter for another language in Sccheme. I wrote a ML intrpreter in scheme for a class project, and they are more challenging than Scheme implementations because they don't always share semantics.

Nathaniel Flath
true, making a interpreter for a language other than scheme would be substantially more challenging.
Pranav
+3  A: 

The issue with domain-specific languages is that, to make a useful one, you need to have good knowledge of that domain, and motivation to encapsulate that knowledge into handily reusable form.

For example, one of my hobbies is computing probabilities related to the game of contract bridge; a DSL lets me specify the constraints about one such computation in a handy form that's quite readable to people familiar with the game (it essentially reads like "if North has at least 5 spades and more spades than hearts, what's the probability distribution for spade length in the South hand" and the like). As I do a lot of such computations, the motivation is also there.

However, other people (not knowing what domains you have knowledge and interest in) are badly placed to offer you their recommendations -- and if they did, it might not be worth your while to acquire the knowledge, experience and motivation in that specific domain, needed to do a good DSL for it.

So, unless there are some domains you think of as being interesting and worthwhile, @Nathaniel's suggestion about doing some other general-purpose language instead might be a better idea!

Alex Martelli
+1  A: 

You might check out the Scheme SRFIs for a list of Scheme projects that other Schemers would like to see implemented. Maybe this will give you some ideas.

Norman Ramsey