3 용어
(1) 이 문서에서 아래 낱말은 여기 적은 뜻으로만 쓴다. 다른 절에서 새로 정하는 용어는 그 절에서 굵게 적는다.
(2) 처리기(processor): 소스를 읽어 검사하고 돌리는 구현. 라이브러리와 그것을 부르는 명령 pnx 를 함께 이른다.
(3) 호스트(host): 처리기를 끼워 쓰는 C 프로그램. 메모리를 주고, 낱말을 등록하고, 스크립트의 낱말을 부른다.
(4) 상태(state): 처리기의 한 실행 단위. 호스트가 준 메모리 한 덩이 안에 모든 것이 있다. 두 상태는 아무것도 나누지 않는다.
(5) 소스(source): 한 번에 적재하는 Pinax 글. 파일 하나나 문자열 하나다. 소스 하나가 모듈 하나다(13절).
(6) 적재(load): 소스를 읽어 검사하고 상태에 더하는 일. 적재가 거절하면 상태는 적재 앞과 같다.
(7) 거절(refusal): 적재가 소스를 받지 않는 것. 처리기는 거절한 자리(줄과 칸)와 까닭을 알린다. 거절된 소스의 코드는 한 줄도 돌지 않는다.
(8) 낱말(word): 이름으로 부르는 동작. 핵 낱말, 표준 모듈의 낱말, 스크립트가 정의한 낱말, 호스트가 등록한 낱말이 있다. 부르는 쪽에서는 모두 같은 모양이다.
(9) 서명(signature): 낱말이 스택에서 받는 값과 주는 값의 타입, 그리고 실패할 수 있는지를 적은 것(9.2).
(10) 스택(stack): 낱말과 낱말 사이에 값을 넘기는 자리. 적재 때 그 깊이와 칸마다의 타입이 정해진다.
(11) 실패(failure): 서명에 or fail 이 있는 낱말이 일을 하지 못했다고 알리는 것. 부른 쪽이 바로 다음 자리에서 다뤄야 한다(11.2).
(12) 결함(fault): 실행을 그 자리에서 끝내는 일(넘침, 0 으로 나눔, 범위 밖 등). 스크립트 안에서는 잡지 못하고 호스트가 받는다(11.3).
(13) 구역(region): 실행 중에 새 문자열의 바이트가 놓이는 자리. 작업마다 하나가 있고 표시(mark)로 되감는다(12.2).
(14) 뷰(view): 바이트를 복사하지 않고 가리키는 문자열 값. 타입 str 이다(7.3).
(15) 작업(task): 한 상태 안에서 번갈아 도는 실행 흐름. 양보하는 자리에서만 바뀐다(14절).
(16) 모듈(module): 이름 붙은 낱말과 값의 묶음. 표준 모듈, 호스트 모듈, 스크립트로 쓴 모듈이 있다(13절).
(16a) 실행(run): 호스트가 낱말 하나를 돌리기 시작해서(pinax_run, 적재의 코드, pinax_eval 의 한 줄) 그 낱말이 끝나거나 결함으로 멈출 때까지. 예산으로 멈췄다가 이어 도는 것도 같은 실행이다(19.5).
(16b) 예산(budget): 실행 한 번이 한 번에 돌 수 있는 명령의 수. 다하면 실행이 멈춰 호스트에게 돌아가고, 호스트가 이어 돌린다. 0 이면 한계가 없다(19.2).
(17) 이 문서에서 “ 여야 한다”, “ 하지 못한다” 는 프로그램을 묶는다. 어긴 프로그램은 적합하지 않고, 처리기는 그것을 거절하거나(적재 때 알 수 있는 것) 결함으로 멈춘다(돌 때에야 알 수 있는 것). 어느 쪽인지는 각 규칙이 정한다. “ 할 수 있다” 는 허용이다.