{{위키데이터 속성 추적}}
{{Infobox programming language
| name = 님<br />Nim
| logo =
| logo size = 120px
| logo caption = 
| screenshot = Nim-Example-Code.png
| screenshot caption = 
| paradigms = 멀티 패러다임: 컴파일, 병행, 절차적, 명령형, 함수형, 객체 지향, 메타
| designer = Andreas Rumpf<!-- Do not WP:LINK to late German classical archaeologist. -->
| developer = Nim Lang Team<ref>{{웹 인용|url = https://github.com/nim-lang/Nim/graphs/contributors |title = Contributors to nim-lang/Nim |access-date = 23 March 2022}}</ref>
| released = {{시작 날짜와 나이|2008}}
| latest release version = {{wikidata|property|reference|edit|P348}}
| latest release date = {{시작 날짜와 나이|{{wikidata|qualifier|P348|P577}}}}
| typing = 정적,<ref name="nimbyex">{{웹 인용|url=https://nim-by-example.github.io/ |title=Nim by example |website=[[GitHub]] |access-date=2014-07-20}}</ref> 스트롱,<ref name="nimrodbg">{{콘퍼런스 인용|url=https://ibob.github.io/slides/nimrodbg/#/ |language=bg |title=Метапрограмиране с Nimrod |last1=Караджов |first1=Захари |last2=Станимиров |first2=Борислав |year=2014 |conference=VarnaConf |conference-url=http://varnaconf.com/ |access-date=2014-07-27}}</ref> 추론, 구조적
| scope = [[변수 범위]]
| programming_language = 님 (자체 호스팅)
| dialects = 
| influenced by = 에이다, [[모듈라-3]], 리스프, C++, 오브젝트 파스칼, 파이썬, 오베론, 러스트
| platform = [[IA-32]], [[x86-64]], [[ARM 아키텍처|ARM]], [[Aarch64]], [[RISC-V]], [[PowerPC]] ...<ref>{{웹 인용|url = https://nim-lang.org/docs/packaging.html |title = Packaging Nim |access-date = 23 March 2022}}</ref>
| operating system = [[크로스 플랫폼]]<ref>{{웹 인용|url=https://nim-lang.org/install.html |title=Install Nim |access-date=2018-10-12}}</ref>
| license = [[MIT 라이선스|MIT]]<ref name="FAQ">{{웹 인용|url=https://nim-lang.org/faq.html |title=FAQ |website=nim-lang.org |access-date=2015-03-27}}</ref><ref name='license1'>{{웹 인용|url=https://github.com/nim-lang/Nim/blob/master/copying.txt |title=copying.txt |website=GitHub |access-date=2015-03-27}}</ref>
| website = {{URL|nim-lang.org}}
| forum = {{URL|forum.nim-lang.org}}
| file ext = .nim, .nims, .nimble
}}

'''님'''(Nim)은 [[범용 프로그래밍 언어|범용 목적]]의 [[프로그래밍 패러다임|다중 패러다임]]의 [[자료형 체계|정적 자료형]], [[컴파일 언어|컴파일]] [[시스템 프로그래밍 언어]]이다.<ref name="drdobbs">{{웹 인용|url=http://www.drdobbs.com/open-source/nimrod-a-new-systems-programming-languag/240165321 |title=Nimrod: A new systems programming language |last=Rumpf |first=Andreas |website=[[Dr. Dobb's Journal]] |date=2014-02-11 |access-date=2014-07-20}}</ref> Andreas Rumpf 등이 소속된 팀이 설계하고 개발했다. 님은 [[컴파일 타임]] 코드 생성, [[대수적 자료형]], C, C++, 오브젝티브-C, 자바스크립트 등과 연계되는 [[외부 함수 인터페이스]](FFI), 또 해당 언어들로의 컴파일 지원을 제공함으로써 [[메타프로그래밍]], [[함수형 프로그래밍|함수]], [[메시지 전달]], [[절차적 프로그래밍|절차]], [[객체 지향 프로그래밍]] 스타일을 지원하는 등 효율적이고 표현적이며 우아한 방식을 제공하도록 설계되었다.

== 문법 예시 ==
<syntaxhighlight lang="nim" line="1">
# Let's declare a function that takes any type of number and displays its double
# In Nim functions with side effect are called "proc"
proc timesTwo(i: SomeNumber) =
  echo i * 2


# Let's write another function that takes any ordinal type, and returns
# the double of the input in its original type, if it is a number;
# or returns the input itself otherwise.
# We use a generic Type(T), and precise that it can only be an Ordinal
func twice_if_is_number[T: SomeOrdinal](i: T): T =
  when T is SomeNumber: # A `when` is an `if` evaluated during compile time
    result = i * 2 # You can also write `return i * 2`
  else:
    # If the Ordinal is not a number it is converted to int,
    # multiplied by two, and reconverted to its based type
    result = (i.int * 2).T

echo twice_if_is_number(67) # Passes an int to the function
echo twice_if_is_number(67u8) # Passes an uint8
echo twice_if_is_number(true) # Passes a bool (Which is also an Ordinal)
</syntaxhighlight>

== 같이 보기 ==
* [[동적 디스패치]]
* [[D (프로그래밍 언어)]]
* [[Go (프로그래밍 언어)]]
* [[러스트 (프로그래밍 언어)]]

== 각주 ==
{{각주}}

== 외부 링크 ==
* {{공식 웹사이트}}
* {{GitHub|nim-lang/Nim}}
* [https://stackoverflow.com/questions/tagged/nim-lang Information about Nim] on [[Stack Overflow]]
* [http://ssalewski.de/nimprogramming.html Computer Programming with the Nim Programming Language]  A gentle Introduction by Stefan Salewski

{{프로그래밍 언어}}
{{자바스크립트}}

[[분류:2008년 소프트웨어]]
[[분류:병행 프로그래밍 언어]]
[[분류:크로스 플랫폼 소프트웨어]]
[[분류:함수형 프로그래밍 언어]]
[[분류:다중 패러다임 프로그래밍 언어]]
[[분류:절차적 프로그래밍 언어]]
[[분류:프로그래밍 언어]]
[[분류:MIT 라이선스 소프트웨어]]
[[분류:소스 대 소스 컴파일러]]
[[분류:정적 타입 프로그래밍 언어]]
[[분류:시스템 프로그래밍 언어]]