Posted by bpt on 12:20:00 10-02-2002
Design and implement an applicative programming language. Your language must have closures and continuations; these must be first-class, of course. Modules and macros are optional; you get extra points for implementing them and more extra points if they are first-class.
Continuations may be linear or non-linear. You'll only get a few extra points for non-linear continuations since they are generally a Bad Thing(tm). I recommend that you implement linear continuations only.
With macros, they may be either hygienic or unhygienic (doesn't matter). If you want to include something macro-like, such as Dave Moon's proposed "defsyntax" feature in Arc (cf. http://www.archub.org/arcsug.txt), then explain it and I'll decide whether the feature counts as macros or not. (C-preprocessor "macros" are not considered macros in this sense, however.)
If you have another major feature you want to include (say, a flexible type system, or a powerful object system), then propose it and I'll decide if you will receive extra points for it.
There are two other features that you will receive a lot of extra points for: a compiler (bytecode compilers count), and orthogonal persistence. Two other possibilities I can think of are a multi-user system, capability security, and distributed computing.
Possibly sources of ideas include Scheme, ML,
and T.
Happy hacking!
Posted by MooKeen on 05:37:00 10-05-2002
Keen, keen! I have yet to grok call/cc, but I think a good starting point for implementation would be Guy L. Steele's Call/cc Eval, which you can grab at http://www.paulgraham.com/lib/cint.lisp [edit: This is now at: http://html108.store.yahoo.com/lib/paulgraham/cint.lisp ].
By the way, bpt, where did you find that T manual?
Fnord,
D. Kuehn
[ This Message was edited by: MooKeen on 2002-12-07 12:32 ]
Posted by inhahe on 19:16:00 09-20-2003
Quote:
On 2002-10-02 12:20, bpt wrote:
Design and implement an applicative programming language. Your language must have closures and continuations; these must be first-class, of course. Modules and macros are optional; you get extra points for implementing them and more extra points if they are first-class.
Continuations may be linear or non-linear. You'll only get a few extra points for non-linear continuations since they are generally a Bad Thing(tm). I recommend that you implement linear continuations only.
With macros, they may be either hygienic or unhygienic (doesn't matter). If you want to include something macro-like, such as Dave Moon's proposed "defsyntax" feature in Arc (cf. http://www.archub.org/arcsug.txt), then explain it and I'll decide whether the feature counts as macros or not. (C-preprocessor "macros" are not considered macros in this sense, however.)
If you have another major feature you want to include (say, a flexible type system, or a powerful object system), then propose it and I'll decide if you will receive extra points for it.
There are two other features that you will receive a lot of extra points for: a compiler (bytecode compilers count), and orthogonal persistence. Two other possibilities I can think of are a multi-user system, capability security, and distributed computing.
Possibly sources of ideas include Scheme, ML,
and T.
Happy hacking!
I would love to know what all of those terms mean.
[ This Message was edited by: inhahe on 2003-09-20 19:17 ]