세미콜론 불필요
Roto라는 스크립팅 언어를 개발하며, 세미콜론 없이 문장 구분을 구현하는 다양한 프로그래밍 언어들의 방식을 비교 분석하였습니다.
Python, Ruby, R, Julia, Odin은 주로 줄바꿈을 문장 구분자로 사용하며, 표현식이 불완전할 경우 다음 줄로 이어지는 방식을 채택합니다. 반면, JavaScript와 Swift는 문장이 자연스럽게 끝날 때까지 계속 파싱하는 방식을 사용하며, Go는 렉서 단계에서 세미콜론을 자동 삽입하는 독특한 방식을 갖고 있습니다. Lua와 Gleam은 공백을 무시하고 파싱하는 특징이 있습니다.
각 언어는 문장 구분과 세미콜론 생략에 대해 서로 다른 설계 철학과 문법 규칙을 가지고 있어, 단순한 규칙보다는 언어의 전체 문법 구조와 사용성, 오류 검출 능력을 고려한 설계가 중요함을 강조합니다.
저자는 명확하고 단순한 규칙 정의, 주로 줄바꿈을 기준으로 문장을 나누는 방식을 추천하며, 모호한 경우를 방지하기 위한 도구 지원(예: 사용하지 않는 값에 대한 경고)도 필수적이라고 제안합니다.
이 글은 프로그래밍 언어 설계자 및 개발자에게 세미콜론 생략과 문장 구분 문제에 대한 다양한 접근법과 그 실용적 함의를 이해하는 데 유용한 통찰을 제공합니다.