Switch-Anweisung wird heute in allen Hauptsprachen (Javascript, Java, PHP, C#, C++, C) dargestellt, aber in welcher Sprache diese Anweisung zum ersten Mal erschienen ist?Wer hat die switch statement erfunden?
Antwort
Lisp hat cond
die Wikipedia's source Plätze in der Zeit von 1956-1958.
Ich erfand bedingte Ausdrücke in Verbindung mit einer Reihe von Schach legal Move-Routinen, die ich in FORTRAN für die IBM 704 bei M.I.T schrieb. während 1957-58 ... Ein Papier, das bedingte Ausdrücke definierte und deren Verwendung in Algol vorschlug, wurde an die Mitteilungen der ACM geschickt, wurde aber willkürlich zu einem Leserbrief degradiert, weil es sehr kurz war.
- John McCarthy: Lisp Prehistory - Summer 1956 through Summer 1958
Richtig war, vergaß die Lisp-Filiale! Früher als BCPL und ALGOL (obwohl später als noch nicht ganz-Schalter von FORTRAN). +1 – Amadan
I * denke * der Artikel würde in CACM Band 2 Ausgabe 8 (1959) sein, aber ihr Online-Archiv scheint keine Briefe an den Herausgeber zu enthalten. Wenn jemand mit Zugriff auf alte Ausgaben dies überprüfen könnte, oder idealerweise einen Link zum Original bereitstellen würde, wäre das großartig. – tripleee
Der Wikipedia-Text behauptet, dass dieses Ereignis ist, als "cond" erfunden wurde, aber eine oberflächliche Lektüre des Lisp Prehistory Artikels scheint diesen Anspruch nicht zu bestätigen oder zu widerlegen. Wikipedia spielt auf eine "allgemeinere * cond * -Struktur" an und nicht nur auf "if" - "then" - "else". Darauf gründe ich diese Antwort. – tripleee
Unter den Sprachen, auf die Sie sich beziehen, wäre wahrscheinlich C der erste. Allerdings, wenn Sie genau beobachten, ergibt sich das Konzept aus mehr grundlegenden Sprachen wie im Fall der Montage Sprache,
Es kann nicht wirklich beantwortet werden, da es eine Evolution eines Konzepts war. C (das älteste in Ihrer Liste) wurde aus B entwickelt (hatte auch switch
), das aus BCPL entstand (hatte switchon
Aussage). BCPL kam von CPL, die (AFAIK) nicht. Auf der anderen Seite der Pascal-vs-C-Schlucht, ALGOL (hatte case
Erklärung in ALGOL68) entwickelt von FORTRAN (hatte einen rudimentären Vorgänger in der berechneten GO TO
-Anweisung). Die berechnete GO TO
ist sehr Low-Level und einfach in der Montage implementiert.
Ich frage nach Syntax, die in allen gängigen Sprachen verwendet wird. Ich glaube auch, dass es B. – Tom
- 1. Wer hat Miller-Säulen erfunden?
- 2. Wer erfunden Proxy Passing und wann?
- 3. Hat Java Schnittstellen erfunden?
- 4. Zusammenfassen von switch statement cases?
- 5. Welche Datenbank hat die SQL-Abfragesyntax "limit" erfunden?
- 6. PHP switch statement - berechnendes chinesisches Sternzeichenjahr
- 7. Javascript switch statement - Standard zuerst OK?
- 8. Wer hat einen "Lesezeitalgorithmus"?
- 9. Wer hat UWSGI erstellt?
- 10. Wer hat die Autovervollständigung für linqpad gekauft?
- 11. ng-switch-when hat keine break-Anweisung?
- 12. Warum wurde wchar_t erfunden?
- 13. Wie ersetzt man switch statement durch flexibleren Code in PHP?
- 14. Wer hat JaikuEngine erfolgreich adoptiert?
- 15. Was bedeutet "case" ohne switch statement in Swift?
- 16. SQL Server 2008 Datenerfassung ändern, wer hat die Änderung vorgenommen?
- 17. Profiling in Python: Wer hat die Funktion aufgerufen?
- 18. Herausfinden, wer die meisten Builds in Teamcity zerstört hat
- 19. Wer hat Erfahrung mit CSLA unter Mono?
- 20. Wer hat eine Kopie von MSIINV.EXE?
- 21. Wer hat in gdb Reverse-Debugging versucht?
- 22. Hat SASS/SCSS/Compass eine SWITCH-Funktion?
- 23. Wer übernimmt die IErrorInfo?
- 24. Finde, wer die Methode aufruft
- 25. Spiele: Wer ist verantwortlich für die Anzeige?
- 26. Wie konvertiert man Statement um Statement zu wechseln?
- 27. Wer
- 28. Expression/Statement Bäume
- 29. Wer die Socket-Verbindung herunterfährt
- 30. Java Switch-Anweisung
[Fragen zur Programmierung Geschichte sind Wegthema auf Stack-Überlauf] (https://meta.stackoverflow.com/questions/255424/how-should-the-history- tag-be-disambiguated # comment24818_255425) –
Ich stimme zu, diese Frage als off-topic zu schließen, weil es um Geschichte der Programmierung geht und nicht um Programmierung – Dijkgraaf