C++ 2 Min. Lesezeit

Cpp2 für C++ erfüllt einen ähnlichen Zweck wie TypeScript für JavaScript

Diesen Artikel teilen
Cpp2 for C++ serves a similar purpose to TypeScript for JavaScript

TypeScript wurde entwickelt, um mehrere zentrale Herausforderungen zu lösen, mit denen JavaScript-Entwickler insbesondere bei großen Anwendungen konfrontiert sind. Tatsächlich istTypeScripteine Obermenge von JavaScript, die optionale statische Typisierung und weitere Funktionen einführt, um die Entwicklung insbesondere großer Anwendungen zu verbessern. Seine Geschichte spiegelt den wachsenden Bedarf an besseren Werkzeugen und mehr Struktur in der JavaScript-Entwicklung wider.

Browser verstehen TypeScript nicht direkt. Deshalb muss TypeScript zunächst in gültiges JavaScript transpiliert werden, bevor der Code im Browser ausgeführt werden kann.

CppFront, entwickelt von Herb Sutter, ist ein experimentelles Werkzeug zur Erprobung vonCpp2, einer alternativen Syntax für C++, die Benutzerfreundlichkeit, Lesbarkeit und Sicherheit der Sprache verbessern soll. Ähnlich wieTypeScripterweitertJavaScriptdurch Typsicherheit, moderne Syntax und Fehlererkennung,CppFrontsoll C++ verbessern und zugleich die Kompatibilität mit bestehendem Code und vorhandenen Bibliotheken bewahren.

Und genau wie TypeScript istCpp2darauf ausgelegt, zunächstCpp2-Code in standardmäßigenC++-Codeumzuwandeln, bevor er kompiliert wird. Das Werkzeug, das dies ermöglicht, heißtCppFront. Es übernimmt damit eine ähnliche Rolle wie der TypeScript-Compiler.

Herb Sutter stellte Cpp2 vor zwei Jahren vor und arbeitet weiterhin aktiv daran:

https://youtu.be/ELeZAKCN4tY?si=yurZts-nUrx1-twt

CppFront wurde eingeführt, damit Entwickler eine sicherere und ausdrucksstärkere Art der C++-Programmierung erproben können. Der Ablauf sieht folgendermaßen aus:

1 – Parsen der Cpp2-Syntax

Beim Schreiben von Cpp2-Code verwenden Sie eine einfachere und sicherere Syntax als im traditionellen C++. Cpp2 soll typische C++-Fallstricke reduzieren und führt dafür unter anderem explizite Ownership-Modelle, sichere Pointer und moderne Kontrollstrukturen ein. Cpp2-Code bildet weiterhin C++-Konstrukte ab, seine Syntax fördert jedoch eine sicherere und besser wartbare Programmierung.

2 – Übersetzung von Cpp2 nach C++ durch CppFront

CppFront nimmt diesen Cpp2-Code und übersetzt ihn in standardkonformen C++-Code, der C++20 oder älteren Standards entspricht. Dabei werden Cpp2-Konstrukte auf ihre jeweiligen C++-Entsprechungen abgebildet. Das Verhalten bleibt erhalten, während Lesbarkeit und Sicherheit verbessert werden. Beispielsweise werden Contracts und Pattern Matching aus Cpp2 so in C++-Code übertragen, dass bestehende C++-Compiler sie verarbeiten können.

3 – Kompilieren mit einem Standard-C++-Compiler

Nachdem CppFront den Cpp2-Code in C++ umgewandelt hat, können Sie ihn mit jedem gängigen C++-Compiler wie GCC, Clang oder MSVC kompilieren. Dadurch bleibt die Kompatibilität mit dem bestehenden C++-Ökosystem sowie dessen Bibliotheken und Werkzeugen erhalten.

DieserSource-to-Source-Übersetzungsansatzermöglicht Cpp2 die Rückwärtskompatibilität mit C++ und erlaubt Entwicklern gleichzeitig, schrittweise eine sicherere Syntax einzuführen – ähnlich wie TypeScript, das zu JavaScript kompiliert wird.

Fazit

TypeScript begann als experimentelles Projekt; Microsoft kündigte 2012 offiziell die erste öffentliche Version an. Heute ist TypeScript ein zentraler Bestandteil des JavaScript-Ökosystems und bietet Entwicklern leistungsfähige Werkzeuge für skalierbare und wartbare Anwendungen. Sein Wachstum spiegelt einen allgemeinen Trend in der Softwareentwicklung wider, bei dem Typsicherheit und Entwicklerproduktivität zunehmend an Bedeutung gewinnen.

Ich hoffe, dass Cpp2 einen ähnlichen Weg wie TypeScript einschlägt, in den kommenden Jahren breite Akzeptanz findet und dazu beiträgt, die C++-Entwicklung einfacher und sicherer zu machen.

Diesen Artikel teilen