NULL (프로그래밍 언어)

위키백과, 우리 모두의 백과사전.

NULL은 0차원의 난해한 프로그래밍 언어이다. 하나의 양의 정수를 소인수분해하여 명령을 만들어낸다.

런타임 환경[편집]

NULL 프로그램에서 사용할 수 있는 환경은 초기에 비어있는 3개의 큐와 임의의 2개의 양의 정수인 변수 'x'와 'y'로 구성된다. 'x'는 프로그램에 설정되고 'y'는 1로 설정된다.

그런 다음, 'x'를 'x'의 가장 작은 소인수로 나누고 'y'를 곱한 다음 소수 요소에 해당하는 명령어가 실행된다.

명령어[편집]

2 다음 (마지막일 경우 첫 번째) 큐 선택.
3 이전 (첫 번째일 경우 마지막) 큐 선택.
5 선택한 큐의 앞에 있는 바이트를 (큐가 비어있으면 NUL을) 출력한다. 이 때 NUL은 '\0' 이다(아스키 코드 0).
7 한 바이트를 입력받고 선택한 큐의 앞의 값을 덮어쓰며, 선택한 큐가 비어 있다면 입력받은 값을 큐에 추가한다. 현재 EOF를 입력받았을 때의 동작에 대해서는 정의되어 있지 않다.
11 선택한 큐의 앞에 있는 바이트를 (큐가 비어있다면 0을) y에 뺀다. 만약 y가 음수가 되면 y를 0으로 설정한다.
13 선택한 큐의 앞에 있는 바이트를 (큐가 비어있다면 0을) y에 더한다.
17 선택한 큐의 앞에 y를 256으로 나눈 값을 집어넣는다.
19 선택한 큐의 앞에 있는 바이트를 (선택한 큐가 비어있을 경우에는 0을) 꺼내서 다음 (마지막일 경우 첫 번째) 큐의 뒤에 추가한다.
23 선택한 큐의 앞에 있는 바이트를 (선택한 큐가 비어있을 경우에는 0을) 꺼내서 이전 (첫 번째일 경우 마지막) 큐의 뒤에 추가한다.
29 선택한 큐의 앞에 있는 바이트를 제거한다.
31 선택한 큐의 끝에 y를 256으로 나눈 값을 추가한다.
37 만약 선택한 큐가 비어있거나 선택한 큐의 앞의 바이트 값이 0이면 x를 가장 작은 소인수로 나누고 y에 곱한다.
41 두 변수(x, y)의 값을 서로 변경.
43 프로그램 종료

이 명령어는 항상 14번째 소수마다 반복된다. 예를 들어, 47은 2와 같은 역할을 한다.

예제[편집]

Hello, world![편집]

이 199자리 수는 Hello, world!를 출력한다.

50056520978563208516819797718881283032143646116073595166114838703987562227081772
27277884468665934749909633552472002670467760272184148189288786549011066838407636
978909259289001144030816758344442315793

Cat 프로그램[편집]

이 5자리 수는 cat 프로그램이다. 파일을 끝내는 동작은 정의되지 않았다.

42539

외부 링크[편집]