GNU Fortran에서 미구현된 확장

GNU Fortran에서 미구현된 확장

Fortran 언어는 오랜 역사와 넓은 사용층 덕분에 수많은 확장 기능이 생겨났어요. 그중 유용하고 널리 쓰이는 확장 상당수는 GNU Fortran이 지원하지만, 모든 확장이 지원되는 건 아니에요. 이 장에서는 지원되지 않는 확장들을 정리하고, 그런 확장을 쓰는 코드를 GNU Fortran에서 돌릴 때의 조언을 담고 있어요.

출처: Extensions not implemented in GNU Fortran (The GNU Fortran Compiler)

본문

Fortran 언어의 긴 역사, 널리 퍼진 사용과 방대한 사용자층, 다양한 컴파일러 공급업체, 그리고 초기 표준들에 사용자에게 중요한 일부 기능이 빠져 있다는 점 때문에 언어에는 많은 중요한 확장이 생겨났어요. 가장 유용하거나 인기 있는 확장 중 일부는 GNU Fortran 컴파일러가 지원하지만, 존재하는 모든 확장이 지원되는 것은 아니에요.

이 절은 그런 확장들을 나열하고, 그것을 사용하는 코드를 GNU Fortran 컴파일러로 돌릴 수 있게 하는 최선의 방법에 대한 조언을 제공하는 걸 목표로 해요.

미구현된 확장은 다음과 같아요:

  • ENCODEDECODE
  • 변수 FORMAT 표현식 (Variable FORMAT expressions)
  • 대체 복소수 함수 문법 (Alternate complex function syntax)
  • 휘발성 COMMON 블록 (Volatile COMMON blocks)
  • OPEN( ... NAME=)
  • Q 편집 지시자 (Q edit descriptor)

이 항목들을 쓰는 기존 코드는 GNU Fortran에서 그대로 컴파일되지 않을 수 있어요. 코드를 이식할 때는 해당 확장을 표준 Fortran으로 다시 쓰는 방법을 찾아야 해요. 예를 들어 옛 ENCODE/DECODE 문은 내부 파일(internal file)을 이용한 읽기/쓰기로 대체하는 방식이 흔히 쓰여요. 다만 이 목록 자체는 GNU Fortran이 지원하지 않기로 한 확장들이라는 점, 그리고 지원 여부는 컴파일러 버전에 따라 달라질 수 있다는 점을 참고해 주세요.

표준 Fortran이 제공하지 않는 기능이 필요하다면, 먼저 사용 중인 GNU Fortran 버전의 문서에서 해당 확장이 지원되는지 확인하는 게 좋아요. 구현된 확장 목록은 앞선 절에서 다루고 있으니 함께 참고하면 도움이 돼요.

더 알아보기