Sådan oprettes et programmeringssprog
Mange mennesker har vanskeligheder eller frustrationer med de programmeringssprog, de bruger hver dag. Nogle vil have ting, der skal håndteres mere abstrakt, mens andre ikke kan lide implementeringsfunktioner, de ønsker, var `standard`. Uanset om du er en it-professionel eller bare en hobbyist, mange gange kan du finde dig selv, der ønsker at oprette et nyt programmeringssprog.
Trin
1. Blive fortrolig med teknologien. Du kan ikke oprette et programmeringssprog, hvis du ikke ved, hvordan du bruger en computer.

2. Blive bekendt med terminologien. Compiler forfattere bruger ofte ukendt terminologi. Læs op på kompilatorer, inden du fortsætter. Sørg for at vide alt, hvad du behøver at vide.

3. Bestem hvilket problem dit sprog løser. Er det at adressere et domæne-specifikt problem, eller er det et almindeligt sprog?

4. Tænk på semantikken på dit sprog og begreberne det.

5. Tænk på nogle specifikke opgaver, som nogen vil gerne kunne udføre med dit sprog. For eksempel vil de måske lede en robot til at følge en linje `eller` de vil måske oprette relativt bærbare desktop-programmer i det `eller` de vil måske gerne oprette webapplikationer med det `.

6. Eksperimentere med syntaksideer (sprogets tekst) for ovenstående eksempler.

7. Skriv en formel grammatik til syntaksen.

8. Bestem, om sproget vil blive fortolket eller kompileret. Det betyder, at din bruger i den fortolkede verden typisk vil redigere dit program i en editor, og køre det direkte på tolken - mens du er i den kompilerede verden, vil din bruger redigere dit program, kompilere det, gemme det resulterende eksekverbare et sted og køre det.

9. Skriv den forreste ende scanner og parser eller find et værktøj, der hjælper dig med dette.

10. Brug parseroplysningerne til at skrive objektkoden eller en mellemliggende repræsentation. Har parseren oprettet en AST, og lav derefter din objektkode fra AST ved hjælp af tre adressekode eller dens Big Brother SSA, og lav derefter et symboltabel for at definere dine funktioner, globale variabler osv.

11. Skriv eksekutoren eller kodegeneratoren, der vil binde alt sammen.

12. Skriv mange testprogrammer for at teste sproget.

13. Overvej, hvordan brugeren vil debugere deres egne programmer.

14. Hvis dit sprog bruger et standardbibliotek, vil du gerne skrive det. Sammen med en affaldssamler eller andre runtime funktioner, hvis du har brug for det.

15. Udgiv dit sprog sammen med specifikationen for det og nogle eksempler på, hvad du kan gøre i det.
Video
Ved at bruge denne service kan nogle oplysninger deles med YouTube.
Tips
Start med at designe dit sprog og ikke skrive nogen kode, indtil du er tilfreds og har besvaret alle (eller de fleste) af de spørgsmål eller problemer, der er relateret til dit design, da det er lettere at ændre designet tidligere end senere.
Kend din målplatform (operativsystem og biblioteker) til din compiler / tolk, jo jo skal bruge den og manipulere det.
Advarsler
Tænk, hvis du virkelig har brug for et nyt sprog, og hvad dit sprog har nyt, at andre sprog ikke har (det kan være en kombination af funktioner eller en enkelt funktion).
At skrive sprog er svært, hvis du ikke ved hvad du laver. Det kræver også en masse øvelse.
Forbered dig på at bruge lidt tid i sprogdesign, da du ikke har en chance for at ændre dit sprog, når du har skrevet compiler og forbi designpunktet.
Forsøg ikke at basere dine funktioner i en union af flere sprog, som at sige, at dit sprog vil være en union af sprog x, sprog y og sprog z. Historien har vist os, at sprog, der er skabt på en sådan måde, aldrig vil finde succes, eller alle ville være programmering PL / 1 i stedet for noget baseret på C.
Ting du skal bruge
- Tålmodighed.
- Viden om sprogfunktioner og sprogdesign (du vil muligvis læse programmeringssprog designkoncepter fra David A. Watt).
- Viden om compiler teori (da du vil skrive en compiler / tolk til dit sprog og din implementering vil være referenceimplementeringen).
- Bruger til dit sprog (husk at nogle af de mest brugte sprog som C eller LISP blev oprettet for at gøre noget, der er specifikt som at skabe UNIX eller gøre symbolsk beregning).
Del på sociale netværk :