PRINT의 별칭으로서의 TYPE
PRINT의 별칭으로서의 TYPE
구형 Fortran 코드와의 호환성을 위해, -fdec 플래그를 켜면 TYPE 문을 PRINT 문으로 해석하는 GNU Fortran의 동작을 소개해요. 이 플래그 아래에서 두 문장이 완전히 동등해진다는 점을 기억하면 돼요.
본문
호환성을 위해, GNU Fortran은 -fdec 플래그로 TYPE 문을 PRINT 문으로 해석해요. 이 플래그를 켜면 다음 두 예제는 동등해요.
TYPE *, 'hello world'
PRINT *, 'hello world'
-fdec는 DEC(디지털 이큅먼트 코퍼레이션) 스타일의 여러 구형 호환 기능을 한꺼번에 켜는 플래그라서, 호환성 목적이 아니라면 단독으로는 되도록 안 켜는 게 좋아요.
이 확장이 생긴 배경을 보면, 옛 DEC VAX Fortran의 명령어 중에는 지금의 PRINT에 해당하는 동작을 TYPE이라는 키워드로 제공하던 관례가 있었어요. 그 시대의 소스 코드를 최신 gfortran으로 그대로 컴파일해야 할 때, TYPE 문을 전부 PRINT로 고치지 않아도 되게 해 주는 게 바로 이 확장이에요.
주의할 점은, 이 기능은 오직 -fdec 플래그가 켜져 있을 때만 동작한다는 거예요. 플래그가 없으면 TYPE은 파생 타입 정의 등 다른 문법 요소로 해석되므로, 같은 소스라도 컴파일 옵션에 따라 의미가 달라질 수 있어요. 따라서 새 코드에서는 PRINT를 쓰는 것이 표준에 맞고, 이 확장은 레거시 코드 이식 시에만 활용하는 게 좋아요.
더 알아보기
- Extensions implemented in GNU Fortran — gfortran이 구현한 확장 전체 목록
- -fdec — DEC 호환 기능 묶음 플래그
- %LOC as an rvalue — 관련 DEC 호환 확장