Mar 02

This is part 14 in a series of articles on obscure programming languages.

What is Nimrod?

Nimrod is a general purpose, statically-typed, imperative programming language that supports procedural, object-oriented, functional and generic programming styles while remaining simple and efficient.  Nimrod runs on Windows, Linux, BSD and MacOS X.

Nimrod Design

The Nimrod compiler generates optimized C code and defers compilation to a wide range of external compilers.  Nimrod supports objects with inheritance, overloading, polymorphism and multiple dispatch.  Nimrod treats procedures as first-class entities, meaning it can also be used for functional programming.  Nimrod also supports metaprogramming by a combination of generics, templates, macros, conditional compilation with compile-time function execution, and user-defined operators.

Nimrod has high-level data types, including strings, arrays, sequences, sets, tuples, enumerations, etc.  Most objects created on the heap are managed with garbage collection.

Nimrod also supports a module mechanism to create independent libraries.  The Nimrod standard library has I/O and OS operations, string utilities, Unicode support, regular expressions, and various parsers such as command line options, XML, CSV, and SQL.

Nimrod History

Nimrod was created in 2004 by Andreas Rumpf.  It was originally coded in Object Pascal (FreePascal) and Python.  However, the first version that bootstrapped (was able to compile itself) was released in 2008.

“Hello World” in Nimrod

echo("Hello, World!")

References

Article published on March 2, 2010




3 Responses to “Nimrod: Obscure Programming Language of the Month”

  1. Twitted by DevTopics Says:

    […] This post was Twitted by DevTopics […]

  2. Nimrod: Obscure Programming Language of the Month | Drakz Free Online Service Says:

    […] more here: Nimrod: Obscure Programming Language of the Month Share and […]

  3. user2372 Says:

    Why it has to be a smart *beep* to use ‘proc’ for function, ‘echo’ for ‘print’ and ‘case…of…’ for ‘switch…case’? That’s just anti-humanity.

    That is different for different sake.

Leave a Reply