(우리의 가상) 누나 언어 v0.4
누나 언어는 하나의 스택을 갖습니다.
내부 변수를 제외한 모든 변수는 이 스택에 저장됩니다.
스택의 아이템은 스택 번호(index)
와 값(variable)
로 구성되며
이때 값은 부호있는 정수형(signed integer)
을 의미합니다.
누나 언어는 pointer
라는 내부 변수를 갖습니다.
이는 현재 가르키고 있는 스택 번호
를 의미합니다.
언어를 실행할때 pointer
값은 0
으로 초기화됩니다.
이는 아무 스택 번호
도 가르키지 않음을 의미합니다.
pointer
와 스택 번호
가 같은 아이템을 현재 값
이라고 합니다.
pointer - 1
과 스택 번호
가 같은 아이템을 이전 값
혹은 앞의 값
이라고 합니다.
스택에 1
을 값으로 하는 아이템을 추가하고
pointer
값에 1을 더합니다.
뒤에 .
이 있을경우 .
의 개수만큼을 값으로 합니다. 예제
현재 값에 1
을 곱합니다.
뒤에 .
이 있을경우 .
의 개수만큼을 곱합니다. 예제
현재 값에 1
을 뺍니다.
뒤에 .
이 있을경우 .
의 개수만큼을 뺍니다. 예제
현재 값에 1
을 더합니다.
뒤에 .
이 있을경우 .
의 개수만큼을 더합니다. 예제
POP
작업을 수행합니다.
이때 POP
작업이란 현재 값을 없는것(like undefined
or None
)으로 하고
포인터에서 1
을 빼는 것을 의미합니다.
이 작업은 스택의 길이를 1
만큼 줄입니다. 예제
이전 값을 의미합니다.
.
대신 사용할 수 있습니다. 예제
이전 값에서 현재 값을 뺍니다.
이전 값은 없는 것(like undefined
or None
)으로 합니다. 예제
현재 값에 1
을 제곱합니다.
뒤에 .
이 있을경우 .
의 개수만큼을 거듭제곱합니다.
흐
로 시작한 문장은 읏
으로 끝나야 합니다. 예제
아무런 행동을 하지 않습니다.
흐
로 시작한 문장을 끝낼때 사용합니다.
이전 값에서 현재 값을 더합니다.
이전 값은 없는 것(like undefined
or None
)으로 합니다. 예제
현재 값을 UTF-8 인코딩 출력합니다.
대부분의 구현체가 출력으로 stdout을 사용합니다.
눈
누
, 난
, 나
, 주
, 거
, .
, 헤
, 으
, 응
, 흐
, 읏
, 💕
, !
가 아닌 다른 문자들은 문법 오류입니다.
.
와 으
를 요구하지 않는 키워드에서 .
와 으
를 사용할 경우 .
과 으
는 무시됩니다. 예제
.
와 으
를 요구하는 키워드에서 .
와 으
가 사용되지 않은 경우 1
으로 간주합니다.
이전 값을 요구하는 키워드를 사용할때 이전 값이 없을 경우 0
으로 간주합니다. 예제
눈나..흐.....읏..나주..거....흐...읏...
누..나..나...흐....읏..나주..거....💕
눈나.....나..흐...읏나.....주거...💕
누나..흐..읏나.......주..거......응읏..!
눈나..으흐읏
누으나.....주..흐....읏나....응
누나.....나..주...읏나......응!
- @pmh-only님이 제작하셨습니다
- 출력 결과: 누나
2021년 3월 13일 기준 구현체 목록입니다.
- nunalang/web-nuna - [공식] 웹누나: 바닐라 JS Nuna 구현체
- hui1601/nuna-interpreter - [비공식] C++ Nuna 인터프리터
- pl-Steve28-lq/PyNuna - [비공식] Python Nuna 인터프리터
- franknoh/nuna-interpreter - [비공식] nodejs Nuna 인터프리터
tag | status | released at | contributors | main commit |
---|---|---|---|---|
v0.4 | stable |
2021.03.17 | @pmh-only, @Akiacode | a4c922d |
v0.3 | stable |
2021.03.07 | @hui1601, @pmh-only, @Akiacode, @franknoh, @pl-Steve28-lq | 0ee138b |
v0.2 | outdated |
2021.02.23 | @AkiaCode | 96f8362 |
v0.1 | unsupported |
- | - | - |