documentation updates
This commit is contained in:
parent
8b93e4132c
commit
5272213da4
7 changed files with 99 additions and 59 deletions
|
|
@ -2,13 +2,13 @@
|
|||
Home
|
||||
====
|
||||
|
||||
Welcome to Nimrod
|
||||
-----------------
|
||||
Welcome to Nim
|
||||
--------------
|
||||
|
||||
**Nimrod** is a statically typed, imperative programming language that tries to
|
||||
give the programmer ultimate power without compromises on runtime efficiency.
|
||||
This means it focuses on compile-time mechanisms in all their
|
||||
various forms.
|
||||
**Nim** (formerly known as "Nimrod") is a statically typed, imperative
|
||||
programming language that tries to give the programmer ultimate power without
|
||||
compromises on runtime efficiency. This means it focuses on compile-time
|
||||
mechanisms in all their various forms.
|
||||
|
||||
Beneath a nice infix/indentation based syntax with a
|
||||
powerful (AST based, hygienic) macro system lies a semantic model that supports
|
||||
|
|
@ -18,10 +18,10 @@ shared memory heap is also provided for the increased efficiency that results
|
|||
from that model.
|
||||
|
||||
|
||||
Nimrod looks like this:
|
||||
=======================
|
||||
Nim looks like this:
|
||||
====================
|
||||
|
||||
.. code-block:: nimrod
|
||||
.. code-block:: nim
|
||||
# compute average line length
|
||||
var count = 0
|
||||
var sum = 0
|
||||
|
|
@ -34,11 +34,11 @@ Nimrod looks like this:
|
|||
if count > 0: sum / count else: 0
|
||||
|
||||
|
||||
Nimrod is efficient
|
||||
===================
|
||||
Nim is efficient
|
||||
================
|
||||
|
||||
* Native code generation (currently via compilation to C), not dependent on a
|
||||
virtual machine: **Nimrod produces small executables without dependencies
|
||||
virtual machine: **Nim produces small executables without dependencies
|
||||
for easy redistribution.**
|
||||
* A fast **non-tracing** garbage collector that supports soft
|
||||
real-time systems (like games).
|
||||
|
|
@ -55,11 +55,11 @@ Nimrod is efficient
|
|||
the stack.
|
||||
|
||||
|
||||
Nimrod is expressive
|
||||
====================
|
||||
Nim is expressive
|
||||
=================
|
||||
|
||||
* **The Nimrod compiler and all of the standard library are implemented in
|
||||
Nimrod.**
|
||||
* **The Nim compiler and all of the standard library are implemented in
|
||||
Nim.**
|
||||
* Built-in high level datatypes: strings, sets, sequences, etc.
|
||||
* Modern type system with local type inference, tuples, variants,
|
||||
generics, etc.
|
||||
|
|
@ -69,31 +69,31 @@ Nimrod is expressive
|
|||
* Macros can modify the abstract syntax tree at compile time.
|
||||
|
||||
|
||||
Nimrod is elegant
|
||||
=================
|
||||
Nim is elegant
|
||||
==============
|
||||
|
||||
* Macros can use the imperative paradigm to construct parse trees. Nimrod
|
||||
* Macros can use the imperative paradigm to construct parse trees. Nim
|
||||
does not require a different coding style for meta programming.
|
||||
* Macros cannot change Nimrod's syntax because there is no need for it.
|
||||
Nimrod's syntax is flexible enough.
|
||||
* Macros cannot change Nim's syntax because there is no need for it.
|
||||
Nim's syntax is flexible enough.
|
||||
* Statements are grouped by indentation but can span multiple lines.
|
||||
Indentation must not contain tabulators so the compiler always sees
|
||||
the code the same way as you do.
|
||||
|
||||
|
||||
Nimrod plays nice with others
|
||||
=============================
|
||||
Nim plays nice with others
|
||||
==========================
|
||||
|
||||
* The Nimrod Compiler runs on Windows, Linux, BSD and Mac OS X.
|
||||
* The Nim Compiler runs on Windows, Linux, BSD and Mac OS X.
|
||||
Porting to other platforms is easy.
|
||||
* **The Nimrod Compiler can also generate C++ or Objective C for easier
|
||||
* **The Nim Compiler can also generate C++ or Objective C for easier
|
||||
interfacing.**
|
||||
* There are lots of bindings: for example, bindings to GTK2, the Windows API,
|
||||
the POSIX API, OpenGL, SDL, Cairo, Python, Lua, TCL, X11, libzip, PCRE,
|
||||
libcurl, mySQL and SQLite are included in the standard distribution or
|
||||
can easily be obtained via the
|
||||
`Babel package manager <https://github.com/nimrod-code/babel>`_.
|
||||
* A C to Nimrod conversion utility: New bindings to C libraries are easily
|
||||
* A C to Nim conversion utility: New bindings to C libraries are easily
|
||||
generated by ``c2nim``.
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue