So erstellen Sie eine Programmiersprache: 15 Schritte (mit Bildern)

Inhaltsverzeichnis:

So erstellen Sie eine Programmiersprache: 15 Schritte (mit Bildern)
So erstellen Sie eine Programmiersprache: 15 Schritte (mit Bildern)

Video: So erstellen Sie eine Programmiersprache: 15 Schritte (mit Bildern)

Video: So erstellen Sie eine Programmiersprache: 15 Schritte (mit Bildern)
Video: Tutorial | Anleitung Cpu Kühler Reinigen | Montieren | Wärmeleitpaste | Amd/Intel für Anfänger 2021 2024, Kann
Anonim

Viele Menschen haben Schwierigkeiten oder Frustrationen mit den Programmiersprachen, die sie täglich verwenden. Einige möchten, dass die Dinge abstrakter gehandhabt werden, während andere es nicht mögen, Funktionen zu implementieren, die sie als "Standard" wünschen. Egal, ob Sie ein IT-Profi oder nur ein Hobbyist sind, oft möchten Sie vielleicht eine neue Programmiersprache entwickeln.

Schritte

Erstellen einer Programmiersprache Schritt 1
Erstellen einer Programmiersprache Schritt 1

Schritt 1. Machen Sie sich mit der Technologie vertraut

Sie können keine Programmiersprache erstellen, wenn Sie nicht wissen, wie man einen Computer benutzt.

Erstellen einer Programmiersprache Schritt 2
Erstellen einer Programmiersprache Schritt 2

Schritt 2. Machen Sie sich mit der Terminologie vertraut

Compiler-Autoren verwenden oft unbekannte Terminologie. Informieren Sie sich über Compiler, bevor Sie fortfahren. Stellen Sie sicher, dass Sie alles wissen, was Sie wissen müssen.

Erstellen einer Programmiersprache Schritt 3
Erstellen einer Programmiersprache Schritt 3

Schritt 3. Entscheiden Sie, welches Problem Ihre Sprache löst

Behandelt es ein domänenspezifisches Problem oder handelt es sich um eine Allzwecksprache?

Erstellen einer Programmiersprache Schritt 4
Erstellen einer Programmiersprache Schritt 4

Schritt 4. Denken Sie über die Semantik Ihrer Sprache und deren Konzepte nach

  • Wollen Sie den direkten Zeigerzugriff zulassen oder nicht?
  • Was sind die Datentypen Ihrer Sprache?
  • Handelt es sich um eine statische oder dynamische Sprache?
  • Was ist Ihr Gedächtnismodell? Werden Sie einen Garbage Collector oder eine manuelle Speicherverwaltung verwenden? (Wenn Sie einen Garbage Collector verwenden, bereiten Sie sich darauf vor, einen zu schreiben oder einen vorhandenen an Ihre Sprache anzupassen.)
  • Wie werden Parallelität gehandhabt? Werden Sie ein einfaches Modell zum Einfädeln/Verriegeln oder etwas komplexeres wie Linda oder das Schauspielermodell verwenden? (Seit heutzutage haben Computer mehrere Kerne.)
  • Sind primitive Funktionen in die Sprache eingebettet oder kommt alles aus einer Bibliothek?
  • Was ist das Paradigma oder die Paradigmen Ihrer Sprache? Funktional? Objektorientierten? Prototyp (wie JavaScript)? Aspektorientiert? Vorlagenorientiert? Oder etwas ganz Neues?
  • Wie wird sich Ihre Sprache mit bestehenden Bibliotheken und Sprachen (hauptsächlich C) verbinden? Dieser Punkt ist wichtig, wenn Sie eine domänenspezifische Sprache erstellen.
  • Schließlich werden einige der Antworten auf diese Fragen im zweiten Schritt beantwortet und helfen Ihnen, den nächsten Schritt zu beantworten.
Erstellen einer Programmiersprache Schritt 5
Erstellen einer Programmiersprache Schritt 5

Schritt 5. Denken Sie an bestimmte Aufgaben, die jemand mit Ihrer Sprache ausführen möchte

Zum Beispiel: „Sie möchten vielleicht einen Roboter anweisen, einer Linie zu folgen“oder „Sie möchten möglicherweise relativ portable Desktop-Programme darin erstellen“oder „Sie möchten möglicherweise Webanwendungen damit erstellen“.

Erstellen einer Programmiersprache Schritt 6
Erstellen einer Programmiersprache Schritt 6

Schritt 6. Experimentieren Sie mit Syntaxideen (dem Text der Sprache) für die obigen Beispiele

Achten Sie darauf, Ihre Sprache in der kontextfreien Sprachkategorie oder etwas darin zu belassen. Ihr Parser-Generator und Sie werden es später zu schätzen wissen

Erstellen einer Programmiersprache Schritt 7
Erstellen einer Programmiersprache Schritt 7

Schritt 7. Schreiben Sie eine formale Grammatik für die Syntax

Erstellen einer Programmiersprache Schritt 8
Erstellen einer Programmiersprache Schritt 8

Schritt 8. Entscheiden Sie, ob die Sprache interpretiert oder kompiliert wird

Das bedeutet, dass Ihr Benutzer in der interpretierten Welt Ihr Programm normalerweise in einem Editor bearbeitet und direkt auf dem Interpreter ausführt; In der kompilierten Welt bearbeitet Ihr Benutzer Ihr Programm, kompiliert es, speichert die resultierende ausführbare Datei irgendwo und führt sie aus.

Erstellen einer Programmiersprache Schritt 9
Erstellen einer Programmiersprache Schritt 9

Schritt 9. Schreiben Sie den Front-End-Scanner und -Parser oder suchen Sie ein Tool, das Ihnen dabei hilft

Denken Sie auch darüber nach, wie Ihr Compiler/Interpreter Ihren Benutzer vor fehlerhaften Programmen und Syntaxfehlern warnt

Erstellen einer Programmiersprache Schritt 10
Erstellen einer Programmiersprache Schritt 10

Schritt 10. Verwenden Sie die Parser-Informationen, um den Objektcode oder eine Zwischendarstellung zu schreiben

Lassen Sie den Parser einen AST erstellen, erstellen Sie dann Ihren Objektcode aus dem AST unter Verwendung des Drei-Adress-Codes oder seines großen Bruders SSA, und 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 Informationstabellen für Ihre Klassen erstellen (um Reflexion oder RTTI zu unterstützen)

Erstellen einer Programmiersprache Schritt 11
Erstellen einer Programmiersprache Schritt 11

Schritt 11. Schreiben Sie den Executor oder Codegenerator, der alles zusammenbindet

Erstellen einer Programmiersprache Schritt 12
Erstellen einer Programmiersprache Schritt 12

Schritt 12. Schreiben Sie viele Testprogramme, um die Sprache zu testen

Sie möchten Programme erstellen, die die Lasten Ihrer formalen Grammatik betonen, um sicherzustellen, dass Ihr Compiler alles akzeptiert, was in Ihrer Definition enthalten ist, und alles außerhalb davon ablehnt

Erstellen einer Programmiersprache Schritt 13
Erstellen einer Programmiersprache Schritt 13

Schritt 13. Überlegen Sie, wie der Benutzer seine eigenen Programme debuggen wird

Erstellen einer Programmiersprache Schritt 14
Erstellen einer Programmiersprache Schritt 14

Schritt 14. Wenn Ihre Sprache eine Standardbibliothek verwendet, möchten Sie sie schreiben

Zusammen mit einem Garbage Collector oder anderen Laufzeitfunktionen, wenn Sie es brauchen.

Wenn Sie einen Compiler schreiben, benötigen Sie insbesondere den Code, den das Betriebssystem ausführen wird, um mit der Ausführung des Benutzercodes zu beginnen (z. B. um alle globalen Variablen zuzuweisen)

Erstellen einer Programmiersprache Schritt 15
Erstellen einer Programmiersprache Schritt 15

Schritt 15. Veröffentlichen Sie Ihre Sprache, zusammen mit der Spezifikation dafür und einigen Beispielen, was Sie darin tun können

Vergessen Sie nicht zu dokumentieren, wie Sie vorhandene Bibliotheken und Sprachen integrieren können und wie Sie die Laufzeitfunktionen und/oder die Standardbibliothek verwenden

Video - Durch die Nutzung dieses Dienstes können einige Informationen an YouTube weitergegeben werden

Tipps

  • Beginnen Sie mit dem Entwerfen Ihrer Sprache und schreiben Sie keinen Code, 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üher als später zu ändern.
  • Kennen Sie Ihre Zielplattform (Betriebssystem und Bibliotheken) für Ihren Compiler/Interpreter, schließlich werden Sie sie verwenden und manipulieren.

Warnungen

  • Überlegen Sie, ob Sie wirklich eine neue Sprache benötigen und was Ihre Sprache an Neuem bietet, was andere Sprachen nicht haben (es kann eine Kombination von Funktionen oder eine einzelne Funktion sein).
  • Sprachen schreiben ist schwierig, wenn man nicht weiß, was man tut. Es braucht auch viel Übung.
  • Bereiten Sie sich darauf vor, einige Zeit mit dem Sprachdesign zu verbringen, da Sie keine Chance haben, Ihre Sprache zu ändern, sobald Sie den Compiler geschrieben haben und den Entwurfspunkt überschritten haben.
  • Versuchen Sie nicht, Ihre Funktionen auf eine Vereinigung mehrerer Sprachen zu stützen, indem Sie beispielsweise sagen, dass Ihre Sprache eine Vereinigung von Sprache X, Sprache Y und Sprache Z sein wird. Die Geschichte hat uns gezeigt, dass Sprachen, die auf diese Weise erstellt wurden, niemals Erfolg haben werden. oder jeder würde PL/1 anstelle von etwas programmieren, das auf C basiert.

Empfohlen: