모델 기반 언어 사양을 위한 혁신적 파서 생성기

모델 기반 언어 사양을 위한 혁신적 파서 생성기
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

본 논문은 데이터 모델을 직접 기술하고 이를 자동으로 형식 언어의 문법으로 변환하는 ModelCC라는 모델 기반 파서 생성기를 제안한다. 언어 사양과 파싱 로직을 분리함으로써 문법 수정 시 발생하는 반복 작업을 최소화하고, 동일 언어를 여러 도구가 공유하도록 지원한다.

상세 분석

ModelCC는 전통적인 BNF‑기반 문법 정의와 달리, 객체‑지향 데이터 모델에 어노테이션을 붙여 언어의 구문·의미를 선언한다. 이러한 어노테이션은 토큰, 연산자 우선순위, 반복·옵션 구조, 좌·우 재귀 등 다양한 구문 제약을 표현하며, 모델 자체가 추상 구문 트리(AST) 역할을 수행한다. 파서 생성 단계에서는 모델을 분석해 자동으로 어휘 분석기와 구문 분석기를 생성하고, 필요에 따라 LL, LR, GLR, PEG 등 여러 파싱 알고리즘 중 최적의 방식을 선택한다. 핵심 장점은(1) 문법과 구현 코드가 물리적으로 분리돼 유지보수가 용이하고, (2) 데이터 모델이 바로 프로그램 내 타입으로 매핑돼 의미론적 행동을 별도 코드 없이도 객체 메서드나 속성으로 구현할 수 있다. 또한, 모델이 파싱 기법에 종속되지 않으므로 새로운 파서 엔진을 도입하거나 기존 엔진을 교체할 때 모델만 그대로 재사용한다. 논문은 기존 lexer/parser 생성기(Lex/Yacc, ANTLR, GLR 등)의 한계를 짚으며, 특히 문법 중복·불일치, 어휘·구문 모호성 처리, 그리고 여러 도구 간 사양 동기화 문제를 강조한다. ModelCC는 이러한 문제를 모델‑기반 선언형 사양으로 해결하고, 자동 변환 파이프라인을 제공함으로써 언어 설계자가 문법 수정에만 집중하도록 만든다. 실험적 예제로 간단한 프로그래밍 언어를 모델링하고, 전통적인 BNF 정의와 비교했을 때 코드량 감소와 유지보수 비용 절감 효과를 확인한다.


댓글 및 학술 토론

Loading comments...

의견 남기기