Original Post
Continuing from this rather unrelated thread, wherein I began talking about one of my personal projects - creating a (serious) language. I would just contribute my thoughts to Epoch, but I have very much my own vision [wink] (Actually, I have started work on it under the thin guise of doing a really nice version of the C++ Workshop Project 2, although my work on the actual project there has pretty much succumbed to 'analysis paralysis' :( Regardless, I have all of these interesting widgets - various smart pointers, primitive code generation stuff etc. - in a folder called 'n00bproj2'. This amuses me. [smile]) Notes: - Examples of the syntax I have in mind can be found in the other thread. - The name comes from a type unique to the language: the 'defn' type, which has four values - (d)efault, (e)rror, (f)alse and (n)ull. This was intended to unify all of the "common, built-in, finitely enumerable" types that you find in other langauges - or rather, all the literal values that don't belong to infinite (or at least large) sets. At the time I got the idea of doing a language at all (many years ago), this seemed like a really neat idea. I'm intending to keep it, but de-emphasize it quite a bit. The original idea was that 'defn' is a "bottom type"; it has every capability, implemented as follows: - default and false construct temporary instances of the default implementation of the requested capability, and delegate. - error throws an exception for every request. - null does nothing and simply returns a constructed-from-null instance of the return type for every request. Lots more to come (I hope).