본문 바로가기
프로그래밍/Fortran 77

[FORTRAN 기초] 1편: 예약어, 기본어, 변수 및 상수 개념과 문법 분류 총정리

by 오!쎈세! 2026. 6. 22.
포트란 77(FORTRAN 77)의 소스코드를 구성하는 단어들은 컴파일러가 미리 약속해 둔 규칙과 용도에 따라 엄격하게 분류됨. 본격적인 코딩에 앞서 예약어, 기본어, 변수, 상수의 개념을 확실히 정리한다.
🟦 1. 포트란 77의 단어 및 구성 요소 분류
  • 예약어 / 키워드 (Reserved Word)
    • 컴파일러가 미리 의미를 고정해 둔 단어임. PROGRAM, INTEGER, DO, IF, PRINT 등이 해당하며, 사용자가 임의로 변수 이름으로 선언할 수 없음.
  • 기본어 / 실행 명령어 (Statement)
    • 프로그램 내에서 연산이나 데이터 제어를 지시하는 중심 명령 단어임. 값을 대입하는 할당문이나 화면에 데이터를 표출하는 PRINT *, 루프를 돌리는 CONTINUE 등이 해당함.
  • 상수 / 리터럴 (Literal)
    • 프로그램 실행 중 절대로 변경할 수 없는 고정된 값임.
    • 숫자 상수: 100 (정수 리터럴), 3.14 (실수 리터럴)
    • 문자 상수: 'KIM' (작은따옴표로 감싼 문자열 리터럴)
  • 변수 / 식별자 (Variable)
    • 데이터를 임시로 보관하기 위해 사용자가 임의로 이름을 붙인 메모리 저장 공간임. 포트란 77에서는 변수명의 길이가 최대 6글자로 제한되는 실무적 특성이 있음.

🟪 2. 문법 요소별 특징을 반영한 포트란 77 예시 코드
아래 코드는 앞서 명시한 문법 단어들이 포트란 소스코드 내부에서 실제로 어느 영역에 어떻게 배치되는지 주석으로 해석한 표준 매뉴얼임.
fortran code
12345678901234567890123456789012345678901234567890123456789012345678901234567890
C      ====== 1번째 칸에 'C'를 적으면 이 줄 전체는 주석 공간이 됨 ======
       PROGRAM WORD_DEMO
*      [예약어] PROGRAM : 프로그램의 시작 이름을 선언하는 키워드 (7칸 시작)

C      =================================================================
*      [데이터 저장 공간] 변수 정의 영역 (Specification)
C      =================================================================
       INTEGER MYNUM, SCORE
*      [예약어] INTEGER : 정수형 변수를 선언하는 타입 예약어
*      [변수] MYNUM, SCORE : 숫자를 담기 위해 개발자가 임의로 명명한 변수 이름
*      -> 포트란 77의 변수명은 최대 6글자를 넘지 않는 것이 안전함

       CHARACTER*10 MYNAME
*      [예약어] CHARACTER : 문자열 변수를 선언하는 타입 예약어

C      =================================================================
*      [실행 및 명령] 기본어 명령어 제어 영역 (Execution)
C      =================================================================
*      [상수 대입] 변수 공간에 고정된 리터럴 값을 매핑함
       MYNUM = 77
*      [상수] 77 : 변경 불가능한 정수형 상수 리터럴
       MYNAME = 'KOREA'
*      [상수] 'KOREA' : 작은따옴표로 묶어 표현한 문자형 상수 리터럴

*      [기본어] PRINT : 화면에 데이터를 강제 표출하는 실행 명령어
       PRINT *, 'VARIABLE TEST : ', MYNUM
       PRINT *, 'STRING TEST   : ', MYNAME

*      [기본어] STOP : 프로그램 연산을 완전히 정지하라는 종료 키워드
       STOP
       END
 
 

💡 [실무 팁] 코볼 유저가 혼동하기 쉬운 포트란 변수명 '6글자 제한'
포트란 77 시스템을 다룰 때 타 언어 버릇대로 코딩하면 컴파일 에러를 뱉는 가장 독특한 제약 사항임.
  • 변수명 최대 6글자의 함정
    • 코볼은 USER-TOTAL-SCORE 처럼 하이픈을 섞어 길게 변수명을 지을 수 있었음.
    • 반면 표준 포트란 77은 변수 이름을 영문자와 숫자를 조합하여 최대 6글자 이하로만 지어야 하는 엄격한 제약이 있음. 만약 TOTALSCORE (10글자)라고 변수명을 적으면 컴파일러가 앞의 6글자만 자르거나 구문 에러를 일으키므로 TOTSCR 처럼 압축해서 명명해야 함.
  • 하이픈(-) 사용 금지 규칙
    • 코볼의 상징과도 같았던 단어 사이의 하이픈(USER-AGE)을 포트란에서 사용하면, 컴파일러는 이를 변수명이 아니라 '뺄셈 연산 기호'로 오해하여 수식 오류를 발생시킴. 변수 글자를 이을 때는 기호 없이 붙여 쓰거나 대소문자로 구분해야 한다.