MOLA 로 Hello World 구현하기
초록
본 논문은 TTC 2011 인스트럭티브 케이스의 Hello World 변환 과제를 MOLA 변환 언어로 해결한 방법을 제시한다. 변환 로직은 과제 명세를 그대로 모델링한 규칙 집합으로 구성되며, 모델 입출력 단계에서 필요한 파일 포맷 변환과 매핑 절차도 상세히 설명한다. 구현은 간단하면서도 MOLA의 그래프 기반 규칙 정의와 반복 구조 활용을 통해 직관적으로 표현된다.
상세 분석
논문은 먼저 TTC 2011 인스트럭티브 케이스의 요구사항을 분석하고, 이를 MOLA 언어의 핵심 개념인 패턴 매칭, 루프, 조건 분기와 연결한다. Hello World 변환은 입력 모델에서 특정 클래스 인스턴스를 탐색하고, 해당 인스턴스의 속성을 복제하거나 새 객체를 생성해 출력 모델에 삽입하는 일련의 작업으로 정의된다. MOLA에서는 이러한 작업을 ‘패턴’과 ‘액션’이 결합된 규칙(rule)으로 표현한다. 논문은 규칙 1에서 입력 모델의 루트 객체를 찾는 매칭 패턴을 제시하고, 매칭 성공 시 ‘Create’ 액션을 통해 출력 모델에 HelloWorld 객체를 생성한다. 이어지는 규칙 2에서는 생성된 객체에 문자열 속성 “Hello World”를 할당하는데, 이는 MOLA의 ‘Set Attribute’ 구문을 사용한다.
특히 논문은 MOLA의 반복 구조인 ‘foreach loop’를 활용해 다중 객체가 존재할 경우에도 일관된 변환을 보장한다. 루프 내부에서 조건 검사를 수행해 특정 속성값이 존재할 때만 변환을 진행하도록 함으로써 불필요한 객체 생성과 데이터 오염을 방지한다. 또한, 변환 과정에서 발생할 수 있는 모델 간 참조 관계를 유지하기 위해 ‘association’ 연결을 명시적으로 설정한다. 이는 MOLA가 제공하는 ‘Create Association’ 명령을 통해 구현되며, 입력 모델의 연관 관계를 그대로 출력 모델에 복제한다.
입출력 단계에서는 MOLA가 자체적으로 지원하지 않는 XMI 포맷을 다루기 위해 외부 도구와의 연동을 설계한다. 논문은 모델을 EMF 기반 XMI 파일로 내보내고, 변환 전후에 파일 경로와 네임스페이스를 자동으로 조정하는 스크립트를 제공한다. 이러한 전처리·후처리 과정은 변환 파이프라인을 완전하게 만들며, 실제 TTC 평가 환경에서 요구되는 파일 형식과 일치한다.
마지막으로 논문은 MOLA의 시각적 규칙 정의가 변환 로직을 이해하고 디버깅하는 데 큰 장점을 제공한다는 점을 강조한다. 규칙 그래프는 흐름을 한눈에 파악할 수 있게 하며, 복잡한 변환도 단계별로 분해해 구현할 수 있게 한다. 전체적으로 논문은 Hello World 변환이라는 단순 과제를 통해 MOLA의 기본 문법, 반복 구조, 조건 분기, 연관 관계 처리, 그리고 외부 파일 연동까지 포괄적인 사용법을 보여준다.
댓글 및 학술 토론
Loading comments...
의견 남기기