Sådan oprettes et programmeringssprog: 15 trin (med billeder)

Indholdsfortegnelse:

Sådan oprettes et programmeringssprog: 15 trin (med billeder)
Sådan oprettes et programmeringssprog: 15 trin (med billeder)

Video: Sådan oprettes et programmeringssprog: 15 trin (med billeder)

Video: Sådan oprettes et programmeringssprog: 15 trin (med billeder)
Video: Sådan laver man FAKE BRÆK! | Akavet 2024, April
Anonim

Mange mennesker har problemer eller frustrationer over de programmeringssprog, de bruger hver dag. Nogle ønsker, at tingene skal håndteres mere abstrakt, mens andre ikke kan lide at implementere funktioner, som de ønsker var 'standard'. Uanset om du er en IT -professionel eller bare en hobbyist, kan du ofte finde på at ville oprette et nyt programmeringssprog.

Trin

Opret et programmeringssprog Trin 1
Opret et programmeringssprog Trin 1

Trin 1. Bliv fortrolig med teknologien

Du kan ikke oprette et programmeringssprog, hvis du ikke ved, hvordan du bruger en computer.

Opret et programmeringssprog Trin 2
Opret et programmeringssprog Trin 2

Trin 2. Bliv fortrolig med terminologien

Compilerskribenter bruger ofte ukendt terminologi. Læs op på kompilatorer, før du fortsætter. Sørg for at vide alt, hvad du har brug for at vide.

Opret et programmeringssprog Trin 3
Opret et programmeringssprog Trin 3

Trin 3. Beslut, hvilket problem dit sprog løser

Løser det et domænespecifikt problem, eller er det et generelt sprog?

Opret et programmeringssprog Trin 4
Opret et programmeringssprog Trin 4

Trin 4. Tænk over semantikken i dit sprog og begreberne i det

  • Vil du tillade direkte markøradgang eller ej?
  • Hvad er datatyperne for dit sprog?
  • Er det et statisk eller dynamisk sprog?
  • Hvad er din hukommelsesmodel? Vil du bruge en affaldssamler eller manuel hukommelsesstyring? (Hvis du bruger en affaldssamler, skal du forberede dig på at skrive en eller tilpasse en eksisterende til dit sprog.)
  • Hvordan håndterer man samtidighed? Vil du bruge en simpel gevind-/låsemodel eller noget mere komplekst som Linda eller skuespillermodellen? (Da computere i dag har flere kerner.)
  • Er der primitive funktioner indlejret i sproget, eller kommer alt fra et bibliotek?
  • Hvad er paradigmet eller paradigmerne for dit sprog? Funktionel? Objektorienteret? Prototype (som JavaScript)? Aspektorienteret? Skabelonorienteret? Eller noget helt nyt?
  • Hvordan vil dit sprog interagere med eksisterende biblioteker og sprog (hovedsageligt C)? Dette punkt er vigtigt, hvis du bygger et domænespecifikt 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 trin.
Opret et programmeringssprog Trin 5
Opret et programmeringssprog Trin 5

Trin 5. Tænk på nogle specifikke opgaver, som nogen gerne vil kunne udføre med dit sprog

For eksempel 'de vil måske lede en robot til at følge en linje' eller 'de vil måske oprette relativt bærbare desktop -programmer i den' eller 'de vil måske oprette webapplikationer med det'.

Opret et programmeringssprog Trin 6
Opret et programmeringssprog Trin 6

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

Vær omhyggelig med at beholde dit sprog i den kontekstfrie sprogkategori eller noget inde i det. Din parser generator, og du vil sætte pris på det senere

Opret et programmeringssprog Trin 7
Opret et programmeringssprog Trin 7

Trin 7. Skriv en formel grammatik for syntaksen

Opret et programmeringssprog Trin 8
Opret et programmeringssprog Trin 8

Trin 8. Beslut, om sproget skal tolkes eller kompileres

Det vil sige, at i den fortolkede verden vil din bruger typisk redigere dit program i en editor og køre det direkte på tolken; mens i den kompilerede verden, vil din bruger redigere dit program, kompilere det, gemme den resulterende eksekverbare et sted og køre det.

Opret et programmeringssprog Trin 9
Opret et programmeringssprog Trin 9

Trin 9. Skriv frontend -scanneren og parseren, eller find et værktøj, der hjælper dig med dette

Tænk også over, hvordan din kompilator/fortolker vil advare din bruger om fejlagtige programmer og syntaksfejl

Opret et programmeringssprog Trin 10
Opret et programmeringssprog Trin 10

Trin 10. Brug parseroplysningerne til at skrive objektkoden eller en mellemrepræsentation

Få parseren til at oprette en AST, derefter oprette din objektkode fra AST ved hjælp af tre adressekoder eller dens storebror SSA, derefter oprette en symboltabel til at definere dine funktioner, globale variabler osv.

Afhængigt af dit sprog kan du også oprette virtuelle pegetabeller eller informationstabeller til dine klasser (for at understøtte refleksion eller RTTI)

Opret et programmeringssprog Trin 11
Opret et programmeringssprog Trin 11

Trin 11. Skriv eksekvereren eller kodegeneratoren, der vil binde alt sammen

Opret et programmeringssprog Trin 12
Opret et programmeringssprog Trin 12

Trin 12. Skriv mange testprogrammer for at teste sproget

Du vil oprette programmer, der understreger byrderne ved din formelle grammatik for at se, at din kompilator accepterer alt, hvad der er inde i din definition og afviser alt, hvad der er uden for den

Opret et programmeringssprog Trin 13
Opret et programmeringssprog Trin 13

Trin 13. Overvej hvordan brugeren vil debugge deres egne programmer

Opret et programmeringssprog Trin 14
Opret et programmeringssprog Trin 14

Trin 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 brugerkoden (f.eks. Allokering af alle globale variabler)

Opret et programmeringssprog Trin 15
Opret et programmeringssprog Trin 15

Trin 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 -funktioner og/eller standardbibliotek

Video - Ved at bruge denne service kan nogle oplysninger blive delt med YouTube

Tips

  • Start med at designe dit sprog, og skriv ikke nogen kode, før du er tilfreds og har besvaret alle (eller de fleste) spørgsmål eller problemer i forbindelse med dit design, da det er lettere at ændre designet tidligere end senere.
  • Kend din målplatform (operativsystem og biblioteker) til din kompilator/tolk, du kommer trods alt til at bruge den og manipulere den.

Advarsler

  • Tænk, hvis du virkelig har brug for et nyt sprog, og hvad dit sprog har af nyt, som andre sprog ikke har (Det kan være en kombination af funktioner eller en enkelt funktion).
  • Det er svært at skrive sprog, hvis du ikke ved, hvad du laver. Det kræver også meget øvelse.
  • Forbered dig på at bruge lidt tid på sprogdesign, da du ikke har mulighed for at ændre dit sprog, når du har skrevet kompilatoren og forbi designpunktet.
  • Forsøg ikke at basere dine funktioner i en forening af flere sprog, som f.eks. At sige, at dit sprog vil være en forening 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 lykkes, eller alle ville programmere PL/1 i stedet for noget baseret på C.

Anbefalede: