Kako stvoriti programski jezik: 15 koraka (sa slikama)

Sadržaj:

Kako stvoriti programski jezik: 15 koraka (sa slikama)
Kako stvoriti programski jezik: 15 koraka (sa slikama)

Video: Kako stvoriti programski jezik: 15 koraka (sa slikama)

Video: Kako stvoriti programski jezik: 15 koraka (sa slikama)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Svibanj
Anonim

Mnogi ljudi imaju poteškoća ili frustracija s programskim jezicima koje svakodnevno koriste. Neki žele da se stvari rješavaju apstraktnije, dok drugi ne vole implementacijske značajke za koje bi voljeli da su „standardne“. Bez obzira jeste li IT stručnjak ili samo hobist, često ćete se možda zaželjeti stvoriti novi programski jezik.

Koraci

Kreiranje programskog jezika Korak 1
Kreiranje programskog jezika Korak 1

Korak 1. Upoznajte se s tehnologijom

Ne možete stvoriti programski jezik ako ne znate koristiti računalo.

Kreiranje programskog jezika Korak 2
Kreiranje programskog jezika Korak 2

Korak 2. Upoznajte se s terminologijom

Sastavljači često koriste nepoznatu terminologiju. Prije nastavka pročitajte prevoditelje. Budite sigurni da znate sve što trebate znati.

Kreiranje programskog jezika Korak 3
Kreiranje programskog jezika Korak 3

Korak 3. Odlučite koji problem rješava vaš jezik

Rješava li se problem specifičan za domenu ili je to jezik opće namjene?

Kreiranje programskog jezika Korak 4
Kreiranje programskog jezika Korak 4

Korak 4. Razmislite o semantici vašeg jezika i njegovim pojmovima

  • Hoćete li dopustiti izravan pristup pokazivačem ili ne?
  • Koje su vrste podataka vašeg jezika?
  • Je li to statički ili dinamički jezik?
  • Koji je vaš model pamćenja? Hoćete li koristiti sakupljač smeća ili ručno upravljanje memorijom? (Ako koristite sakupljač smeća, pripremite se da ga napišete ili prilagodite postojeći svom jeziku.)
  • Kako ćete postupati s istodobnošću? Hoćete li upotrijebiti jednostavan model navoja/zaključavanja ili nešto složenije poput Linde ili modela glumca? (Od danas računala imaju više jezgri.)
  • Postoje li primitivne funkcije ugrađene u jezik ili će sve doći iz knjižnice?
  • Koja je paradigma ili paradigma vašeg jezika? Funkcionalna? Objektno orijentirano? Prototip (poput JavaScripta)? Orijentirano? Orijentirano na predložak? Ili nešto sasvim novo?
  • Kako će se vaš jezik povezati s postojećim knjižnicama i jezicima (uglavnom C)? Ovo je važno ako gradite jezik specifičan za domenu.
  • Konačno, na neke od odgovora na ova pitanja odgovorit će drugi korak i pomoći će vam da odgovorite na sljedeći korak.
Kreiranje programskog jezika Korak 5
Kreiranje programskog jezika Korak 5

Korak 5. Sjetite se nekih posebnih zadataka koje bi netko želio moći izvesti s vašim jezikom

Na primjer, "možda će htjeti usmjeriti robota da slijedi liniju" ili "možda će htjeti u njemu stvoriti relativno prijenosne programe za stolna računala" ili "možda će htjeti izraditi web aplikacije s njim".

Kreiranje programskog jezika Korak 6
Kreiranje programskog jezika Korak 6

Korak 6. Eksperimentirajte s idejama sintakse (tekst jezika) za gornje primjere

Budite oprezni da svoj jezik zadržite u kategoriji jezika bez konteksta ili u nečemu sličnom. Vaš generator parsera i kasnije ćete to cijeniti

Kreiranje programskog jezika Korak 7
Kreiranje programskog jezika Korak 7

Korak 7. Napišite formalnu gramatiku za sintaksu

Kreiranje programskog jezika Korak 8
Kreiranje programskog jezika Korak 8

Korak 8. Odlučite hoće li se jezik tumačiti ili sastavljati

Što znači da će u tumačenom svijetu vaš korisnik obično uređivati vaš program u uređivaču i izvoditi ga izravno na tumaču; dok ste u kompiliranom svijetu, vaš će korisnik uređivati vaš program, kompajlirati ga, spremiti rezultirajuću izvršnu datoteku negdje i pokrenuti je.

Kreiranje programskog jezika Korak 9
Kreiranje programskog jezika Korak 9

Korak 9. Napišite prednji kraj skenera i raščlanjivača ili pronađite alat koji će vam u tome pomoći

Također razmislite o tome kako će vaš prevoditelj upozoriti korisnika na pogrešne programe i sintaksne pogreške

Kreiranje programskog jezika Korak 10
Kreiranje programskog jezika Korak 10

Korak 10. Upotrijebite podatke raščlanjivača za pisanje objektnog koda ili posrednog prikaza

Neka parser izradi AST, a zatim izradite svoj objektni kod iz AST -a koristeći tri adresni kôd ili njegov veliki brat SSA, zatim izradite tablicu simbola za definiranje vaših funkcija, globalnih varijabli itd.

Također, ovisno o vašem jeziku, možda ćete također htjeti stvoriti tablice virtualnih pokazivača ili tablice s informacijama za svoje klase (kako biste podržali refleksiju ili RTTI)

Kreiranje programskog jezika Korak 11
Kreiranje programskog jezika Korak 11

Korak 11. Napišite izvršitelja ili generator koda koji će sve povezati

Kreiranje programskog jezika Korak 12
Kreiranje programskog jezika Korak 12

Korak 12. Napišite mnogo programa za testiranje jezika

Želite stvoriti programe koji naglašavaju opterećenja vaše formalne gramatike kako biste vidjeli da vaš prevoditelj prihvaća sve što je unutar vaše definicije i odbacuje sve što je izvan nje

Kreiranje programskog jezika Korak 13
Kreiranje programskog jezika Korak 13

Korak 13. Razmotrite kako će korisnik otklanjati pogreške u vlastitim programima

Kreiranje programskog jezika Korak 14
Kreiranje programskog jezika Korak 14

Korak 14. Ako vaš jezik koristi standardnu biblioteku, htjet ćete je napisati

Uz sakupljač smeća ili druge značajke za vrijeme izvođenja ako vam zatreba.

Točnije, ako napišete prevoditelj, trebat će vam kôd koji će operacijski sustav izvršiti kako biste započeli s izvođenjem korisničkog koda (na primjer, dodjeljivanje svih globalnih varijabli)

Kreiranje programskog jezika Korak 15
Kreiranje programskog jezika Korak 15

Korak 15. Objavite svoj jezik, zajedno sa specifikacijama za njega i nekim primjerima što možete učiniti na njemu

Ne zaboravite dokumentirati kako se možete integrirati sa postojećim knjižnicama, jezicima i kako koristiti značajke za vrijeme izvođenja i/ili standardnu knjižnicu

Video - Korištenjem ove usluge neki se podaci mogu podijeliti s YouTubeom

Savjeti

  • Počnite s osmišljavanjem svog jezika i nemojte pisati nikakav kôd, sve dok ne budete zadovoljni i odgovorite na sva (ili većinu) pitanja ili probleme vezane uz vaš dizajn jer je dizajn lakše promijeniti ranije nego kasnije.
  • Upoznajte svoju ciljnu platformu (operacijski sustav i knjižnice) za svog prevoditelja/prevoditelja, uostalom, vi ćete je koristiti i manipulirati njome.

Upozorenja

  • Razmislite trebate li zaista novi jezik i ono što vaš jezik ima od novog što drugi jezici nemaju (to može biti kombinacija značajki ili jedna značajka).
  • Pisanje jezika je teško ako ne znate što radite. Također je potrebno puno prakse.
  • Pripremite se provesti neko vrijeme u jezičnom dizajnu jer nećete imati priliku promijeniti jezik nakon što napišete prevoditelj i prijeđete točku dizajna.
  • Ne pokušavajte svoje značajke zasnivati na sjedinjenju nekoliko jezika, na primjer recite da će vaš jezik biti spoj jezika X, jezika Y i jezika Z. Povijest nam je pokazala da jezici stvoreni na takav način nikada neće postići uspjeh, ili bi svi programirali PL/1 umjesto nečega što se temelji na C.

Preporučeni: