FORTRAN
FORTRAN と C/C++ のコードはリンク可能です。
FORTRAN から C/C++ の関数を呼び出す場合、
プログラミング言語に関する体系的な理論・道具も無い (*) 状況で、かつコンピュータが高価・低性能で「高級言語で書いたプログラムなど実行効率が落ちて使い物にならないだろ?」と思われていた時代に試行錯誤しながら開発され、アセンブリ言語でコーディングするのに劣らぬ効率のコード生成を実現しました。これによって以後のプログラム開発はアセンブリ言語から高級言語にシフトし、(主にIBM製) コンピュータの普及と、開発効率の向上に大きく貢献しました。
(*)
いまだとプログラミング言語の文法仕様を記述する際に BNF という記法を使いますが、たとえばこれも FORTRAN の生みの親である John Backus 氏が後に作ったもので、FORTRAN 開発当時には存在しませんでした。BNF もなければ LL, LR といった構文解析アルゴリズムもない状況で高級言語を開発するというプロジェクトを率い、成功させた苦労は並大抵のものではなかったと思います。
今から見ると確かにダサい仕様だと思うことは多々ありますが、歴史的背景を踏まえず「適当に作った」と言ってしまうのは、ちょっと先駆者に対する敬意が足りないかなと。
FORTRAN から C/C++ の関数を呼び出す場合、
- 引数が全てポインタ渡しになる
- 環境依存だが、シンボル名が変わる
確か gcc だと、C/C++ 側関数で foo_ と定義しておくと FORTRAN 側から FOO として見えたはず。(全部小文字 + 最後にアンダースコア)
そのついででFortranについて調べたけど、この言語、嫌い。 コンピュータ黎明期に誰かが適当に作ってそのまま既成事実になってるんじゃないか と思うような書式が嫌だ。歴史的なことをいうと、FORTRAN は世界で初めて作られた高級言語です。
プログラミング言語に関する体系的な理論・道具も無い (*) 状況で、かつコンピュータが高価・低性能で「高級言語で書いたプログラムなど実行効率が落ちて使い物にならないだろ?」と思われていた時代に試行錯誤しながら開発され、アセンブリ言語でコーディングするのに劣らぬ効率のコード生成を実現しました。これによって以後のプログラム開発はアセンブリ言語から高級言語にシフトし、(主にIBM製) コンピュータの普及と、開発効率の向上に大きく貢献しました。
(*)
いまだとプログラミング言語の文法仕様を記述する際に BNF という記法を使いますが、たとえばこれも FORTRAN の生みの親である John Backus 氏が後に作ったもので、FORTRAN 開発当時には存在しませんでした。BNF もなければ LL, LR といった構文解析アルゴリズムもない状況で高級言語を開発するというプロジェクトを率い、成功させた苦労は並大抵のものではなかったと思います。
今から見ると確かにダサい仕様だと思うことは多々ありますが、歴史的背景を踏まえず「適当に作った」と言ってしまうのは、ちょっと先駆者に対する敬意が足りないかなと。
ラベル: プログラミング

0 件のコメント:
コメントを投稿
この投稿へのリンク:
リンクを作成
<< ホーム