Starting from a simple script language in a web browser, JavaScript is now one of the most extensively used programming languages and evolves fast. At the same time, JavaScript is also notorious for its dynamic and complex semantics. To understand the semantics of JavaScript rigorously, developers and researchers should refer to the language specification named ECMA-262. However, since ECMA-262 is written imperatively, even the proficient readers suffer from understanding it. To mitigate this problem, we present an automatic approach to derive an ECMA-262 double debugger that breaks down barriers between ECMA-262 and its readers. Our approach is two-fold: (1) to compile ECMA-262 to an executable program in IRES (2) to extend an interpreter of IRES to an ECMA-262 double debugger.
자바스크립트라는 프로그래밍 언어는 브라우저를 위해 제작된 작은 언어로부터 출발해 다양한 분야에서 널 리 사용되고 있으며 동시에 빠르게 발전하고 있다. 하지만 이에 더불어, 자바스크립트는 복잡하고 예측하기 힘든 언어적 의미를 가지고 있음으로도 유명하다. 개발자들 혹은 연구자들이 자바스크립트의 언어적 의미를 엄밀하게 이해하기 위해서는 ECMA-262 라는 표준 언어 명세를 참고하여야 한다. 그러나 ECMA-262 문서 는 언어의 의미를 하나의 프로그램을 기술하듯이 작성되어 있기 때문에 전문가조차 문서를 정확히 이해하며 읽기 힘들다. 이러한 문제를 해결하기 위해 우리는 ECMA-262 를 프로그램을 실행하듯이 읽을 수 있게 도와주는 도구를 자동으로 유도하는 방법을 제안한다. 우리의 방법은 ECMA-262 를 하나의 실행가능한 프로그램으로 표현하는 단계와 해당 프로그램의 해석기를 ECMA-262 의 상태 관찰 도구로 확장하는 것으로 구성된다.