Universität von Waterloo
04.12.2019, 20:32 Uhr
C-for-all: C mit modernen Sicherheitsfunktionen
C-for-all ist ein Open-Source-Projekt, das ISO C um moderne Sicherheits- und Produktivitätsfunktionen erweitern will und gleichzeitig die Rückwärtskompatibilität mit C und seinen Programmierern gewährleisten soll.
C-for-all wurde entwickelt, um einen Funktionsumfang zu haben, der eng auf dem C-Programmierparadigma basiert (nicht objektorientiert), und diese Funktionen schrittweise zu einer bestehenden C-Code-Basis hinzugefügen zu können.
Die Entwickler des Projekts an der Universität von Waterloo sehen C-for-all im Bezug auf C in vielerlei Hinsicht wie Scala zu Java. Es bietet bietet ein Forschungsvehikel für neue Typisierungs- und Kontrollflussfunktionen auf der Grundlage einer sehr beliebten Programmiersprache, die eine sofortige Verbreitung ermöglicht.
Traditionelle Sprachen, Fortran 18, Cobol 14 und Ada 12, wie C∀, verfolgen einen evolutionären Ansatz, indem sie moderne Funktionen hinzufügen und Probleme im Rahmen der Sprache beheben. Neuere Sprachen, D, Go, Java und Rust, verfolgen einen revolutionären Ansatz und generieren neue Sprachen ohne Rückwärtskompatibilität. Alle diese Sprachen haben eine andere Syntax und Semantik als C, arbeiten nur indirekt mit C zusammen und sind aufgrund der restriktiven Speicherverwaltung oder Garbage Collection keine Systemsprachen.
Infolgedessen gibt es eine erhebliche Lernkurve, um in diese Sprachen zu wechseln, und der C-Legacy-Code muss neu geschrieben werden. Während C++, wie C-for-all, einen evolutionären Ansatz zur Erweiterung von C verfolgt, bedeuten die komplexen und voneinander abhängigen Funktionen von C++ (z.B. Overloading, objektorientiert, Templates), dass idiomatischer C++-Code von C schwer zu verwenden ist, und C-Programmierer erhebliche Anstrengungen unternehmen müssen, um C++ zu lernen. Daher können Umschreibungs- und Umschulungskosten für diese Sprachen (auch C++) für Unternehmen mit einer großen C-Softwarebasis unerschwinglich sein. C-for-all umgeht diese Probleme mit seiner Rückwärtskompatibilität und seinem orthogonalen Funktionsumfang.
Mehr zu C-for-all erfahren Sie auf dieser Seite der Programming Languages Group der University of Waterloo.