too many changes to list

This commit is contained in:
Andreas Rumpf 2008-08-23 11:16:44 +02:00
commit 07d5a8085b
200 changed files with 24344 additions and 17809 deletions

View file

@ -6,24 +6,24 @@ Home
will not succeed without a good name. I have recently invented a very good
name and now I am looking for a suitable language."
-- D. E. Knuth
**This page is about the Nimrod programming language, which combines Lisp's
power with Python's readability and C++'s performance.**
Welcome to the Nimrod programming language
------------------------------------------
**Nimrod** is a new statically typed, imperative
programming language, that supports procedural, functional, object oriented and
generic programming styles while remaining simple and efficient. A special
**Nimrod** is a new statically typed, imperative
programming language, that supports procedural, functional, object oriented and
generic programming styles while remaining simple and efficient. A special
feature that Nimrod inherited from Lisp is that Nimrod's abstract syntax tree
(*AST*) is part of the specification - this allows a powerful macro system which
(*AST*) is part of the specification - this allows a powerful macro system which
can be used to create domain specific languages.
*Nimrod* is a compiled, garbage-collected systems programming language
which has an excellent productivity/performance ratio. Nimrod's design
focuses on the 3E: efficiency, expressiveness, elegance (in the order of
priority).
*Nimrod* is a compiled, garbage-collected systems programming language
which has an excellent productivity/performance ratio. Nimrod's design
focuses on the 3E: efficiency, expressiveness, elegance (in the order of
priority).
Some more of Nimrod's highlights:
@ -34,24 +34,29 @@ Some more of Nimrod's highlights:
Porting to other platforms is easy.
* System programming features: Ability to manage your own memory and access the
hardware directly. You will never have to use C/C++ for that again!
* Closures and iterators.
* Exceptions.
* Zero-overhead iterators.
* Modern type system with local type inference, tuples, variants, etc.
* User-defineable operators; new operators often easier to read than overloaded
ones.
* User-defineable operators; new operators often easier to read than
overloaded ones.
* High level datatypes: strings, sets, sequences, etc.
* Compile time evaluation without resorting to meta-programming facilities.
* *Forward* compability: If later versions of the language introduce new
* Forward compability: If later versions of the language introduce new
keywords old code won't break!
* Bindings to GTK2, the Windows API, the POSIX API. New bindings are
easily generated in a semi-atomatic way.
* A plugable parser system: If you don't like Nimrod's syntax, you can plug in
a parser and a source renderer for your own syntax!
* Bindings to GTK2, the Windows API, the POSIX API. New bindings are easily
generated in a semi-atomatic way.
* A plugable parser system: If you don't like Nimrod's syntax, you can plug
in a parser and a source renderer for your own syntax!
* A documentation generator with an internal reStructuredText parser: This
can also be used to write documentation that is not embedded into the
source code. This makes documentation writing a joy (well, almost).
* A Pascal to Nimrod conversion utility: This is particularly useful for
generating bindings to any library which has a Pascal binding
(these are many!).
..
..
The Zen of Nimrod
-----------------
* Faster computers are for solving bigger problems, not wasting cycles.
* Static is better than dynamic: More efficient, more understandable,
better verifyable.