Zum Inhalt springen

„Diskussion:Common Intermediate Language“ – Versionsunterschied

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
aus Wikipedia, der freien Enzyklopädie
Letzter Kommentar: vor 8 Jahren von 78.52.124.47 in Abschnitt Objektorientierte Assemblersprache
Inhalt gelöscht Inhalt hinzugefügt
 
Zeile 9: Zeile 9:
Die Bezeichnung '''objektorientierte Assemblersprache''' mag zwar für CIL häufiger verwendet werden, aber ich finde sie irreführend.
Die Bezeichnung '''objektorientierte Assemblersprache''' mag zwar für CIL häufiger verwendet werden, aber ich finde sie irreführend.
--[[Spezial:Beiträge/77.13.101.249|77.13.101.249]] 21:36, 9. Sep. 2015 (CEST)
--[[Spezial:Beiträge/77.13.101.249|77.13.101.249]] 21:36, 9. Sep. 2015 (CEST)

: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 [[Virtuelle Maschine|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 [[Hornklausel]]n 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. --[[Spezial:Beiträge/78.52.124.47|78.52.124.47]] 23:13, 17. Mär. 2017 (CET)

Version vom 18. März 2017, 00:13 Uhr

Objektorientierte Assemblersprache

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