2016-04-04 6 views
-5

Switchステートメントは今日(Javascript、Java、PHP、C#、C++、C)のすべての主要言語で表示されていますが、このステートメントが初めて出現した言語は何ですか?誰がswitch文を発明しましたか?

+0

[プログラミングの歴史についての質問はスタックオーバーフローにオフトピックです](https://meta.stackoverflow.com/questions/255424/how-should-the-history-曖昧さ回避のタグ#comment24818_255425) –

+4

私は、この問題をプログラミングの歴史であり、プログラミングではないので、話題として閉じようとしています。 – Dijkgraaf

答えて

2

Lispは、です。この数字は、1956-1958の期間内にWikipedia's sourceです。

私はM.I.T.でIBM 704用のFORTRANに書いたチェスの法的移動ルーチンのセットに関連して条件式を発明しました条件式を定義し、Algolでその使用を提案した論文は、ACMのコミュニケーションに送られたが、非常に短かったので、エディタへの手紙に任意降格された。

からJohn McCarthyLisp Prehistory - Summer 1956 through Summer 1958

+0

右、Lispブランチを忘れました! BCPLとALGOLよりはるか以前(FORTRANのスイッチではありません)。 +1 – Amadan

+0

I * think *記事がCACM第2巻第8号(1959)に掲載されていますが、オンラインアーカイブにはエディタへの手紙が含まれていないようです。古い版へのアクセス権を持つ人がこれを確認できる場合、または理想的には、オリジナルへのリンクを提供すれば、それは壮大なものになります。 – tripleee

+0

Wikipediaのテキストは、このイベントは 'cond'が発明された時だと主張していますが、Lisp Prehistoryの記事の大まかな読み方では、この主張を検証したり否定しているようです。 Wikipediaは 'if''''''''''''''''''''''の代わりに' 'もっと一般的な' 'cond *構造体' 'と呼んでいますので、これが私の答えです。 – tripleee

0

あなたが言及している言語の中で、おそらくCが最初になります。しかし、あなたが注意深く観察すれば、コンセプトはアセンブリ言語の場合のようなより基本的な言語から生まれます。

1

コンセプトの進化であるため、実際には答えられません。 C(あなたのリストの中で最も古いもの)は、BCPL(switchonステートメントを持っていました)から進化したB(またswitchを持っていました)から進化しました。 BCPLはCPL(AFAIK)にはなかった。 Pascal-vs-Cキャニオンの反対側では、ALGOL(ALGOL68のcase文)は、FORTRAN(計算されたGO TOステートメントの初歩的なものを持っていました)から進化しました。計算されたGO TOは非常に低レベルで、組み立てに簡単に実装できます。

+0

一般的なすべての言語で使用される構文について質問します。私はそれもBだと信じています。 – Tom

関連する問題