Cobra ist eine imperative, hochsprachliche, objektorientierte Programmiersprache, die Charles Esterbrook entworfen hat. Die erste Version erschien 2006, die öffentliche Veröffentlichung unter der MIT-Lizenz folgte 2008. Cobra läuft auf .NET und Mono und kombiniert Python-artige Einrückung mit statischer Typisierung, Design-by-Contract und eingebauten Unit-Tests.

Compiler und erste Schritte

Der Cobra-Compiler übersetzt Quellcode in C# und kompiliert diesen dann mit dem .NET-Compiler weiter. Ein Hallo-Welt-Programm:

class Hallo
    def main
        print 'Hallo, Cobra!'

Cobra nutzt Einrückung statt Klammern, verlangt aber Typangaben für Parameter und Rückgabetypen.

Kernkonzepte

  • Design-by-Contract: Aus Eiffel übernommen — Methoden deklarieren Vorbedingungen (require), Nachbedingungen (ensure) und Klasseninvarianten (invariant), die zur Laufzeit geprüft werden.
  • Statische und dynamische Typisierung: Standardmäßig statisch, einzelne Variablen können mit dynamic zur Laufzeit aufgelöst werden.
  • Eingebaute Unit-Tests: Testfälle stehen direkt im Quellcode — test-Blöcke innerhalb von Klassen werden beim Kompilieren ausgeführt.
  • Nil-Tracking: Der Compiler verfolgt zur Compile-Zeit, ob Variablen nil (null) sein können, und verhindert so viele NullReference-Fehler.
  • Einfluss von Objective-C: Benannte Parameter und Methoden-Signaturen erinnern an Objective-C-Stil.

Praxis-Tipps

  • Die Contract-Prüfung macht Cobra interessant für sicherheitskritische Anwendungen, bei denen Zusicherungen dokumentiert und erzwungen werden sollen.
  • Das Projekt ist seit etwa 2015 inaktiv; die Website cobra-language.com ist offline, der Quellcode aber weiterhin verfügbar.
  • Für Python-Entwickler ist die Einrückung vertraut; die Typannotationen ähneln C#.

Verwandte Grundlagen: Python-Befehle, C#-Befehle, Eiffel-Befehle, Compiler sowie die .NET-Alternativsprachen Boo-Befehle und Nemerle-Befehle.