Objektorientierte Programmierung in ANSI C

ANSI C goes OOP
Kommentare

Objektorientierte Programmierung (OOP) in Sprachen, welche die entsprechenden Konzepte unterstützen, ist relativ einfach. Wie steht es aber mit Sprachen, die das nicht tun? Kann man in denen nicht objektorientiert programmieren? Yes, we can! Objektorientiertes Programmieren ist eher ein Programmierstil als eine Spracheigenschaft, der Nutzen ist dabei nicht an bestimmte Sprachen gebunden. Am Beispiel von ANSI C wird gezeigt, wie sich mit dieser Sprache objektorientierte Techniken realisieren lassen.

OOP ist das Programmierparadigma, das spätestens seit den 90er Jahren mit dem Aufkommen von Java den Massenmarkt endgültig erobert hat. Da es die meisten moderneren Programmiersprachen (C++, Java, C#, Python) syntaktisch unterstützen oder, wie im Fall von Java und Scala, sogar erzwingen, begegnet man oft der Auffassung, OOP wäre die Eigenschaft bestimmter Sprachen. Tatsache ist, dass OOP durch bestimmte syntaktische Eigenschaften einiger Sprachen unterstützt wird. Sprachen wie Java und die „Mutter“ der OOP, Smalltalk, erzwingen die Verwendung von OOP, andere, wie z. B. C++ und Python erlauben sie. Interessant ist in diesem Zusammenhang, dass eine sehr moderne Sprache (Googles Go) vieles von dem, was gemeinhin als definierendes Merkmal von OOP gesehen wird, nicht direkt unterstützt. Ähnliches gilt für JavaScript. Das führt oft zu der Ansicht, dass OOP und ihre Vorteile bei der Benutzung dieser Sprachen nicht genutzt werden könnte. Tatsache ist, dass OOP zunächst eine Denkweise und ein Programmierstil ist, der nicht an eine bestimmte Sprache gebunden ist, sondern mehr mit der Modellierung von Daten und Schnittstellen zu tun hat. Große Bibliotheken wie GTK sind z. B. komplett in C implementiert und folgen trotzdem dem OOP-Paradigma. Am Beispiel von C soll daher in diesem Artikel demonstriert werden, wie OOP auch mit einer Sprache implementiert werden kann, die dieses Paradigma syntaktisch direkt nicht unterstützt. Gezeigt werden soll dabei, wie Konzepte von OOP trotz fehlender Sprachunterstützung vollwertig umgesetzt werden können. Nebenbei erhält der Leser dabei einen Einblick, was die Implementierung nach OO „unter der Haube“ bedeutet. Die Sprache C wurde gewählt, da das Beispiel von GTK zeigt, dass eine objektorientierte Programmierung mit C durchaus möglich und gängig ist, und andererseits C als sehr minimale Sprache in vielen Einsatzbereichen (Microcontroller etc.) genutzt werden kann, wo etwa C++ nicht verfügbar ist.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -