例外と例外処理はどこから来たのですか?
.NETの使用方法、C ++のサポート方法が気に入っています(ただし、ライブラリは残念ながら戻りコードを使用するか、代わりにCで作成されています)。私はすべての新しい言語でその標準を知っていますが、誰が最初に設計したのですか、それはどこから来たのですか?
C ++はそれを使用する最初の言語ですか?他に古いものは知りません。
例外と例外処理はどこから来たのですか?
.NETの使用方法、C ++のサポート方法が気に入っています(ただし、ライブラリは残念ながら戻りコードを使用するか、代わりにCで作成されています)。私はすべての新しい言語でその標準を知っていますが、誰が最初に設計したのですか、それはどこから来たのですか?
C ++はそれを使用する最初の言語ですか?他に古いものは知りません。
回答:
例外の発生とトラップはかなり前から行われています。このサイトでは、例外がPL / Iで導入されたと述べています:http : //www.math.grin.edu/~rebelsky/Courses/CS302/98S/Outlines/outline.02.html
このページによると、1967年にありました(コンピューターの言語と機能の網羅的ではありませんが網羅的なチャートを含みます):http : //community.borland.com/article/0,1410,22741,00.html
多くの言語がこの手法を採用しました-ADA、ALGOL、FORTRAN、ML [...]
ここから引用。
ウィキペディアには、PL / 1での例外処理に関する詳細があります。このページは、PL / 1が最初であることも示しています。もちろん、これは科学的な証拠ではありません:-)
PL / 1を誰が直接設計したかについては、この記事では名前は言及せず、IBMのさまざまな委員会についてのみ言及しています。
ホフ、MössenböckとPirkelbauerは(彼らの1997年論文のメタプログラミングを使用して処理ゼロ・オーバーヘッド例外例外の概念はジョン・グッドイナフの1975を参照して、70年代に提案されたこと)AFFIRM 例外処理:問題と提案表記で紙のコミュニケーションACM。その中で、彼はコールバックを登録するという一般的な考え方で現代の例外処理をまとめています。彼の提案する表記法は、より現代の属性メタデータ仕様に似ていますtry/catch
が、それ(または少なくともそのセクション2)は、 70代半ば。
おそらく注目に値するのは、ゼウスのアテナのようにストロウストループの眉から完全に形成されたと思わないように、ブロックの原始的な形として見ることができるAlefのraise/rescue
メカニズムです。catch