Objekt Orientierung in Assembler?



  • Guten Tag,

    ich komme grad von der Berufsschule und habe heute von einem Lehrer etwas gehört das mich ins grübeln brachte. Und zwar meinte er das es Objektorientierten Assembler gibt o.O

    stimmt das?



  • OOP "gibt es" nicht und "gibt es nicht" nicht. Sie ist ein Konzept an das man sich in allen vielen Sprachen halten kann. Bei Brainf*ck könnt's schwierig werden ... 😉



  • Naja für mich ist eine ObjektOrientierung eigentlich Polymorphie, Kapselung und Vererbung.
    Er meinte es würde ObjektOrientierten Assembler geben und ich denke einfach nicht das es möglich ist eine Klasse in Assembler zu realisieren bzw eine Ordentliche Kapselung oder Vererbung.



  • TASM erlaubt OOP. Für MASM gibt es ebenfalls entsprechende macros: ObjAsm.



  • danke sehr 🙂 mehr wollt ich nicht wissen .



  • Wie Swordfish schon gesagt hat, ist OOP nur ein Konzept. Ob eine Programmiersprache das direkt unterstützt, ist eine andere Frage. Du kannst das Typsystem von C++ mit Assembler komplett nachbilden, nur eben komplett ohne Sprachunterstützung.



  • Mechanics schrieb:

    Wie Swordfish schon gesagt hat, ist OOP nur ein Konzept. Ob eine Programmiersprache das direkt unterstützt, ist eine andere Frage. Du kannst das Typsystem von C++ mit Assembler komplett nachbilden, nur eben komplett ohne Sprachunterstützung.

    Das kann jeder Compiler ... 😉



  • Scheppertreiber schrieb:

    Mechanics schrieb:

    Wie Swordfish schon gesagt hat, ist OOP nur ein Konzept. Ob eine Programmiersprache das direkt unterstützt, ist eine andere Frage. Du kannst das Typsystem von C++ mit Assembler komplett nachbilden, nur eben komplett ohne Sprachunterstützung.

    Das kann jeder Compiler ... 😉

    Richtig. Allein daran sieht man, dass man in Assembler sowohl objektorientiert, als auch funktional programmieren kann 😉



  • Wenn man denn unbedingt will ... 🕶



  • Es gibt sie, allerdings sind die dann nicht mehr wirklich low-level an die Hardware gebunden - das ist ja genau, was ursprünglich einen Assembler ausgemacht hat. Um ein Beispiel eines OOP Assemblers zu geben: Common Intermediate Language. Wikipedia: CIL is an object-oriented assembly language, and is entirely stack-based. Its bytecode is translated into native code or executed by a virtual machine.

    Praktisch niemand programmiert direkt mit Assembler, noch weniger mit OOP Assembler, da man dann sowieso gleich mit C++ oder C# oder sonst was programmieren sollte. CIL dient mit seiner Unterstützung aller OOP Konzepte vor allem der Bereitstellung eines gemeinsamen ABIs. Trotzdem kannst du mit ilasm theoretisch direkt programmieren.



  • /rant/ schrieb:

    [...]
    Praktisch niemand programmiert direkt mit Assembler, noch weniger mit OOP Assembler, da man dann sowieso gleich mit C++ oder C# oder sonst was programmieren sollte. [...]

    Bitte?



  • zeusosc schrieb:

    /rant/ schrieb:

    [...]
    Praktisch niemand programmiert direkt mit Assembler, noch weniger mit OOP Assembler, da man dann sowieso gleich mit C++ oder C# oder sonst was programmieren sollte. [...]

    Bitte?

    Ja? Ist etwas unklar? 🙂



  • Ich muss dir Wiedersprechen das man gleich in c++ und erst recht in c# programmieren "sollte".

    Es gibt genug beispiele warum man z.b. bei numerischen berechnungen mind. inline asm mit einem architekturswitch verwenden sollte...

    grüße 🙂



  • Ahh. Ja das ist mir schon klar; ich habe das auf die Objektorientierung bezogen. Denn es macht fast nie Sinn, objektorientierte Konzepte in Assembler nachzubilden. Dass es aber Fälle gibt, bestreite ich nicht^^


Anmelden zum Antworten