Static Type Inference for Ruby

Posted 2008. 3. 26. 04:29
저는 정적 타입 시스템 옹호자이기 때문에 루비, 파이썬 등의 스크립트 언어의 성공을 항상 못마땅하게 생각하던 사람입니다. 농담이고요. 동적인 스크립트 언어가 성공하면서 동적 타이핑이 많은 연구와 노력이 들어간 정적 타이핑보다 훨씬 좋은 것처럼 생각하는 사람들이 늘어나면서 안타까웠던 것은 사실입니다.

실제로는 루비나 파이썬 같은 동적 스크립트 언어도 정적 타이핑을 통해 여러 가지 이득을 볼 수 있습니다. UMD에서 나온 OOPSLA08에 제출한 Static Type Inference for Ruby도 그런 시도 중의 하나라고 볼 수 있습니다. 여기서 제시한 DRuby는 다음의 특징이 있습니다.


1. GLR(Generalized LR) 파서로 루비 문법에서 disambiguation을 위한 규칙을 분리해 내고 확장하기 쉽게 만들었다.

2. RIL(Ruby Intermediate Language)를 정의해 소스 코드를 쉽게 분석할 수 있도록 하였다.

3. 타입 어노테이션 언어와 타입 추론 시스템을 도입해 루비 프로그램의 타입을 정확히 알 수 있도록 하였다.


참고로 근래에는 정적 타이핑과 동적 타이핑을 적절히 결합하려는 시도가 많이 있습니다. soft typing, dynamic type, quasi-static typing, gradual typing 등으로 용어도 다양하네요.