Reykjavík
This is a language of my own design, meant to fix what I think are problems in other programming languages. I try to obviate some style issues that are consistent hot spots and make it work intuitively for non-programmers.
Here’s a list of some of the major features:
- Aspect- and Object-oriented language
- Design by Contract™ (like Eiffel)
- Pure block syntax (like Ada)
- Operator overloading
- No pre-/post- increment/decrement “operators”
- Class and library versioning
- Labeled parameters (like Objective-C)
- No primitive types
- Shorthand syntax for enumerations (similar to C’s
enum
) - Generic classes (like C++’s templates)
For details on these and other features, please take a look at the spec.
- Reykjavík Language Specification
- The official language specification. It is currently far from complete, as I am trying to compile all of my notes into it. This is in DocBook XML (some browsers render this all nicely inline, like Mozilla and Netscape, others like IE refuse to render it, or just plain crash). There is also a pre-processed PDF version available. However, only the DocBook version is guaranteed to be correct. I don't know why, but the page size on the PDF is weird. If I print at 90% of full size, it seems to fit on a US letter page (and it's not A4 or legal or anything).
- Reykjavík Style Guide
- Not an actual guide yet. So far it's basically a diff from The Elements of Java Style.
- reykjavik.vim
- A VIM syntax file for the Reykjavík Programming Language
Other interesting language projects
- The D Programming Language
- Designed to be a replacement for C and C++, this is not meant to be a pure OO language, but rather to provide a low-level language that can be heavily optimized, like C, but taking into account the past few decades of language research without an attempt to be backwards compatible.
- Eidola
- A programming language that is designed to be representation-independent. Still very early in its design, there are a lot of new ideas in this, and if nothing else it serves as a great way to get the brain working.