Folders - 폴더의 포함 관계와 순서로 코드를 표현하는 프로그래밍 언어
요약
Folders는 텍스트 대신 폴더의 포함 관계와 순서만을 이용해 코드를 표현하는 비텍스트 언어입니다. 이는 Whitespace에서 영감을 받아 코드의 본질을 '비어 있음'으로 정의하며, 폴더 구조 자체가 프로그램의 논리적 흐름이 됩니다. 이 언어는 명령과 표현식을 하위 폴더 수와 순서로 구분하고, 데이터 저장은 별도의 FS를 통해 물리적 영역을 우회합니다.
핵심 포인트
- 코드의 본질을 '비어 있음'으로 정의한 비텍스트 언어입니다.
- 폴더 구조 자체가 코드이며, 포함 관계와 순서가 핵심입니다.
- 명령과 표현식은 하위 폴더 수로 종류를 결정하고, 데이터는 별도 FS에 저장합니다.
- JSON이나 등고선 지도 같은 다른 구조로 시각화할 수 있습니다.
Folders 는 텍스트 대신 폴더의 포함 관계와 순서만으로 코드를 표현하는 비텍스트 언어로, 폴더 이름은 알파벳순 정렬을 제외하면 코드 의미에 관여하지 않음
Whitespace 에서 영감을 받아 코드의 비물질화를 추구하며, 눈에 보이는 텍스트가 없는 파일보다 더 비어 있는 대상으로 빈 폴더를 선택함
명령과 표현식은 첫 번째 하위 폴더 안의 폴더 수 로 종류를 구분하고, 나머지 하위 폴더에 인수와 실행할 명령 등을 담음
Folders FS 는 폴더 이름에 데이터를 저장하며, Windows에서 폴더가 디스크 공간을 차지하지 않는다는 전제로 무한 저장 공간을 내세우지만 사용에는 자체 책임이 따름
프로그램은 순서 있는 트리 이자 중첩 리스트이므로 배열만으로 구성된 JSON으로 저장하거나 등고선 지도 같은 다른 구조로 시각화할 수 있음
폴더 구조 자체가 코드
Folders 의 코드는 포함 관계와 순서만 남긴 순수한 순서 트리임
폴더 이름의 역할은 알파벳순으로 순서를 정하는 데 한정됨
Whitespace 에서 출발한 질문은 “눈에 보이는 텍스트가 없는 파일보다 더 비어 있는 것은 무엇인가?”였으며, 빈 폴더를 코드의 재료로 삼음
Git은 빈 폴더 를 무시하므로, 프로그램의 가장 깊은 폴더에 .gitignore
파일을 두는 방식을 권장함
Windows와 Folders FS의 저장 방식
Folders는 처음에 Windows용 언어 로 시작했으며, Windows의 폴더는 디스크 공간을 전혀 차지하지 않는다는 전제를 바탕으로 함
이를 확인하는 방법으로 폴더 352,449개 를 만든 뒤 속성을 확인하는 실험을 안내함
폴더 이름에 모든 데이터를 인코딩하면 저장 공간 부족을 걱정하지 않아도 된다는 발상을 내세움
Folders 인터프리터 는 임시 파일을 만들지 않으며, 메모리에 직접 보관하지 않는 데이터는 임시 폴더 집합에 저장함
코드에서는 폴더 이름을 의미로 사용하지 않지만, 임시 데이터는 폴더 이름 자체 에 저장함
선호하는 입출력 형식 역시 별도의 폴더 집합임
코드에는 Folders , 데이터 저장에는 Folders FS 를 사용해 파일의 “물질적 영역”을 우회함
무한 디스크 공간이라는 발상에는 자체 책임으로 시도할 것 이라는 주의가 붙음
명령과 표현식 인코딩
각 명령 폴더 에는 적어도 하나의 하위 폴더가 있어야 함
알파벳순으로 첫 번째인 하위 폴더 안의 폴더 수가 명령 종류를 결정함
두 번째 하위 폴더에 인수를 넣으며, 일부 명령은 세 번째 하위 폴더도 사용함
표현식 도 첫 번째 하위 폴더 안의 폴더 수로 종류를 결정하며, 타입은 폴더 수로 직접 표현함
언어 명세 는 짧은 의미 규칙을 가진 단순한 명령형 언어 를 정의함
명령은 if
, while
, declare
, let
, print
, input
을 지원함
표현식은 변수 참조, 사칙연산, 리터럴, 동등 비교, 크기 비교를 지원함
타입은 float
, string
, char
를 지원함
선언과 대입 등에서 변수 이름은 폴더 수로 표현함
에뮬레이터와 구조 시각화
웹의 Folders 인터프리터 / FFS 에뮬레이터 버전 0.2 로 다른 운영체제에서도 데이터와 코드 처리 방식의 일부를 경험할 수 있음
프로그램 불러오기, 실행, 단계별 실행, 일시 정지, 초기화 기능과 호출 스택, 지역 변수, 상수 표시 영역을 갖춤
원본 구현과 참조 컴파일러 는 GitHub에서 확인할 수 있음
Folders 프로그램은 nil로 끝나는 중첩 리스트 이며, 가장 단순하게는 배열만으로 구성된 JSON으로 표현할 수 있음
피보나치 프로그램이 이 형식의 예시이며, JavaScript 에뮬레이터도 같은 방식으로 프로그램을 저장하고 읽음
구조가 곧 내용 이므로 다른 종류의 데이터 구조로도 시각화할 수 있음
Truth Machine 의 등고선 지도 예시에서는 굵은 선이 컨테이너를 나타내고, 왼쪽 위인 북서쪽 모서리에서 시작해 반시계 방향으로 폴더 순서를 읽음
빨간 점은 컨테이너에서 단일 자식으로 넘어가는 경계를 나타냄
각 노드의 부모가 하나뿐인 가계도, 밀 줄기가 갈라지는 듯한 식물의 분기 구조, 미로의 경로도 가능한 시각화 방식임
댓글과 토론
AI 자동 생성 콘텐츠
본 콘텐츠는 RSS: GeekNews (한국어)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기