[수치해석] Fortran과 C
- 최초 등록일
- 2005.09.23
- 최종 저작일
- 2005.09
- 3페이지/ 한컴오피스
- 가격 1,500원
소개글
수치해석의 fortran과 c의 차이
목차
1. Fortran
1)정의
2) 특징
2. C Language
3. 수치해석에서 Fortran과 C
1) 차이
2) Fortran이 빠른 이유
본문내용
3. 수치해석에서 Fortran과 C
1) 차이
① C는 범용 언어이고, 포트란은 수치해석 전용 언어다. 물론 범용으로 쓸 수는 있지만, 컴파일러 자체에서 수치해석을 위한 최적화를 한다.
② 포트란은 '최초'의 고급언어이다. 포트란 이전에는 기계어/어셈블리 밖에는 없었지만 포트란 언어 설계자들이 언어를 설계한 방법은 어셈블리 프로그램에서 자주 사용되는 여러가지 코드의 패턴들을하나의 명령어로 축약하는 아이디어를 사용한 것이다. 현재의 디자인 패턴의 아이디어와도 유사하다고 볼 수 있다.
사실상 대부분의 포트란 명령어는 어셈블리 코드의 몇 줄과 거의 1:1로 대응되는 간단한 구조를 가지고 있다. 그만큼 최적화된 컴파일러를 만드는 게 복잡한 C/C++의 경우보다 훨씬 쉽다.
③ C는 모든 코드가 함수 호출이다. 모든 코드마다 함수 파라미터와 지역변수를 스택에 push/pop하는 오버헤드가 있다.
반면에, 포트란은 그런 개념이 아예 없는 서브루틴의 개념이다. 베이직의 GOSUB은 RETURN과 유사하다. X86 어셈블리라면 현재 CS:IP를 기억시켜둔 후, JMP로 서브루틴이 있는 코드에 갔다가 돌아올 때는 기억시켜둔 CS:IP로 되돌아오는 기능 밖에는 없다. 때문에 지역변수의 개념도 없고 오로지 전역변수 밖에는 없다. 이런 방식은 버그 발생 가능성도 높고 소스 코드의 유지 보수도 어렵지만, C와 같은 오버헤드가 전혀 없기 때문에 속도는 엄청 빠르다. 이런 문제 때문에 포트란이 전산학의 발전을 10년 이상 후퇴시켰다고 본다.
참고 자료
www.naver.com