포트란 표준 라이브러리가없는 이유는 무엇입니까?


10

수학과 과학 컴퓨팅에 중점을 둔 언어가되기 위해, 나는 항상 포트란 표준 라이브러리에 유용한 수학 루틴이 부족하다는 사실에 당황했습니다. 표준 편차와 평균을 계산하기 위해 최소한 루틴이 제공 될 것으로 예상하지만, 그렇지 않습니다. 특히 포트란 90의 도입과 모듈의 추가 (따라서 네임 스페이스 오염을 줄임)로 인해이 중요한 서비스 부족의 이유를 알 수 없습니다.

왜 그런지에 대한 당신의 지식을 듣고 싶습니다.


포트란을 사용한 지 20 년이 지났고 그 당시에는 표준이 말한 것에 대해 그다지 신경 쓰지 않았습니다. 사용 가능한 수학적 라이브러리의 양이 내가 사용하는 머신에서 거대하고 일관성이 있음을 발견했습니다. 라이브러리가 표준이 아니지만 유비쿼터스이기 때문에 이것이 궁금한지 궁금합니다. (나는 그것이 질문인지 전혀 모른다).
Martin York

답변:


17

FORTRAN이 개발되었을 때 코드 이식성과 같은 것은 없었습니다. 한 시스템의 FORTRAN 컴파일러가 다른 시스템의 컴파일러와 약간 다른 언어를 허용하는 것은 절대적으로 일상적인 일이었습니다. 가장 일반적인 변형은 이름 길이입니다. IBM 1130 FORTRAN은 5자를 허용하고 DEC-10은 6자를 허용했으며 CDC 6600 (첫 번째 기계, 첫 번째 실제 어셈블리 언어)은 7자를 허용했습니다. 언어에는 3 차원 배열이 필요했습니다. 최소한 하나의 미니 컴퓨터 (Varian 76?) FORTRAN은 7 차원 배열을 허용했습니다.

회사는 일상적으로 FORTRAN 언어를 확장하여 고객에게 더 매력적인 시스템을 만들었으며 확장 기능이 유사한 기능을 제공 할 수는 있지만 결코 동일하지는 않았습니다. 많은 컴파일러가 파일 I / O 및 오버레이 관리를위한 확장 기능을 제공했으며 결코 동일하지 않았습니다. 때때로 그들은 심지어 가까이하지 않았다.

한 기계에서 다른 기계로 프로그램을 포팅하는 FORTRAN-FORTRAN 변환은 매우 바쁜 코티지 산업이었으며,이를 수행 할 수있는 사람들은 항상 일자리를 찾을 수있었습니다. (저는 그러한 두 가지 전환 작업을 수행했습니다. 원본 Matuszek-Reynolds-McGehearty-Cohen "Star Trek"게임을 CDC 6600에서 DEC-10으로 포팅하는 데 도움을 주었으며 EKG 분석 프로그램을 Varian 76에서 TI 990으로 포팅했습니다. 그러한 프로젝트는 동일했습니다.)

몇몇 사람들이 시도했지만 이런 종류의 일은 "표준"라이브러리를 제공하는 것을 매우 어렵게 만들었습니다. IMSL 라이브러리는 가장 크지 만 소스 코드 형태로 제공되었으며 고객은 자신의 시스템에서 작동하도록해야했습니다.

또한 : FORTRAN 프로그래머는 수치 적 방법에 대한 합리적인 배경을 가지고 있어야합니다. 당시 지구상의 모든 FORTRAN 프로그래머는 숙제로 과제에 대한 평균 및 표준 편차를 수행하는 방법을 배웠습니다. 모든 FORTRAN 프로그래머는 학교에서 이분법과 Newton-Raphson 반복 (현재 "Newton 's Method"라고 함)을 배웠습니다. Runge-Kutta 방법은 일반적으로 rote에 의해 가르쳐졌으며, 당시 6 차 Runge-Kutta 통합자는 교과서의 예였습니다. (이후 사람들은 4 차 Runge-Kutta가 비용 효율성 곡선에서 "달콤한 지점"임을 알아 차 렸습니다.)

그리고 프로그래머는 작업을 변경하지 않고 컴퓨터를 거의 바꾸지 않았습니다. 이사를 간 프로그래머들은 새로운 시스템의 작동 방식을 배우고 그 차이를 파악하는 데 능숙해야합니다.

이 환경에서는 유능한 엔트리 레벨 FORTRAN 프로그래머가 수면 중에 작성할 수있는 "표준"STDDEV 코드를 거의 요구하지 않습니다.


> 또한 : FORTRAN 프로그래머는 숫자 방법에 대한 합리적인 배경을 가지고있을 것으로 예상되었습니다. 오늘날 프로그래머가 Google을 사용하는 방법을 배우는 것이 첫 번째 기술인 것처럼 보이지만
:)

3
어쨌든 모두 NAG를 사용했습니다
Martin Beckett

1
@MartinBeckett : NAG 이전입니다.
John R. Strohm

1
@ 루크, 나는 당신이 몹시 실망하게 될 것을 두려워합니다.
John R. Strohm

1
@보기 나는 확실히 할 수 있지만, 첫 번째 시도에서 효율적이고 수치 적으로 안정적인 방식으로 수행 할 것이라고는 생각하지 않습니다.
Ixrec

2

개인적으로 나는이 사실이 MKL 라이브러리 때문이라고 생각합니다 . 고성능 수학 라이브러리를 찾고 있다면 MKL이 필요합니다. 그렇게 비싸지 않으며, 프로젝트에서 수학 컴퓨팅을 수행하는 실험실이 감당할 수 있습니다.


이에 대해 좀 더 자세히 설명해 주시겠습니까? 질문과 대답에 어떻게 그리고 왜 대답합니까? "링크 전용 답변" 은 Stack Exchange에서 환영받지 못합니다
gnat


0

BLAS 및 LAPACK은 사실상 표준 Fortran 라이브러리입니다.


-1

FORmulaTRANslation 언어는 자신 만의 수식을 쉽게 작성할 수 있도록 설계되었습니다. Fortran 90 이상에서 쓸 수 있는데 왜 Fortran이 평균 함수를 정의해야합니까?

xmean = sum (x) / max (size (x), 1)?


3
배열 x에 값이 있다고 가정합니다. 이것은 일반적으로 매우 나쁜 가정입니다.
John R. Strohm 2012
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.