Diskussion:Common Intermediate Language

aus Wikipedia, der freien Enzyklopädie
Letzter Kommentar: vor 7 Jahren von 78.52.124.47 in Abschnitt Korrektheit des Codes (Manipulation)
Zur Navigation springen Zur Suche springen

Objektorientierte Assemblersprache

[Quelltext bearbeiten]

Was zur Hölle soll das denn sein?

Wenn es eine Assemblersprache ist, kann es nicht objektorientiert sein, und umgekehrt.

Die weitere Beschreibung hört sich für mich so an wie der Java-Bytecode, nur dass es für CIL neben einem Laufzeit-System (JIT-Compiler + Interpreter) auch noch einen richtigen Compiler gibt. Kann man sich das so vorstellen?

Die Bezeichnung objektorientierte Assemblersprache mag zwar für CIL häufiger verwendet werden, aber ich finde sie irreführend. --77.13.101.249 21:36, 9. Sep. 2015 (CEST)Beantworten

Zunächst mal ist eine Assemblersprache eine formale Sprache (im Allgemeinen mit direktem Bezug zur Struktur eines Bytecode-Befehlssatzes), die Programmabläufe entsprechend der Logik einer (realen oder virtuellen) Maschine beschreibt. Im Falle realer Maschinen wie x86 ist der Assemblercode natürlich gerade das, was man in der technischen Informatik darüber lernt – eine Programmiersprache auf extrem niedriger Abstraktionsebene und natürlich nicht objektorientiert, weil es keine reale Maschine gibt, die objektorientiert arbeitet. Es gibt aber sehr wohl virtuelle Maschinen (die Java Virtual Machine zum Beispiel), die das können. Und deren Bytecode besitzt in der Tat objektorientierte Beschreibungselemente. Gäbe es eine Assemblersprache dieses Bytecodes, besäße er gleichfalls diese objektorientierten Beschreibungselemente. Es gibt sogar virtuelle Maschinen, die völlig andere Programmierparadigmen direkt umsetzen. Für Prolog zum Beispiel gibt es Interpreter (≈ virtuelle Maschinen), die auf Hornklauseln repräsentierendem Bytecode arbeiten. Auch das ist natürlich ein Verarbeitungsmodell, das mit realen Rechnern nicht viel zu tun hat, wobei man in den 80er-Jahren tatsächlich versuchte, Hardware zur direkten Ausführung von Prolog-Programmen zu konstruieren (en:Fifth generation computer), wenngleich mit mäßigem Erfolg. In diesem Sinne ist eine „objektorientierte Assemblersprache“ keineswegs ein Widerspruch in sich, wobei der Begriff an sich, wie man sieht, erklärungsbedürftig ist und seine Eignung für den Beginn des Artikels daher bezweifelt werden kann. --78.52.124.47 23:13, 17. Mär. 2017 (CET)Beantworten

Korrektheit des Codes (Manipulation)

[Quelltext bearbeiten]

„Während der Übersetzung werden auch die Sicherheit und die Korrektheit des Codes (Manipulation) überprüft.“

Das ist vermutlich richtig, aber ich störe mich am Begriff „Korrektheit des Codes“. In der Informatik versteht man unter Korrektheit (eines Programms oder Programmcodes) eine andere Eigenschaft, als hier gemeint ist. Die „normalerweise“ verstandene Korrektheit kann (nach dem Satz von Rice) nicht überprüft werden; worum es hier geht, ist vielmehr die Integrität des Codes. --78.52.124.47 23:24, 17. Mär. 2017 (CET)Beantworten