誰が例外を設計しましたか?


22

例外と例外処理はどこから来たのですか?

.NETの使用方法、C ++のサポート方法が気に入っています(ただし、ライブラリは残念ながら戻りコードを使用するか、代わりにCで作成されています)。私はすべての新しい言語でその標準を知っていますが、誰が最初に設計したのですか、それはどこから来たのですか?

C ++はそれを使用する最初の言語ですか?他に古いものは知りません。


7
どうやら、Plankalkülには1940年代に例外処理がありましたが、最初のコンパイラは約50年後まで存在しませんでした。(en.wikipedia.org/wiki/Plankalk%C3%BCl
FrustratedWithFormsDesigner

C ++は、大衆に例外をもたらした最初の象牙ではないタワー言語であると言えます。しかし、コンセプトは最初から存在していました(または長い間、お好きなものを選んでください)。
マーティンヨーク

11
首を絞める人をお探しですか?私は冗談...だ
マーク・カンラス

1
ハードウェア例外からの影響を考慮する必要がありますか?
rwong

1
@FrustratedWithFormsDesigner:顎が床にぶつかりました。Konrad Zuseは知っていましたが、知りませんでした。彼は私たちすべての父です。
ボブマーフィー

回答:


20

例外の発生とトラップはかなり前から行われています。このサイトでは、例外が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のさまざまな委員会についてのみ言及しています。


PL / Iの実行は、実際には特定のタイプのイベントでした。独自のイベントを定義および発生させ、イベントハンドラを作成してそれらをキャッチできます。ISTRは、いくつかのシステム機能(VTAM?)でこれをサポートしているため、実際にイベント駆動型プログラムを作成できます。
TMN

スタックのアンワインド中に整頓されたクリーンアップ機能を提供するC ++より前の言語を思い浮かべますか?
-supercat

FORTRANの例外?さあ...
のMichałKosmulski

6

ホフ、MössenböckとPirkelbauerは(彼らの1997年論文のメタプログラミングを使用して処理ゼロ・オーバーヘッド例外例外の概念はジョン・グッドイナフの1975を参照して、70年代に提案されたこと)AFFIRM 例外処理:問題と提案表記で紙のコミュニケーションACM。その中で、彼はコールバックを登録するという一般的な考え方で現代の例外処理をまとめています。彼の提案する表記法は、より現代の属性メタデータ仕様に似ていますtry/catchが、それ(または少なくともそのセクション2)は、 70代半ば。

おそらく注目に値するのは、ゼウスのアテナのようにストロウストループの眉から完全に形成されたと思わないように、ブロックの原始的な形として見ることができるAlefraise/rescueメカニズムです。catch


3
事前の回答を読みましたか?例外1967年の日付:参照する日付より8年前
-gnat

4
私はそうしましたが、C ++での例外の出現とPL / IでのON CONDITIONステートメントの間の履歴の一部をトレースしようとしていました。私の追加は歓迎されなかったと思いますか?
Wtrmute

1
実際、例外処理に関する多くの論文は、概要、議論、および現代の例外メカニズムへの影響について十分に言及しています。一方、「例外処理」には多くの言語で明確なセマンティクスがあり、これはGoodenoughの出版前に特に当てはまると思います。これを念頭に置いて、この質問に対する保守的な答えは、条件付きジャンプにまでさかのぼることができます。
チアゴ・シウバ

@gnat:アイデアを1940年代までさかのぼるコメントを読みましたか?そのコメントが存在しなかったとしても、問題は「例外がどこから来たのか?」であり、「例外が使用された最も早い日付に名前を付けること」ではありません。
マイケルショー

@MichaelShaw私が言及する答えは、あなたが言及したコメントと同時に投稿されており、また質問された質問に対処しようとします(「最初に」)。それとは対照的に、この投稿は明らかに見える初期の証拠を認めず、質問に対処することすらしませんでした
-gnat
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.