Goto Fail – Zu einfach, um sicher zu sein?

In der Programmierung gibt es verschiedenste Arten von Anweisungen: So gibt es beispielsweise Schleifen, die Codezeilen wiederholen, bedingte Anweisungen, die nur unter bestimmten Umständen durchgeführt werden, und Goto-Anweisungen, die von einer Stelle im Programm zu einer anderen springen.

Goto-Anweisungen sind ein umstrittenes Thema: Obwohl sie sehr leicht zu verwenden sind, gibt es viele Expert*innen, die von ihnen abraten. Aber was macht Goto-Anweisungen so gefährlich? Was kann man statt Goto-Anweisungen verwenden? Und wie führte eine Goto-Anweisung zu einem Fehler, der Hacker*innen Angriffe auf Apple-Geräte ermöglichte? In der aktuellen Folge der Softwarekatastrophen will Jannis zusammen mit Niklas, einem Studenten der Informatik, diese Fragen klären und über die Vor- und Nachteile von Goto-Anweisungen reden.

Freitag, 4. November 2022 um 9 Uhr auf 104.8 UKW und im Stream

Shownotes

Intro/Outro produced by Henri Koch

Interviewpartner: Niklas, Bachelorstudent für Informatik am KIT

Moderation und Produktion: Jannis, Masterstudent für Wissenschaft-Medien-Kommunikation am KIT

Die Podcastfolge behandelt die Funktionsweise, Vorteile und Nachteile von Goto. Als wichtiges, historisches Beispiel wird der Apple Bug aus dem Jahr 2014 vorgestellt. Auch wird auf die strukturierte Programmierung genauer eingegangen.
Leichte Programmiervorkenntnisse werden für diese Folge empfohlen.

Weiterführende Quellen zum Podcast:

  • Eine Studie, die untersucht, ob Goto-Anweisungen in Programmen von Studierenden die Codequalität wirklich vermindert:

Barbara A Benander, Narasimhaiah Gorla und Alan C Benander. „An empirical study of the use of the goto statement“. In: Journal of Systems and Software 11.3 (1990),
S. 217–223.

  • Die wohl bekannteste Veröffentlichung zu dem Thema. Dijkstra wird auch zugeschrieben, dass er der Erste war, der die Goto-Anweisung kritisiert hat:

Edsger W Dijkstra. „Letters to the editor: go to statement considered harmful“. In: Communications of the ACM 11.3 (1968), S. 147–148.

  • Eine Zusammenfassung von Argumenten für und gegen Goto-Anweisungen:

Donald E Knuth. „Structured programming with go to statements“. In: ACM Computing Surveys (CSUR) 6.4 (1974), S. 261–301.

  • Weitere Informationen zu der Sicherheitslücke bei Apple:

Ben Schwan. Hintergründe zur schweren SSL-Sicherheitslücke bei Apple. Heise. Feb.
2014. url: https://m.heise.de/mac-and-i/artikel/Hintergruende-zur-schweren-SSL-Sicherheitsluecke-bei-Apple-2121951.html?seite=all

  • Eine Studie, die öffentlichen Quellcode auf Github darauf untersucht hat, wie und für was Goto-Anweisungen in C-Programmen eingesetzt werden:

Meiyappan Nagappan u. a. „An empirical study of goto in C code from GitHub re-
positories“. In: Proceedings of the 2015 10th Joint Meeting on Foundations of Software
Engineering. 2015, S. 404–414.

Teaser Bild

Original Photo von: Greg Montani

Überarbeitet von: Jannis Gatidis

Link: https://pixabay.com/de/users/gregmontani-1014946/