C++/Matlab/Java 배경에서 나오는 Fortran을 배우기 시작했습니다. 필자는 일부 Fortran 프로그래머가 여전히 객체 지향, 네임 스페이스 및 물건을 좋아하지 않고 이전 구문에 익숙하기 때문에 F77에 매달리고 있음을 알고 있습니다.Fortran 77 프로그래머는 동적 메모리 할당없이 어떻게 관리합니까?
OOP없이 프로그램을 작성할 수 있다는 것을 이해합니다. 내가 이해할 수없는 것은 동적 메모리 관리없이 어떻게 할 수 있는지입니다. 예를 들어 전체 행렬을 드문 드문 한 행렬로 변환 할 때와 같이 미리 배열 크기를 모르는 경우가 수천 가지가 있습니다.
물론 현대 Fortran은 "자동 배열"과 "할당 가능한 배열"을 모두 제공합니다. 그러나 이것들은 1977 년에 존재하지 않았습니다. F77 녀석들은 어떻게 이러한 구조없이 관리합니까?
FORTRAN 77은 일부 선택된 초기 조건 (예 : 고정 크기 필드)이 확장 된 기간 동안 진화되어 데이터를 쓰는 과학 컴퓨팅에 주로 사용되었습니다. 실행 중에는 사용자 입력이 없으며 어레이가 얼마나 커야하는지 정확히 알 수 있습니다. Fortran 코드가 더 효율적이라고하는 이유 중 일부입니다. –
한 가지 방법은 하나의 큰 배열 (작업 영역)을 선언 한 다음 정수 인덱스를 사용하여이를 다양한 크기 섹션으로 분할하는 것입니다. (필자는 f77과 함께 작업하지 않았으므로이 접근법이 실제로 얼마나 공통적 인 지 잘 모르겠습니다.) –
@Ed Smith 음, 고정 된 크기 (예를 들어 수치 선형 대수)를 가진 과학 컴퓨팅 분야에는 많은 응용 프로그램이 있지만 알 수없는 크기 (구조화되지 않은 메쉬, 가변 스텝 길이가있는 시간 통합, 스파 스 행렬 등)가 많은 응용 프로그램이 많이 있습니다. – akvilas