Hur man skapar ett programmeringsspråk
Många människor har svårigheter eller frustrationer med programmeringsspråk som de använder varje dag. Vissa vill att saker ska hanteras mer abstrakt, medan andra inte tycker om att implementera funktioner som de önskar var "standard". Oavsett om du är en IT-professionell eller bara en hobbyist, många gånger kan du hitta dig själv som vill skapa ett nytt programmeringsspråk.
Steg
1. Bli bekant med tekniken. Du kan inte skapa ett programmeringsspråk om du inte vet hur du använder en dator.

2. Bli bekant med terminologin. Kompilatorskribenter använder ofta okänd terminologi. Läs upp på kompilatorer innan du fortsätter. Var noga med att veta allt du behöver veta.

3. Bestäm vilket problem ditt språk löser. Är det adresserat ett domänspecifikt problem, eller är det ett språkligt språk?

4. Tänk på semantiken på ditt språk och begreppen det.

5. Tänk på några specifika uppgifter som någon skulle vilja kunna utföra med ditt språk. Till exempel, "De kanske vill styra en robot för att följa en linje" eller "De kanske vill skapa relativt bärbara skrivbordsprogram i det" eller "De kanske vill skapa webbapplikationer med det".

6. Experimentera med syntaxidéer (språket) för ovanstående exempel.

7. Skriv ut en formell grammatik för syntaxen.

8. Bestäm om språket kommer att tolkas eller sammanställas. Betydelse att i den tolkade världen kommer din användare vanligtvis att redigera ditt program i en redaktör och köra det direkt på tolken, medan den sammanställde världen, kommer din användare att redigera ditt program, kompilera det, spara den resulterande körbar någonstans och kör den.

9. Skriv den främre ändenskannern och parser eller hitta ett verktyg som hjälper dig med det här.

10. Använd parserinformationen för att skriva objektkoden eller en mellanliggande representation. Har parsern skapa en AST och skapa din objektkod från AST med tre adresskod eller dess Big Brother SSA, sedan skapa ett symbolbord för att definiera dina funktioner, globala variabler, etc.

11. Skriv exekverare eller kodgenerator som kommer att binda allt tillsammans.

12. Skriv många testprogram för att testa språket.

13. Tänk på hur användaren kommer att felsöka sina egna program.

14. Om ditt språk använder ett standardbibliotek, vill du skriva det. Tillsammans med en sopsamlare eller andra körtidsfunktioner om du behöver det.

15. Publicera ditt språk, tillsammans med specifikationen för det och några exempel på vad du kan göra i det.
Video
Genom att använda den här tjänsten kan viss information delas med YouTube.
Tips
Börja med att designa ditt språk och skriv inte någon kod, tills du är nöjd och har svarat på alla (eller de flesta) av frågorna eller problemen med din design eftersom det är lättare att ändra designen tidigare än senare.
Känn din målplattform (operativsystem och bibliotek) för din kompilator / tolk, trots allt kommer du att använda den och manipulera den.
Varningar
Tänk om du verkligen behöver ett nytt språk, och vad ditt språk har av nya att andra språk inte har (det kan vara en kombination av funktioner eller en enda funktion).
Att skriva språk är svårt om du inte vet vad du gör. Det tar också mycket träning.
Förbered dig för att spendera lite tid i språkdesign, eftersom du inte har en chans att ändra ditt språk när du har skrivit kompilatorn och förbi designpunkten.
Försök inte basera dina funktioner i en union av flera språk, som att säga att ditt språk kommer att bli ett språk av språk x, språk y och språk z. Historien har visat oss att språk som skapats på ett sådant sätt aldrig kommer att hitta framgång, eller alla skulle programmera PL / 1 istället för något baserat på C.
Saker du behöver
- Tålamod.
- Kunskap om språkfunktioner och språkdesign (du kanske vill läsa programmeringsspråkkonstruktioner från David A. Watt).
- Kunskap om kompilatorteori (eftersom du kommer att skriva en kompilator / tolk för ditt språk och ditt genomförande kommer att vara referensimplementeringen).
- Används för ditt språk (kom ihåg att några av de mest använda språken som C eller Lisp skapades för att göra något specifikt som att skapa Unix eller göra symbolisk beräkning).
Dela på det sociala nätverket: