Was ist denn das bitte für ein Wiki? Wieso unterscheiden die dort noch mal zwischen Semantik in der Informationstheorie und Semantik in der Informatik? Sind das Philosophen
bahnhof: nee, dann hätten's wohl kaum auch noch Semantik in der Sprachphilosophie erwähnt :lol
oder Informatiker? Na was soll's, nach den Erklärungen dort, hätte ich von Semantik auch keine Ahnung, also ist's in vielerlei Hinsicht kein Wunder, wenn ständig solche Fragen kommen oder diese Dinger schlicht als Bug bezeichnet werden.
...aber was genau der Aufgabensteller wollte, darüber kann man wohl ohnehin nur spekulieren.
Na eine genaue Definition von semantischen Fehlern, nehm ich mal an (Die Frage war ja deutlich genug). Aber um eben eine solche Definition zu finden, müssen Fehler im Allgemeinen erst mal spezifiziert (klassifiziert) werden. Genau das habe ich im Prinzip mit deinen Beispielen gemacht.[WR]Semantische Fehler sind kompilierbar und stören nur den Daten-bzw. Informationsfluss zur Laufzeit, jedoch nicht den eigentlichen Programmablauf.[/WR]
Evtl. hilft beim Verständnis auch nur einschlägige Erfahrung mit einem semantischen Fehler: Selber einen produzieren, ohne zu wissen wann und wo (das ist einfacher als man denkt). Evtl. macht er sich irgendwann sogar bemerkbar, je früher desto besser, ansonsten viel Glück beim Beseitigen
.
BTW.: Wenn man z.B. ein Programm dadurch zum Absturz bringen kann, indem man ungültige Parameter an eine Methode übergibt, ist das ebenfalls ein Bug, jedoch kein semantischer Fehler. Wenn man z.B. ein Pluginsystem dadurch zum Absturz bringen kann, indem man in der "init()"-Runde eine Ausnahme wirft (in Java eine RTE), ist das ebenfalls ein Bug, jedoch kein semantischer Fehler. Wenn man versucht semantische Fehler durch das Fangen aller möglichen Ausnahmen ("catch(Throwable t) {}") in diversen Programmabschnitten auszumerzen ist das Aberglaube (bzw. ein "dummer" Fehler).