Entwicklung einer programmiersprache

Viele Menschen haben Probleme oder Frustrationen mit den Programmiersprachen, die sie täglich verwenden. Manche mögen abstraktere Dinge, während andere es hassen, Funktionen zu implementieren, die "Standard" sein sollten. Egal, ob Sie ein IT-Profi oder nur ein Bastler sind, oft wünschen Sie sich, Sie könnten eine neue Programmiersprache erstellen.

Schritte

Bildtitel Erstellen Sie eine Programmiersprache Schritt 1
1. Machen Sie sich mit der Technik vertraut. Sie können keine Programmiersprache entwickeln, wenn Sie nicht wissen, wie man einen Computer bedient.
Bildtitel Erstellen Sie eine Programmiersprache Schritt 2
2. Machen Sie sich mit der Terminologie vertraut. Compiler-Autoren verwenden oft unbekannte Terminologie. Lesen Sie mehr über Compiler, bevor Sie fortfahren. Stellen Sie sicher, dass Sie alles wissen, was Sie wissen müssen.
Bildtitel Erstellen Sie eine Programmiersprache Schritt 3
3. Entscheiden Sie, welches Problem Ihre Sprache lösen muss. Ist das Problem, das die Sprache angehen soll, domänenspezifisch oder soll die Sprache für alle Arten von Anwendungen geeignet sein??
Bildtitel Erstellen Sie eine Programmiersprache Schritt 4
4. Denken Sie über die Semantik Ihrer Sprache und ihre Konzepte nach.
  • Ist ein direkter Zeigerzugriff möglich oder nicht??
  • Welche Datentypen hat Ihre Sprache??
  • Ist es eine statische oder dynamische Sprache??
  • Was ist dein Gedächtnismodell?? Verwenden Sie einen Garbage Collector oder eine manuelle Speicherverwaltung?? (Wenn Sie einen Garbage Collector verwenden, denken Sie daran, dass Sie einen schreiben oder einen vorhandenen an Ihre Programmiersprache anpassen müssen.)
  • Wie gehen Sie mit Parallelität um?? Verwenden Sie ein einfaches Einfädel-/Verriegelungsmodell oder etwas Komplexeres wie Linda oder das "Schauspieler"-Modell?? (Weil Computer heute mehrere Prozessoren haben.)
  • Sind einfache Funktionen in die Sprache integriert oder ist alles aus einer Bibliothek?
  • Was ist das Paradigma oder was sind die Paradigmen Ihrer Programmiersprache? Funktional? Objektorientierten? Prototyp (wie JavaScript)? Aspektorientiert? Template-orientiert? Oder etwas ganz Neues?
  • Wie kommuniziert Ihre Sprache mit bestehenden Bibliotheken und Sprachen (hauptsächlich C)? Dieser Punkt ist wichtig, wenn Sie eine domänenspezifische Sprache entwickeln.
  • Am Ende werden einige dieser Fragen im zweiten Schritt beantwortet und Sie müssen den nächsten Schritt beantworten.
    Bildtitel Erstellen Sie eine Programmiersprache Schritt 5
  • 5. Denken Sie an bestimmte Aufgaben, die jemand mit Ihrer Sprache ausführen möchte. Zum Beispiel: einen Roboter einer bestimmten Flugbahn folgen zu lassen oder relativ portable Desktop-Programme oder Webanwendungen zu entwickeln.
    Bildtitel Erstellen Sie eine Programmiersprache Schritt 6
    6. Experimentieren Sie mit Syntaxideen (dem Text der Sprache) für die obigen Beispiele.
    Achte darauf, dass deine Sprache in der kontextunabhängigen Sprachkategorie oder etwas darin bleibt. Euer Parser-Generator und ihr werdet ihm am Ende dankbar dafür sein.
    Bildtitel Erstellen Sie eine Programmiersprache Schritt 7
    7. Schreiben Sie eine formale Grammatik für die Syntax.
    Bildtitel Erstellen Sie eine Programmiersprache Schritt 8
    8. Entscheiden Sie, ob Sie die Sprache interpretieren oder kompilieren möchten. Dies bedeutet, dass der Benutzer bei einem interpretierten Programm ein Programm in einem Editor bearbeitet und es dann direkt vom Interpreter aus startet; sollte das Programm kompiliert werden, wird der Benutzer das Programm in einem Editor schreiben, es kompilieren, die resultierende ausführbare Datei irgendwo speichern und dann ausführen.
    Bildtitel Erstellen Sie eine Programmiersprache Schritt 9
    9. Schreiben Sie den Front-End-Scanner und Parser oder finden Sie ein Tool, das Ihnen dabei helfen kann.
    Denken Sie auch darüber nach, wie Sie Compiler-/Interpreter-Benutzer vor Programmfehlern und Syntaxfehlern warnen.
    Bildtitel Erstellen Sie eine Programmiersprache Schritt 10
    10. Verwenden Sie die Parserdaten zum Schreiben des Objektcodes oder für eine vorläufige Darstellung. Lassen Sie den Parser AST erstellen und erstellen Sie Ihren Objektcode aus dem AST mit "Three Address Code" oder seinem größeren Bruder SSA. Erstellen Sie dann eine Symboltabelle, um Ihre Funktionen, globalen Variablen usw. zu definieren.
    Abhängig von Ihrer Sprache möchten Sie möglicherweise auch virtuelle Zeigertabellen oder Datentabellen für Ihre Klassen erstellen (um Reflexion oder RTTI zu unterstützen).
    Bildtitel Erstellen Sie eine Programmiersprache Schritt 11
    11. Schreiben Sie den Executor oder Codegenerator, der alles zusammensetzt.
    Bildtitel Erstellen Sie eine Programmiersprache Schritt 12
    12. Schreiben Sie viele Testprogramme, um Ihre Sprache zu testen.
    Schreiben Sie insbesondere Programme, die die formale Grammatik Ihrer Sprache herausfordern, um sicherzustellen, dass Ihr Compiler alles akzeptiert, was in Ihre Definition fällt, und alles ablehnt, was außerhalb dieser Definition liegt.
    Bildtitel Erstellen Sie eine Programmiersprache Schritt 13
    13. Überlegen Sie, wie der Benutzer seine eigenen Programme debuggen wird.
    Bildtitel Erstellen Sie eine Programmiersprache Schritt 14
    14. Wenn Ihre Sprache eine Standardbibliothek verwendet, müssen Sie sie schreiben. Zusammen mit einem Garbage Collector oder anderen Laufzeitfunktionen, wenn Sie sie benötigen.
    Insbesondere wenn Sie einen Compiler schreiben, benötigen Sie den Code, der das Betriebssystem ausführt, um den Benutzercode auszuführen (z.: Zuweisung aller globalen Variablen).
    Bildtitel Erstellen Sie eine Programmiersprache Schritt 15
    fünfzehn. Veröffentlichen Sie Ihre Sprache zusammen mit ihrer Spezifikation und einigen Beispielen, was Sie damit machen können.
    Vergessen Sie nicht die Dokumentation zur Integration mit bestehenden Bibliotheken, Sprachen und zur Verwendung der Laufzeitfunktionen und/oder der Standardbibliothek.

    Tipps

    • Beginnen Sie mit dem Entwerfen Ihrer Sprache, ohne Code zu schreiben, bis Sie zufrieden sind und alle (oder die meisten) Fragen oder Probleme im Zusammenhang mit Ihrem Design beantwortet haben, da es einfacher ist, das Design frühzeitig und später zu ändern.
    • Kennen Sie Ihre Zielplattform (Betriebssystem und Bibliotheken) für Ihren Compiler/Interpreter, da Sie diese verwenden und manipulieren werden.

    Warnungen

    • Fragen Sie sich, ob Sie wirklich eine neue Sprache brauchen und was Ihre Sprache Neues hat, was andere Sprachen nicht haben (es könnte eine Kombination von Funktionen oder eine einzelne Funktion sein).
    • Sie müssen Zeit für das Sprachdesign aufwenden, da Sie nicht die Möglichkeit haben, Ihre Sprache zu ändern, nachdem Sie den Compiler geschrieben und die Designphase beendet haben.
    • Eine Programmiersprache zu schreiben ist schwer, wenn man nicht weiß, was man tut. Es braucht auch viel Übung.
    • Versuchen Sie nicht, Funktionen verschiedener Sprachen zu mischen, z. B. eine Sprache als Kombination der Sprachen X, Y und Z. Die Geschichte lehrt uns, dass auf diese Weise erstellte Sprachen nie erfolgreich sind, sonst würden alle in PL/1 programmieren, anstatt in C.

    Notwendigkeiten

    • Geduld.
    • Kenntnisse in Sprachfunktionen und Sprachdesign (evtl. lesen Programming Language Design Concepts by David A. Watt).
    • Kenntnisse über Compilertheorie (weil Sie einen Compiler/Interpreter für Ihre Sprache schreiben und Ihre Implementierung die Referenzimplementierung sein wird).
    • Nützliche Verwendungsmöglichkeiten für Ihre Sprache (wissen Sie, dass einige der am häufigsten verwendeten Sprachen wie C oder Lisp erstellt wurden, um etwas Bestimmtes zu tun, z. B. Unix zu erstellen oder symbolische Berechnungen durchzuführen).

    Оцените, пожалуйста статью