이벤트 처리를 위한 논리적 접근: 순차 선택 연산자와 게임 논리의 결합
초록
본 논문은 현대 인터랙티브 프로그래밍에서 약한 이론적 기반을 보완하고자, 계산 가능 논리의 순차 선택 연산자(‘schoo’)를 C 언어에 도입하여 이벤트 처리를 게임‑이론적 의미론으로 모델링한다. 선언부와 본문 모두에 ‘schoo’를 사용함으로써 사용자 입력에 따른 동적 전환을 자연스럽게 기술하고, 기계·사용자 이동을 교대로 수행하는 인터프리터 설계를 제시한다.
상세 분석
이 논문은 이벤트 핸들링을 형식 논리의 관점에서 재정의한다는 점에서 혁신적이다. 기존의 GUI나 임베디드 시스템에서 이벤트는 주로 콜백 함수나 상태 머신으로 구현되지만, 그 이론적 근거는 부족했다. 저자는 계산 가능 논리(Computability Logic, CL)의 순차 선택 연산자 ‘schoo’를 차용해, “사용자가 ESC를 입력하면 다음 선언으로 전환한다”는 동작을 논리식으로 표현한다. ‘schoo(D₁,…,Dₙ)’는 선언부에 삽입될 때는 초기 선언 D₁을 활성화하고, 사용자가 특정 이벤트(EV) 를 발생시키면 D₂ 로 전환한다. 이는 CL에서의 게임‑이론적 의미론, 즉 플레이어(사용자)와 머신(프로그램) 간의 교대 움직임으로 해석된다.
언어 설계 측면에서는 기존 C의 절차적 구문에 G‑, C‑, D‑형식의 세 가지 문법을 추가한다. G‑식은 실행 가능한 명령(출력, 할당, 조건, 순차 선택 등)을, C‑식은 상수 선언 및 절차 정의를, D‑식은 프로그램 전체를 구성한다. 특히 ‘schoo(G₁,…,Gₙ)’는 본문에서 순차적 선택을 구현해 if‑else와 동일한 효과를 제공한다.
시맨틱은 두 단계로 나뉜다. 첫 번째는 ‘stable’ 판단으로, 현재 프로그램-명령 쌍(D,G)이 안정적인지(즉, 더 이상 자동으로 진행될 수 없는지) 확인한다. 안정 상태에서는 사용자 입력을 기다리고, 불안정 상태에서는 머신이 할당·출력·선택 등을 수행한다. 이 과정은 ‘ex’, ‘exₘ’, ‘exᵤ’ 라는 메타 연산자로 정의되며, 백트래킹을 배제해 인터랙티브 환경에 적합하도록 설계되었다.
예시에서는 자동차 모델 선택을 ‘schoo(model==BMW320, model==BMW520, …)’ 로 선언하고, 사용자가 ESC를 눌러 모델을 전환하면 프로그램이 자동으로 해당 가격을 출력한다. 이는 전통적인 이벤트 루프와 비교해 코드가 간결하고, 논리적 안정성 검증이 가능하다는 장점을 보여준다.
결론에서는 동기식 이벤트만을 다루었으며, 향후 비동기 이벤트를 CL의 다른 연산자와 결합해 확장할 계획을 밝힌다. 전체적으로 이 논문은 이벤트 처리에 대한 형식적 기반을 제공함과 동시에, 프로그래머가 논리적 규칙만으로 인터랙션을 설계할 수 있는 새로운 패러다임을 제시한다.
댓글 및 학술 토론
Loading comments...
의견 남기기