Converge 에는 매우 인상적인 메타 프로그래밍 기능이 있습니다.
간단한 수준에서 이것은 매크로와 비슷한 기능으로 보일 수 있지만 컴파일 타임에 임의의 코드를 실행할 수 있기 때문에 대부분의 기존 매크로 기능보다 강력합니다. 이를 사용하여 컴파일러와 상호 작용하고 ITree (일명 추상 구문 트리)처럼 안전하고 쉽게 코드를 생성 할 수 있습니다.
이는 참조 적으로 투명한 매크로 정의를 허용하는 Scheme의 위생 매크로 에서 한 단계 향상되었습니다 .
준 리터럴 과 같은 메커니즘을 사용하면 다른 언어로 구문 분석 트리를 구성하고 파괴 할 수 있지만 자체 수정 대신 DSL (Domain-Specific Language)과 상호 작용하는 데 더 자주 사용됩니다.
Newspeak의 반영을 통해 예외는 라이브러리 코드로 구현 될 수 있습니다.
7.6 예외 처리
Newspeak는 활성화 레코드 (3.6)에 대한 반사 액세스 (7.2)를 제공하므로 예외 처리는 순전히 라이브러리 문제입니다. 이 플랫폼은 스몰 토크에서와 마찬가지로 예외 발생, 포착 및 재개를 지원하는 표준 라이브러리를 제공합니다.
Perligata : Romana 는 완전히 새로운 구문을 언어에 스키닝하는 방법을 보여줍니다.
이 백서는 Linl :: Romana :: Perligata와 같은 Perl 모듈을 설명하며 Perl 프로그램을 라틴어로 작성할 수 있습니다.
의미 론적으로 의미가 크지 않은 PyPy는 의미론이 고도로 정적으로 분석 가능한 Python 하위 집합에 지정된 언어의 해석기 생성기이며 언어에 썽크 를 추가하는 것과 같이 Python에서 새로운 언어 구문을 실험하는 데 사용합니다 .
또한 관심을 가질만한 것은 Ometa 입니다.
이 논문은 컴퓨터 과학 실험에 중점을 둡니다. 특히, 실험을 지원하기 위해 특별히 설계된 새로운 프로그래밍 언어와 구성이 연구원과 프로그래머의 작업을 실질적으로 단순화 할 수 있음을 보여줄 것입니다.
나는 두 가지 매우 다른 종류의 실험을 다루는 작품을 소개합니다. 첫 번째 목표는 프로그래밍 언어 연구자들이 새로운 프로그래밍 언어와 기존 언어의 확장을 쉽게 프로토 타이핑 할 수 있도록하여 아이디어를 실험 할 수 있도록 돕는 것입니다. 다른 하나는 프로그램 자체가 다른 행동과 가능성을 실험 할 수있게함으로써 프로그래밍 패러다임으로서의 실험을 조사하는 것입니다. 다시 말해, 무엇에 대한 언어 지원을 제공하려는 시도입니까? 또는 가능한 세계 추론.
Alex Warth의 논문은 JavaScript + Ometa에서 Ometa를 사용하여 새로운 의미 체계 (세계를 통한 거래 의미 체계)를 정의하는 방법을 보여줍니다.