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. Billede med titlen Opret et programmeringssprog Trin 1
1. Blive fortrolig med teknologien. Du kan ikke oprette et programmeringssprog, hvis du ikke ved, hvordan du bruger en computer.
  • Billede med titlen Opret et programmeringssprog trin 2
    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.
  • Billedet med titlen Opret et programmeringssprog Trin 3
    3. Bestem hvilket problem dit sprog løser. Er det at adressere et domæne-specifikt problem, eller er det et almindeligt sprog?
  • Billedet med titlen Opret et programmeringssprog Trin 4
    4. Tænk på semantikken på dit sprog og begreberne det.
  • Skal du tillade direkte pointeradgang eller ej?
  • Hvad er datatyperne på dit sprog?
  • Er det et statisk eller dynamisk sprog?
  • Hvad er din hukommelsesmodel? Skal du bruge en affaldssamler eller manuel hukommelsesstyring? (Hvis du bruger en affaldssamler, skal du forberede sig på at skrive en eller tilpasse en eksisterende til dit sprog.)
  • Hvordan skal man håndtere samtidighed? Skal du bruge en simpel gevindskærings- / låsemodel eller noget mere komplekst som Linda eller skuespillermodellen? (Da i dag har computere flere kerner.)
  • Er der primitive funktioner indlejret på sproget eller vil alt komme fra et bibliotek?
  • Hvad er paradigm eller paradigmer på dit sprog? Funktionelt? Objektorienteret? Prototype (som jаvascript)? Aspect-orienteret? Template orienteret? Eller noget helt nyt?
  • Hvordan går dit sprog til at interface med eksisterende biblioteker og sprog (hovedsagelig c)? Dette punkt er vigtigt, hvis du opbygger et domæne-specifikt sprog.
  • Endelig vil nogle af svarene på disse spørgsmål blive besvaret af det andet trin og vil hjælpe dig med at besvare det næste skridt.
  • Billedet med titlen Opret et programmeringssprog Trin 5
    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 `.
  • Billedet med titlen Opret et programmeringssprog Trin 6
    6. Eksperimentere med syntaksideer (sprogets tekst) for ovenstående eksempler.
  • Pas på at holde dit sprog i den kontekstfrie sprogkategori eller noget inde i det. Din parser generator og du vil sætte pris på det senere.
  • Billede med titlen Opret et programmeringssprog trin 7
    7. Skriv en formel grammatik til syntaksen.
  • Billedet med titlen Opret et programmeringssprog Trin 8
    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.
  • Billedet med titlen Opret et programmeringssprog Trin 9
    9. Skriv den forreste ende scanner og parser eller find et værktøj, der hjælper dig med dette.
  • Tænk også på, hvordan din compiler / tolk vil advare din bruger om fejlagtige programmer og syntaksfejl.
  • Billedet med titlen Opret et programmeringssprog Trin 10
    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.
  • Afhængigt af dit sprog kan du også også gerne oprette virtuelle peger tabeller eller informationstabeller til dine klasser (for at understøtte refleksion eller RTTI).
  • Billedet med titlen Opret et programmeringssprog Trin 11
    11. Skriv eksekutoren eller kodegeneratoren, der vil binde alt sammen.
  • Billedet med titlen Opret et programmeringssprog Trin 12
    12. Skriv mange testprogrammer for at teste sproget.
  • Du vil oprette programmer, der understreger byrderne i din formelle grammatik for at se, at din compiler accepterer alt, hvad der er inde i din definition og afviser alt, hvad der er uden for det.
  • Billedet med titlen Opret et programmeringssprog trin 13
    13. Overvej, hvordan brugeren vil debugere deres egne programmer.
  • Billedet med titlen Opret et programmeringssprog trin 14
    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.
  • Specifikt, hvis du skriver en compiler, skal du bruge den kode, som operativsystemet vil udføre for at begynde at køre brugerkode (for eksempel at tildele alle globale variabler).
  • Billedet med titlen Opret et programmeringssprog Trin 15
    15. Udgiv dit sprog sammen med specifikationen for det og nogle eksempler på, hvad du kan gøre i det.
  • Glem ikke at dokumentere, hvordan du kan integrere med eksisterende biblioteker, sprog og hvordan du bruger Runtime-funktionerne og / eller Standardbiblioteket.
  • 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 :
    Lignende