루비 JIS 7 사양의 핵심 내용
-
적용 범위 및 적합성: 루비 언어의 구문 및 의미 규칙, 적합성 요건을 규정하며, 리소스 제한 및 Rails 등은 범위 외입니다. ‘엄밀 적합 프로그램’, ‘적합 처리계’, ‘적합 프로그램’으로 구분됩니다.
-
표기법 및 개념: 구문은 확장 BNF로, 의미는 자연어로 기술됩니다. 객체, 변수, 클래스 등 핵심 개념과 함께 ‘슈퍼클래스’와 ‘직접 슈퍼클래스’ 같은 용어의 엄밀한 사용을 강조합니다.
-
실행 환경: 루비의 동적 특성 규정을 위해 ‘실행 환경’이라는 가상 인터프리터 상태를 도입하여 의미 규칙을 기술합니다.
- 어휘 구조의 특수성:
- 줄바꿈 및 공백: 코드 간결성을 위한 세미콜론/괄호 생략 허용으로 인해, 줄바꿈과 공백은 구문 해석에 결정적인 영향을 미칩니다. 특정 연산자 주변 공백이나 메서드 호출 시 괄호 생략에 따른 공백 처리는 모호성 해결의 핵심입니다.
-
문법의 복잡성과 간결성: 루비 문법의 복잡성은 개발자가 간결하고 가독성 높은 코드를 작성할 수 있도록 지원합니다. 대부분의 경우, 개발자는 이러한 복잡한 규칙을 의식할 필요가 적습니다.
- 특이 클래스(Singleton Class): 사양에서 ‘처리계 정의’ 부분이 많아 구현체별 차이를 반영합니다. 특이 클래스의 상속 관계는 객체 및 클래스 메서드 계승을 지원하도록 정의되어, 루비의 동적 객체 조작을 가능하게 합니다.