공백으로서의 폼 피드
공백으로서의 폼 피드
아주 오래된 코드를 만나다 보면 줄 시작 부분에 폼 피드(form feed) 문자가 있는 걸 볼 수 있을 거예요. 요즘은 잘 쓰지 않지만, 옛 컴파일러와의 호환성을 위해 GNU Fortran이 어떻게 다루는지 이 장에서 설명할게요.
본문
역사적으로 옛 컴파일러들은 줄 프린터(line printer)로의 정형 출력을 위해 줄 시작 부분에 폼 피드 문자('\f', ASCII 0xC) 삽입을 허용했어요. Fortran 표준은 이에 대해 언급하지 않지만요. GNU Fortran은 호환성을 위해 소스에서 폼 피드 문자를 공백으로 해석하는 것을 지원해요.
즉, 표준 소스 코드에서는 보기 드문 폼 피드 문자를 GNU Fortran은 공백처럼 다뤄서, 옛 관례대로 줄 앞에 폼 피드를 붙인 코드도 문법 오류 없이 처리해 줘요. 새로 작성하는 코드에서는 굳이 쓸 필요가 없지만, 유지보수 중인 옛 코드를 컴파일할 때는 이 동작 덕분에 거부당하지 않는다는 점이 도움이 돼요.
여기서 '폼 피드'는 전통적인 종이 인쇄에서 다음 페이지로 넘기는 제어 문자에서 왔어요. 줄 프린터로 출력하면서 페이지를 나누기 위해 소스 줄 맨 앞에 넣던 관례가 있었죠. 실제 값은 '\f'로, ASCII 코드로 0xC(십진수 12)예요. GNU Fortran은 이 문자가 소스 줄 처음에 있으면 그냥 공백과 똑같이 취급해서 문법 해석에 아무 지장을 주지 않아요.
표준외(비표준) 동작이기는 하지만, 하위 호환성을 목적으로 지원되는 확장 중 하나라는 점을 기억해 두면 좋아요. 별도 플래그로 켜야 하는 게 아니라 GNU Fortran에서 기본적으로 동작하는 편의 기능이에요.
더 알아보기
- GNU Fortran에서 구현된 확장 (Extensions implemented in GNU Fortran): 폼 피드 처리도 그중 하나인, 하위 호환성을 위해 지원되는 확장들 전체 목록이에요.
- GNU Fortran 컴파일러 특성 (Compiler Characteristics): 컴파일러가 소스를 해석하는 여러 특성을 다뤄요.