Nimrod

Efficient, expressive, and elegant programming language
Download

Nimrod Ranking & Summary

Advertisement

  • Rating:
  • License:
  • GPL
  • Price:
  • FREE
  • Publisher Name:
  • Andreas Rumpf
  • Publisher web site:
  • http://force7.de/nimrod/
  • Operating Systems:
  • Mac OS X
  • File Size:
  • 5.9 MB

Nimrod Tags


Nimrod Description

Efficient, expressive, and elegant programming language Nimrod is a new statically typed, imperative programming language, that supports procedural, object oriented, functional 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 allows 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).The source-based installation should work on most UNIX-like systems. Currently, Nimrod has been tested on these systems: Mac OS X(i386), Linux (i386, AMD64), and FreeBSD (i386). Here are some key features of "Nimrod": Nimrod is efficient: · Native code generation (currently via compilation to C), not dependant on a virtual machine: Nimrod produces small executables without dependencies for easy redistribution. · A fast non-recursive incremental and generational garbage collector that should be well suited for soft real-time systems (like games). · System programming features: Ability to manage your own memory and access the hardware directly. Pointers to garbage collected memory are distinguished from pointers to manually managed memory. · Zero-overhead iterators. · Cross-module inlining. · Compile time evaluation of user-defined functions. · Whole program dead code elimination: Only used functions are included in the executable. · Value-based datatypes: For instance, objects and arrays can be allocated on the stack. Nimrod is expressive: · Built-in high level datatypes: strings, sets, sequences, etc. · Modern type system with local type inference, tuples, variants, generics, etc. · User-defineable operators; code with new operators is often easier to read than code which overloads built-in operators. In the code snippet, the =~ operator is defined in the regexprs module. · Macros can modify the abstract syntax tree at compile time. Nimrod is elegant: · Macros cannot change Nimrod's syntax because there is no need for it. Nimrod's syntax is flexible enough. · Yet Nimrod can be parsed with an LL(1) parser. · 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 is a simple language that leads to simple programs. However, the language is not crippled in the name of simplicity. Nimrod plays nice with others: · The Nimrod Compiler runs on Windows, Linux, BSD and Mac OS X. Porting to other platforms is easy. · There are bindings to GTK2, the Windows API, the POSIX API, OpenGL, SDL, Cario, Lua, X11, libzip, PRCE, ODBC, libcurl, mySQL and SQLite. New bindings are easily generated in a semi-atomatic way. · A Pascal to Nimrod conversion utility: A large subset of Object Pascal can be translated to Nimrod automatically! · Nimrod's documentation syntax is a subset of the wonderfully readable plaintext markup syntax reStructuredText. The documentation generator is very flexible; this website has been generated with it!


Nimrod Related Software