어떤 버전의 포트란을 배워야합니까?


17

저는 항공 우주 공학 분야에 관심이있는 기계 공학 학생입니다. 여기서 Fortran은 여전히 ​​일반적으로 사용됩니다.

배우기 위해 시간을 투자해야하는 포트란 버전은 무엇입니까?


완전한 대답은 아니지만 최신 Fortran 기능에 대한 컴파일러 지원이 심각 하지 않다는 점은 주목할 가치 가 있습니다. fortranwiki.org/fortran/show/Fortran+2003+statusfortranwiki.org/fortran/show/Fortran+2008+status를 참조하십시오. 90/95부터 시작하여 필요에 따라 발전해 나갈 것입니다.
Doug Lipinski 1

주제에 대해 몇 가지 생각을 썼다면, stackoverflow.com/questions/953869/… stackoverflow.com/questions/3549702/… 를 참조하십시오 . 위와 별도로, F90을 추천하고 필요할 때 학습 기능을 권장합니다.
루크

1
Matlab은 Fortran에서 시작됩니다. 귀하의 의견을 바탕으로이 옵션을 평가할 것을 권장합니다.
Dennis Jaheruddin

2
당신이해야 심지어 포트란 배울 마침표를? 이것은 당신이 사용해야 할 레거시 코드의 양에 의해 결정될 수 있습니다-이것은 또한 당신이 배워야 할 포트란의 버전을 지시합니다.
Damien

답변:


27

Fortran의 "버전"이 있다는 것은 약간의 유명한 오해입니다. 드문 경우를 제외하고 최신 Fortran 표준 (및 컴파일러)은 이전 표준과의 호환성이 우수합니다. 아직 많은 사람들이 아직 사용하지 않는 레거시 코드가 많지 않다면 Fortran을 사용하지 않을 것입니다. 즉, 표준 호환 Fortran77 코드는 거의 항상 최신 컴파일러에서 작동합니다.

가장 최신 버전의 언어를 사용하는 법을 배워야합니다. F2008은 초보자에게 끔찍한 도움이되지 않았지만 F2003의 객체 지향 개념 도입은 확실히 큰 문제입니다. "Modern Fortran Explained"는 시작하기에 알맞은 장소이며 "Scientific Software Design : Object Oriented Way"는 실제로 그것을 연습하는 법을 배우는 데 상당히 좋습니다.

실용적으로 레거시 코드 (예 : F77 또는 이전 코드)를 사용하려면 F90 + 기능이 없기 때문에 수행 한 작업 중 일부를 배워야합니다. 예를 들어, Fortran 코드를 작성하는 경우 "COMMON 블록"을 사용해서는 안되지만 반드시 F77 코드에 해당 코드가 표시되는 것을 볼 수 있습니다.

최소한 F90 / 95 기능 세트가 없으면 Fortran에서 작업을 시작하지 않는 것이 좋습니다.

즉, 다른 언어로 프로그래밍하는 데 정통하지 않다면 아마도 항공 우주를 다니더라도 Fortran이 처음으로 배우는 데 가장 적합한 언어가 아니라는 의견이있을 것입니다. (그리고 나는 Fortran을 정기적으로 사용하고 그것을 제 첫 언어로 사용하는 항공 우주의 누군가라고 말합니다).


2
+1 "최소한 F90 / 95 기능 세트 없이는 누군가 누군가 포트란에서 작업을 시작하지 않는 것이 좋습니다." . 나는 두 번째입니다. F90부터 시작하여 모든 기본 기능을 배우고 몇 가지 프로그램을 연습 한 다음 최신 릴리스로 이동하십시오.
Tymric

Fortran이 아닌 경우 어떤 언어로 배울 가치가 있으며 엔지니어링에 사용하기에 실용적입니까? Matlab은 어떻습니까? 다음 학기에는이 과정이 필요합니다.
user26358

@ user26358 파이썬은 범용 프로그래밍을 위해 과학계에서 많은 관심을 받고 있습니다. 통계 분석을위한 R 수치 계산을위한 MATLAB, Mathematica 또는 Maple (클래스가 사용하는 모든 것) 관계형 데이터베이스를위한 SQL 웹과 관련한 자바 스크립트는 링구아 프랑카가되고 있습니다. 나는 그 중 하나가 그 일을 할 수 없을 때까지 Fortran을 귀찮게하지 않을 것입니다. 처음으로 배우는 것은 즐거운 언어가 아닙니다.
Schwern

@ 아우렐리우스, 나는 당신의 마지막 단락에 동의합니다. 과학적 프로그래밍을 배우는 올바른 방법은 내가 경험했던 것과 정반대라고 믿습니다. python-> C ++ 그리고 필요한 경우 Fortran.
니콜라 카발리 니

@ user26358 Matlab은 좋으며 학교에서 많이 사용하게 될 것입니다. 파이썬은 범용 프로그래밍으로 시작하기에 좋은 곳이며, numpy / scipy 모듈은 Matlab에서 아마도 대부분의 일을 할 수 있으며 소프트웨어 작성의 기본 사항을 배우기에 좋은 곳입니다. 벨트 아래에 적어도 하나의 컴파일 된 언어가 있어야합니다. C ++이 가장 인기있는 선택입니다.
Aurelius

1

나는 둘 다에 동의하지 않습니다. C ++과 Python은 여전히 ​​FORTRAN만큼 최적화되지 않았습니다. FORTRAN 90/95가 최소라는 데 동의합니다. 그러나 다른 최신 버전을 사용하는 것이 항상 유용합니다. FORTRAN의 과제는 객체 지향 언어를 배우기 전에 배우면 이해하기 쉽다는 것입니다. 사물을 생각하는 데 익숙하다면 배우기가 훨씬 어렵습니다. 여기 슈퍼 컴퓨팅 수업을 가르치고 학생들에게 FORTRAN을 사용하도록 강요합니다. 프로그래밍에서 다른 종류의 논리를 사용하도록합니다. 파이썬이나 C ++처럼 "생각"하지 않기 때문에 마음에 들지 않습니다. 그것은 모두 당신이하려는 일과 병렬화와 성능이 얼마나 중요한지에 달려 있습니다.


SciComp.SE에 오신 것을 환영합니다. 이것은 사이트에 대한 질문보다 의견으로 보입니다. Fortran "[...]이 프로그래밍에서 다른 종류의 논리를 사용하도록 강요했다"고 생각하면 인수를 자세히 설명하고 그 이유를 알려주십시오. 또한이 "논리의 종류"는 무엇입니까?
nicoguaro

2
@ tmwitten :이 답변은 의견으로 간주됩니까? 아마도 주석이 되기에는 너무 길고, 문맥 상으로는 비 유연한 것처럼 보입니다 (예를 들어, C ++과 Python은 질문에서 언급되지 않았습니다. "둘 다"는 Nicola와 Aurelius를 나타냅니다).
Geoff Oxberry
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.