2011-02-07 5 views
1

Fortran IV 프로그램을 Fortran 77으로 업데이트 할 컨설팅 과제를 받았습니다. 문제는 Fortran에서 코딩 한 적이 없다는 것입니다. Fortran을 배울 수있는 곳에 대한 정보와 Fortran IV와 77의 차이점은 무엇입니까?Fortran IV에서 Fortran 77으로 업데이트

편집

(사진 here 참조)이 프로그램은 원래 컴파일러에 개발 된 MODCOMP 9250에서 실행되고 업데이트 할 수있는 프로그램입니다. 컴파일러는 1990 년 즈음에 Fortran 77으로 업데이트되었습니다. 내 클라이언트는 응용 프로그램을 수정하려고하고이 기회를 빌어 코드를 최신 컴파일러로 업데이트하려고합니다.

+0

쥬라기에서 백악기로 업그레이드 중입니다. 과제를 거절 하시길 강력히 권합니다. –

+0

제가 일하고있는 프로젝트에는 스웨덴의 여러 원자력 발전소에서 사용되는 컴퓨터를 관리하는 작업이 있습니다. 동료들도 Fortran을 프로그래밍 할 수 있지만,이 과제는 나에게도 가르쳐주기 때문에이 과제가 있습니다. 그들은 나에게 가르 칠 수는 있지만 너무 바쁩니다. – magol

+0

그래서 우리는 유럽의 후쿠시마를 곧 가질 예정입니까? –

답변

4

이것은 정말 기괴한 과제입니다 ... 프로그래밍 언어가 수십 년 동안 개선되었다는 것을 가르치는 목적은 무엇입니까? 그렇다면 포트란 95와 같은 현대 언어로 번역하지 않으시겠습니까?

가끔 FORTRAN 77 코드가 나왔지만 실제로 FORTRAN IV를 사용해 본지 꽤 오래되었습니다. 그 차이점을 기억하기는 어렵습니다. 가장 큰 것은 IF 문을 개선 한 것이므로 더 명확한 코드를 작성하는 것이 더 쉬워 졌다고 생각합니다.

gfortran -ffixed-form -ffixed-line-length-none -W -Wall -pedantic -o my_prog.exe my_prog.for 
+0

이미 FIV, f77, f90/95 사이의 차이점을 알지 못했을 가능성이 있습니다. fIV 프로그램에는 이미 f77 요소가 포함되어 있습니다. f90 이상. 필자는 항상 그런 예를 보았습니다 (예 : MODULE이 삽입 된 f77 프로그램). – Rook

+0

Fortran 77이 플랫폼상의 최신 컴파일러입니다 – magol

0

"Fortran 77 튜토리얼"을 검색하면 많은 조회가 발생합니다 Fortran 77 프로그램의 구조와 구문에 대한 합리적인 소개처럼 보입니다. (나는 대학 수업에서 배웠던 것처럼 개인적인 경험으로는 아무것도 추천 할 수 없습니다.) 나를위한 최고의 히트작은 어떤 것보다 좋은 소개처럼 보입니다. :

http://www-teaching.physics.ox.ac.uk/Unix+Prog/hargrove/tutorial_77/

또한 (참조 gfortran 사용됩니다 컴파일러에 대한 구체적인 내용을 볼 필요가 아마 것이다

ms를 표준 리눅스로 바꾸는 요즘), 코드를 컴파일하는 방법을 알기 만하면됩니다.

당신이 알고 다음 양식을 핵심 포인트를 더 현대적인 언어의 배경을 오는 경우는 다음과 같습니다

  • 표준 포트란 77 그것은 절차이며하지 않는 자유 형식 언어
  • 아니다 지원 객체 지향/다른 사람이 등을 루프 경우는 보통 기본적인 프로그래밍 구조 즉 지원하지 않습니다 그러나

(이 언어의 이후 버전에서 사용할 수 있지만)

희망이 도움이 - 행운을 빌어 요!

+0

컴파일러 용 오래된 타자기 서면 설명서가 있습니다. 나는 그것을 해석하려고 노력할지도 모른다. 나는 C++과 C#에서 보통 프로그램을한다. 그래서 이것은 나에게 이상하다. 기본 및 기타 더 쉬운 언어의 프로그램이 있지만. 그래서 약간의 연습과 예제와 매뉴얼을 읽으면 이해할 수있을 것입니다. – magol

2

둘 사이의 차이를 확인하는 가장 좋은 곳은 포트란 표준 초안입니다 : 당신이 gfortran을 사용하는 경우 변경의 목록 http://en.wikipedia.org/wiki/Fortran

에 나타납니다, 다음 옵션은 FORTRAN 77 프로그램을 컴파일한다 (최신 초안은 게시 된 표준과 실질적으로 동일하며 다운로드 만 무료입니다.) 예 : f77 standard.

그러나 문제는 fIV 표준을 준수하지 않았기 때문에 대부분의 경우 (심지어 모두) 컴파일러에는 프로그램에서 확실하게 찾을 수있는 다양한 공급 업체 확장이 포함되어 있습니다. 게다가.컴파일러 매뉴얼이 있으면 컴파일러 매뉴얼을 가져 가십시오.

"f77로 업데이트하는 중"(Gawd, 나는 "f77로 업데이트 중"이라고 생각하지는 않습니다.) 과정에서 최선을 다할 것입니다.
a) fortran 짧은 튜토리얼을 어딘가에 가져옵니다 (인터넷상의 많은 것들). 단지 fortran이 어떻게 보이는지 보려고
b) 일단 프로그램 요소와 구조를 인식하기 시작하면, 번역을 시작할 수 있습니다. 확률은 많은 TYPE (의존)을 WRITE 또는 PRINT로 변환하고, 일부 IF 문을 수정하고, 일부 파일 입출력 조작을 수정해야 할 것이며, 어느 정도 COMMON을 만날 수 있습니다. 문제, ... 어떤 경우에는 시도하고, 붙어있을 때 여기에 게시하십시오.

과제가 얼마나 큰가요?

p.s. 위의 몇 가지 코멘트에서 말했듯이, 번역 할 프로그램은 실제로 fIV가 아니라 fIV, f66/77, 심지어 f90의 일부 요소가 혼합되어있을 가능성이 있습니다. 그러나 교수/지정자가 인식하지 못하는 경우 차이의. 이전 데이터 테이프에서 복사하지 않은 경우. 나는 항상 그런 예들을 보곤했다.

+0

프로그램이 너무 크지 않습니다, 2 KLOC. 그리고 당신은 그것이 "데이터베이스"에 대한 많은 특별한 명령 인 것입니다. 컴파일러에 대한 오래된 타자기 서면 설명서가 있습니다. 나는 그것을 해석하려고 노력할지도 모른다. – magol

+0

@magol - Fortran에는 많은 * 키워드 (f77 - 어쩌면 30 개)가 없으며 초기 단계에서 대부분 I/O 기능 (읽기/쓰기/파일 열기/닫기)을 변환해야합니다. .), DO 루프 및 IF 문이있을 수 있습니다. 그 후에 그것은 나의 추측에서 '77 년에 컴파일 될 것입니다. 하지만, 플랫폼에 맞는 컴파일러가 없다고 생각하는 것이 매우 어렵습니다. 위의 귀하의 의견에, 존재하지 않는 것을 의미 했나요? 아니면 f77이 사이트에서 사용할 수있는 최신 컴파일러입니까? – Rook

+0

운영 체제 (MAX)는 1990 년 이후로 다소 업데이트되지 않았습니다. 그 때 Fortran 77이 출시되었습니다.이 플랫폼을 사용하기위한 최신 버전은 없습니다. – magol

1

Fortran IV의 대부분은 Fortran 77에서 유효합니다. g77 (이전 GNU Fortran 77 컴파일러)이 설치된 플랫폼을 찾을 수 있으면 standards-compliance-mode를 켜고 경고 또는 오류없이 컴파일하면 모두 완료됩니다. 교수가 충분하지 않다고 말하면, 그는 자신이 원하는 것에 대해 더 구체적이어야합니다.

Fortran 95 컴파일러에 Fortran 77 준수 여부를 확인할 수있는 옵션이 있는지 알 수 없습니다.

+0

이 시스템은 Fortran IV와 Fortran 77 용 컴파일러를 모두 가지고 있습니다. 그러나 고객이 내가 프로그램을 업데이트하기를 원합니다. – magol

+0

모든 f2003 컴파일러 (어쩌면 2008 년까지)가 f77 코드를 컴파일해야한다는 표준 요구 사항입니다. 나는 일하는 기계가 아니지만 f66이 일부 스위치일지도 모른다. – Rook