GN⁺: 트리 계산법
(treecalcul.us)Tree Calculus의 개요
- Tree Calculus는 계산의 본질을 포착하는 간단한 연산자와 의미론을 가진 투링 완전한 시스템임.
- 함수의 직렬화와 역직렬화가 가능하며, 다양한 형식으로 컴파일할 수 있음.
- 프로그램 분석, 타입 체크, 컴파일, 최적화 등을 프로그램 내에서 수행할 수 있는 능력을 가짐.
함수와 메타이론의 민주화
- 문자열 조작 함수의 예시를 통해 Tree Calculus의 기능을 설명함.
- 타입 체크는 함수 호출로 간단히 수행 가능하며, 최적화도 가능함.
- 최적화 전후의 평가 단계 수와 트리 노드 수를 비교하여 성능을 확인할 수 있음.
Intensionality의 장점
- 프로그램 분석을 위한 인용 없이도 프로그램을 반영할 수 있는 능력을 가짐.
- 정적 및 동적 체크를 동일한 함수 호출로 수행할 수 있음.
- 프로그램 자체에서 컴파일 및 배포가 가능하여 강력한 REPL 환경을 제공함.
Tree Calculus의 강력함
- Tree Calculus는 투링 완전하며, 프로그램과 그 인코딩 간의 구분이 없음.
- 데이터 인코딩과 알고리듬이 비대칭적으로 최적화되어 있음.
- 일반적인 리스트 조작 함수는 수백 개의 노드를 가진 이진 트리로 표현됨.
간결함
- Tree Calculus의 추상 구문은 단순하며, 값은 라벨이 없는 이진 트리로 표현됨.
- JSON, UTF8 등의 표준을 사용하지 않고도 다양한 개념을 신속하게 부트스트랩할 수 있음.
- 교육용으로 적합하며, 점진적으로 추상화를 도입하고 모델링할 수 있음.
이식성
- Tree Calculus의 구문과 의미론은 최소화되어 있으며, 플랫폼에 종속되지 않음.
- 모든 플랫폼이나 프로그래밍 언어에서 인터프리터를 쉽게 작성할 수 있음.
- Tree Calculus의 전체 기능을 어디서든 부트스트랩할 수 있어 이질적인 시스템에서 코드로서의 설정 언어로 적합함.
Hacker News 의견
-
Tree Calculus는 매우 흥미롭고 이 웹사이트 외에도 많은 함의가 있음. 그러나 웹사이트가 창작자이자 저자인 Prof. Barry Jay를 언급하지 않는 점이 아쉬움. 그의 책은 GitHub에서 확인 가능함
-
Tree Calculus는 매우 멋진 개념으로 보임. 하지만 더 쉽게 이해할 수 있는 설명이 필요함. 초보자를 위한 버전이 있는지 궁금함
-
홈페이지에서 "Democratizing Functions"와 "Democratizing Metatheory"라는 문구를 사용하고 있음. 이 단어의 사용이 적절한지 의문이 듦
-
Tree Calculus의 논리적 축소 규칙을 이해하기 위해 시각적으로 표현한 그림을 만들어 봄. 시각적 사고를 하는 사람들에게 유용할 수 있음
-
이 내용을 이해하는 척하며 투표하는 사람들이 있는지 궁금함
-
Tree Calculus가 Lisp나 Forth와 다른 점을 설명해 줄 수 있는지 궁금함. 비판이 아닌 이해를 위한 질문임
-
Python 코드 예시를 통해 Tree Calculus의 기본 개념을 설명함
-
Leaf
,Stem
,Fork
와 같은 기본 구조를 정의하고,apply
함수로 논리를 구현함 -
show
함수를 통해 결과를 출력함
-
-
Z 조합자를 SKI에서 Tree Calculus로 변환해 보려는 시도를 함. 람다 계산법 예제를 사용하여 트리를 출력함
-
Tree Calculus 규칙을 이진 트리의 패턴 매칭으로 시각화한 결과를 공유함
-
Johannes가 Tree Calculus를 실험하고, GitHub에 있는 자신의 책에서 암시적으로만 언급된 가능성을 명시적으로 보여주는 것이 매우 좋음. 이제 타입이 있는 Tree Calculus가 생겨 블로그를 시작함