본문 바로가기
CS(Computer Science)/프로그래밍언어

1. Fortran

by 동욷 2023. 4. 19.

1954-1957년 John Backus에 의해 고안된 최초의 고급 언어

Fortran ll , Fortran lV , Fortran 66 , Fortran 77, Fortran 90

Fortran 컴파일러는 효율적인 기계어 코드 작성 -> 언어의 긴 생명 제공

배열, 반복구조, 분기문, 부프로그램 등 특징이 이후 언어에 큰 영향

비 구조형 언어

컴파일러 언어

컴퓨터 제조회사의 후원으로 성공

실행의 효율성이 설계 목적

그러나, 사용자 편의성 및 범용성이 무시됐음

 

배열 부분 -> 가변 배열 전달능력, 가변배열 선언 불허

동등 연산자, 배정 연산자 (=, := ) -> 배열, 레코드에 적용 불허

매개변수 전달 방식 -> call by reference 만 허용

상수 -> 상수 이름 부재

,과 . -> , 는 문장 종료로 간주 / . 는 실수 표현으로 간주

초기 고급언어로 분리 컴파일 제공한다. 효율적인 번역이 가능하나 오류 유발 가능성이 있다

 

알파벳 문자 : 기본 문자 집합 + 13개의 특수문자 (+ + - * / () , . $ ` : 공백)

 

 

 

구문과 프로그램 신뢰성

 

Do 10 I= 2,6

A(I) = B + C(I)

10 CONTINUE

 

여기서 ,를 안쓰고 .을 쓰면 2.6이 배정되어버린다

 

 

 

바인딩

 

정적 바인딩 - 컴파일 시간

: 대부분의 변수형 확정

 

정적 바인딩 - Linkage edit 시간

: COMMON 문에

주어진 이름의 상대 주소 확정 , 부프로그램 이름에 관한 상대 주소 확정

 

정적 바인딩 - 적재 시간

: 모든 변수의 기억장소 할당 , DATA 문에서 정의된 값을 변수에 배정

 

동적 바인딩 - 실행시간 사용 시점

: 배정문 등에 변수값을 배정

 

 

 

디폴트

- Fortran에서 디폴트로 명명하는 규약에 따르면, I에서 N까지 중의 한 문자로 시작되는 이름은 정수형 변수를 나타낸다.

 

 

정적형 검사(static type checking)를 사용한다.

 

배정문 :  A = B

 

혼합형 배정문 : 묵시적 형 변환 규칙을 적용한다.

 

 

 

(표현식)

**

* , /

+ , - 

.EQ. .NE. .LT. .LE. .GT. .GE.

.NOT.

.AND.

.OR.

 

 

조건 분기문 시 거짓 문장을 없애버리니까 , 깔끔하나 GOTO 같은 새로운 분기문이 생성됐음

 

조건문

if문 -> goto 역할

 

ex) if(BCOND) L1, L2    => 참이면 L1, 거짓이면 L2

ex) if(ACOND) L1, L2, L3  => 수식의 결과 -, 0, + 인 경우

 

Fortran 77에서는 dangling else의 해결로 ENDIF 사용

 

반복문 : DO문 -> 반복 제어 변수 반복문

 

FORTRAN || 의 DO문이 최초의 반복문이다.

- DO 문 몸체가 적어도 한 번 수행된다

- 초기값, 증분값, 최종값 : 정수형 상수나 변수

- 반복문 수행 후 반복 변수의 값 무언급

 

 

레이블 : 프로그램 내의 위치를 나타내는 식별자

- Fortran에서는 문장 앞에 선행되는 최대 5자리 수로 , 그 문장을 참조하는데 사용 될 수 있다.

- 레이블 -> 기계어 코드의 분기 위치로 번역한다.

 

 

 

<기본 자료형>

INTEGER 정수

REAL 실수

LOGICAL 논리형

CHARACTER 문자

DOUBLE 실수

COMPLEX 복소수

 

<배열>

- 소괄호를 사용한다 => 컴파일러가 판별

- 배열 첨자 범위의 하한값 => Fortran, Fortran 77 : 1

- 배열 상한/하한값 표현 => 상수

- 가변배열 X

- 배열 원소에 대한 연산만 가능 (배정, 복사 X)

 

 

 

 

728x90