つかってないが!?
This account is not set to public on notestock.
ところであまり(ぱそこん屋さんの視界では)記録に残ってない話としてオフコンの世界ではどうだったのかみたいなのがあると思うんだけどおるみんちゃんちょっと見てきてくれないだろうか
This account is not set to public on notestock.
ヘッダを include なんかしなくても、どこにもシグネチャの宣言のない関数呼び出しをうっかり書いてもとりあえず外部リンケージってことでオブジェクトコンパイルは通して、リンカに任せるってのもコンパイラはかなりラクになるけど、たとえばヘッダだけうっかり修正してライブラリのシグネチャ直し忘れてた、とかだと永遠にリンカが実体探せずにリンカエラーになる、とかあるし
ライブラリをコンパイルするときコンパイラが API のシグネチャリストを吐いて、利用者はその宣言リストを import して利用する、とかでもいいはずで、同じシグネチャ定義をプログラマがべつべつに記述したりするのはだいぶ C コンパイラの実装のせいな気がする
でもさ、宣言と定義が分かれてるCスタイルってライブラリ(バイナリ)に実相があってヘッダだけ読めばいいみたいな仕組みでは便利だった気がするよ
じゃあ C とかはなんであんななんだよ、ではあるんだけど、Multics は別にコマンドや API を極端に省略せず snake_case で長い命名までされていたので、なにからなにまでああなったのはもう ken & dmr のシュミな気がする……
ただし、PL/1 は長らく仕様のみが存在する言語で、Multics の開発言語に選ばれたはいいものよ General Electric のメインフレーム上の実装がずっと存在せず先に仕様ばかり設計が進んでいたところ、Bell Lab の人員によって TMG の移植やコンパイラ実装が行なわれた、という経緯のはず?
1950s には Fortran、COBOL、Lisp、ALGOL はとっくに出揃い 1964 年にはダートマス大から BASIC が、そして特定用途に限らずシステムプログラムから数値計算、事務計算までこなせる究極言語として Fortran、COBOL、ALGOL から影響を受けている PL/1 がもう出てきている。TMG はその後に出てきてるわけである。
そもそも形式言語的な、あるいは数理的な観点や視点から言語を設計するということがあまりわかってなくて当時としてはあれ以外の自由度を持たせる方法がわからなかった、とかのほうが大きそう。トップダウンパーサーのような概念が計算機世界に持ち込まれ TMG としてコンパイラコンパイラが実装されたのは Robert M. McClure による 1965 年の OS/360 上のことで、これが Bell Lab の M. Douglas McIlroy(パイプ記法の発明や tr コマンドの開発など初期 Unix への貢献で知られる)によって Multics の PL/1 コンパイラのために移植され、次いで BCPL や B、そして C のために Unix へ移植されている
たとえば Fortran のサブルーチンは C の関数と違って前方宣言とかなく処理とシグネチャを定義して書くし、必ずともそうは言えないんじゃないかな。
blogged >> tar(1) はなぜオプション引数にハイフンが不要なのか? https://orumin.blogspot.com/2024/06/tar1.html
所在不明の在庫約3200万円相当 道内「ハードオフ」運営会社 店長は内部監査中に店を抜け出し行方不明 HTB北海道ニュース
https://www.htb.co.jp/news/archives_26838.html
ところで、プログラムリストを紙に打ち出すために Unix v1 から既に pr(1) があって https://www.bell-labs.com/usr/dmr/www/man13.pdf これは POSIX に残っているもの https://pubs.opengroup.org/onlinepubs/9699919799/utilities/pr.html なのになぜ人々は cat(1) をプリントアウトに使ってしまうのか。
blogged >> tar(1) はなぜオプション引数にハイフンが不要なのか? https://orumin.blogspot.com/2024/06/tar1.html