개요

파일명으로 코드를 짜는 난해한 프로그래밍 언어인 Naming(가제)를 제작해보고자 한다.

조금 더 구체적으로 설명하면 파일명이 코드가 되고, 파일 내용은 주석이 된다. 그리고 폴더는 함수 또는 클래스가 된다. 그리고 os나 파일 탐색기 별로 정렬 기준이 달라질 수 있으므로 코드 라인이 파일명 맨 앞에 와야한다.

완전 튜링

그전에, 프로그래밍 언어라면 만족해야하는 완전 튜링이 뭔지 정리함.

다음 두 가지 기능을 가지고 있다면 (느슨하게) 튜링 완전하다.

  1. 조건 분기문이 있다. if (...) then goto (...). 또는 branch if zero 등. for, while 등의 루프문은 모두 조건 분기문으로 바꿔 쓸 수 있다.
  2. 임의 위치의 메모리 값을 바꿀 수 있다.

https://namu.wiki/w/튜링 머신#s-4.1

코드 라인

앞에서부터 점(.)이 나오기까지 숫자로 이루어져 있어야 하며, 숫자만이 올 수 있다. 이 숫자는 코드 라인의 역할을 한다. 1부터 시작하며, 중간에 누락된 코드 라인이 있으면 컴파일 에러를 발생시킨다.

코드 라인은 개요에서 말한 것처럼 파일 탐색기 별로 정렬 기준이 다르지만 그래도 이름의 사전순 오름차순 정렬은 있는 편이다. 그래서 앞에 무의미한 0을 붙여도 상관이 없다 (100과 9를 비교하면 100이 9보다 위에 위치하게 된다. 이를 100과 009로 바꾸면 9가 위로 올라올 수 있다). 컴파일 단계에서는 파일 탐색기의 정렬기준과 무관하게 무조건 수의 크기의 오름차순을 기준으로 진행하기 때문에 작성한 방법에 따라 파일 탐색기가 보여주는 순서와 컴파일러가 인식하는 순서가 달라질 수 있다. 이 부분에서 편의성을 제공하기 위해서 전체 코드 라인의 수를 파악하고 자릿수만큼 0을 붙이지 않으면 warning을 표시하는 기능을 추가하면 좋을 것 같다 (총 134자리라면 001, 034라고 코드 라인을 붙여야 보기 깔끔한데 1, 34라고 붙이면 여기에 warning을 띄우는 방식)

함수

폴더로 구현할 수 있다. 폴더 안에 다시 코드, 즉 파일을 작성하는 방식.

또한 폴더의 폴더를 만들 수 있으므로 클래스의 기능도 할 수 있다.

그렇게 따지면 프로그램 시작점인 root directory는 main class라고도 할 수 있겠다.