FORMAT 지정문의 쉼표(Commas in FORMAT specifications)

FORMAT 지정문의 쉼표(Commas in FORMAT specifications)

옛 코드를 지원하기 위해 GNU Fortran이 FORMAT 지정문에서 쉼표를 어떤 조건에서 생략할 수 있게 해주는지 설명하는 문서예요. 비표준이지만 레거시 코드에서 흔히 보이는 표기라서, 어떤 상황에서 허용되는지를 짚어줘요.

출처: Commas in FORMAT specifications (The GNU Fortran Compiler)

본문

레거시 코드를 지원하기 위해 GNU Fortran은 FORMAT 문에서 문자 문자열 편집 기술어(character string edit descriptor)의 바로 앞과 바로 뒤에 오는 쉼표를 생략할 수 있게 해줘요. 그리고 쉼표 뒤에 형식 기술어(format descriptor)가 전혀 없는 경우는 명령줄에서 -fdec-blank-format-item을 주면 허용돼요.

다만 이런 표기는 표준에 맞지 않는(non-conforming) 코드로 여겨지며, 사용을 권장하지 않아요.

      PRINT 10, 2, 3
10    FORMAT ('FOO='I1' BAR='I2)
      print 20, 5, 6
20    FORMAT (I3, I3,)

위 예시에서 'FOO='I1처럼 문자 문자열 리터럴과 I1 사이에 쉼표가 생략되어 있는 걸 볼 수 있어요. 또 두 번째 FORMAT (I3, I3,)처럼 마지막 기술어 뒤에 쉼표만 남는 경우도 -fdec-blank-format-item이 있으면 허용되죠.

쉽게 말하면, 옛 프로그램에서 이런 표기가 나오더라도 GNU Fortran이 그대로 받아주도록 한 배려예요. 다만 새로 작성하는 코드에서는 표준 표기대로 쉼표를 명확히 쓰는 게 좋아요.

더 알아보기

  • 이 확장은 GNU Fortran의 -fdec 계열(래거시 DEC 호환) 옵션군과 맥락을 같이해요. 관련 확장을 전체로 보려면 확장 기능 문서를 참고하면 돼요.
  • FORMAT 지정문의 전반적인 쓰임은 Fortran 표준의 입출력 편집 부분을 함께 보는 게 도움이 돼요.
  • 비표준 표기에 의존하는 코드를 유지보수한다면, 표준 문법으로 정리하면 이식성이 높아져요.