Computing Atlas

How Computing Was Built
Sign In
Text size
100%
Theme
Programming Language

Nim

Systems Language

Nim is a general-purpose, multi-paradigm, statically typed, compiled system programming language, designed and developed by a team led by Andreas Rumpf. It first appeared in 2008 and aims, in its own stated goal, to be efficient, expressive and elegant, supporting metaprogramming alongside functional, procedural and object-oriented styles. Nim typing discipline is static, strong, inferred and structural, and the language can compile to C, C++, JavaScript, Objective-C and LLVM, with compile-time code generation and foreign function interfaces to C, C++, Objective-C and JavaScript. It aims to combine, in its own description, the best parts of the Ada typing system, Python flexibility and a powerful Lisp-style macro system, making it suited to systems programming with expressive, high-level syntax. This description is adapted from Wikipedia contributors under CC BY-SA 4.0; changes were made. https://creativecommons.org/licenses/by-sa/4.0/

Facts
Classification
Typing Discipline
Statically Typed 1
Typing Discipline
Strongly Typed 1
License
MIT 1
First Released
2008 1
Significance
A most original design that straddles Pascal and Python and compiles to C code or JavaScript 2
Nim
Filter Results6 entries
FAQs

Which earlier languages did Nim draw its ideas from?

Nim combines ideas from mature languages like Python, Ada and Modula.

Nim's own website describes it as a statically typed compiled systems programming language that combines successful concepts from mature languages like Python, Ada and Modula. That mix explains why Nim pairs a readable high-level syntax with the type discipline and low-level reach expected of a systems language.
Connections

Follows Typing Discipline

In Field

Source Nim (programming language)

Influenced By

Ada, Programming Languages

Same Nim "Influence" section: Ada contributed subrange types, distinct type, safe variants. en.wikipedia.org/wiki/Nim_(programming_language)

Source Wikidata: Nim
Source Wikidata: Nim
Oberon, Programming Languages

Nim "Influence" section: Oberon contributed the export marker. en.wikipedia.org/wiki/Nim_(programming_language)

Object Pascal, Programming Languages

Nim "Influence" section: Object Pascal contributed type safe bit sets and case statement syntax. en.wikipedia.org/wiki/Nim_(programming_language)

Python, Programming Languages

"Nim was conceived to combine the best parts of Ada typing system, Python flexibility, and powerful Lisp macro system" (Python contributed the off-side indentation rule). en.wikipedia.org/wiki/Nim_(programming_language)

Licensed Under

MIT License, Concepts
Sources
1. Wikidata: Nim
  • Wikidata Q20080327, class allow-list match (w-wdresolver-0926)
  • Wikidata Q20080327 P571 (inception)
  • Wikidata Q20080327 P275 (license)
  • Wikidata Q20080327 P7078 (typing discipline)
  • Wikidata Q20080327, resolved via en.wikipedia pageprops (wave rule R-L)
  • Influenced By: Modula-3
  • Influenced By: C++
View the Source
2. Nim (programming language)
  • Infobox: released
    2008
  • Reception
    a most original design that straddles Pascal and Python and compiles to C code or JavaScript.
  • In Field: Programming Language Theory, Lead paragraph
  • In Group: Modern Systems Programming Languages, Lead
    Nim is a general-purpose, multi-paradigm, statically typed, compiled, high-level system programming language.
View the Source
Comments (0)
No comments yet. Be the first to share a thought.
Reader Challenges (0)
No disputes yet. Spotted an error or a better source? Open the first one.