위키득계정 ↗
기술

Egglog

Egglog기술
주요 결합
등식 포화와 Datalog
구현 기반
Rust
실행 형태
입력 파일 REPL 라이브러리
추가 연계
Python 바인딩과 WebAssembly
Egglog는 등식 포화와 Datalog를 결합한 엔진이다. 언어 기반으로 규칙과 분석을 표현하며 Rust 라이브러리나 명령행 실행 형태로 사용할 수 있다.

규칙과 동등성 함께 표현

관계에 관한 추론과 동등한 표현을 관리하는 작업을 하나의 엔진에서 다루는 접근이다. Egg와 관련된 등식 포화 도구지만 사용 방식과 구성은 동일하지 않다. 규칙이 어떤 사실을 만들고 어떤 표현을 동등하게 취급하는지 명확히 해야 한다.

엔진을 사용하는 경로

명령행에서 입력 파일을 처리하거나 대화형 모드로 실행할 수 있다. Rust 프로젝트 안에서 라이브러리로 사용하는 경로와 Python 바인딩도 제공한다. 그래프 출력은 추론 결과의 구조를 살펴보는 데 활용할 수 있다.

병렬 실행과 확장 구분

스레드 수를 지정하는 병렬 실행 기능이 있지만 기본 명령행 실행은 단일 스레드다. 추가 플러그인을 제공하는 확장 프로젝트도 핵심 엔진과 구분된다. 성능이나 기능을 비교할 때는 엔진 버전과 플러그인, 스레드 구성을 함께 확인한다.

관련 문서

Egg 등식 포화 / Souper / Smt-Switch / Rosette 프로그래밍 언어