Cum să creați un limbaj de programare: 15 pași (cu imagini)

Cuprins:

Cum să creați un limbaj de programare: 15 pași (cu imagini)
Cum să creați un limbaj de programare: 15 pași (cu imagini)

Video: Cum să creați un limbaj de programare: 15 pași (cu imagini)

Video: Cum să creați un limbaj de programare: 15 pași (cu imagini)
Video: Cum si cand ne curatam PC-ul 2024, Mai
Anonim

Mulți oameni au dificultăți sau frustrări cu limbajele de programare pe care le folosesc în fiecare zi. Unii vor ca lucrurile să fie tratate mai abstract, în timp ce altora nu le place caracteristicile de implementare pe care le-ar dori să fie „standard”. Fie că sunteți un profesionist în IT sau doar un hobby, de multe ori s-ar putea să vă treziți dorința de a crea un nou limbaj de programare.

Pași

Creați un limbaj de programare Pasul 1
Creați un limbaj de programare Pasul 1

Pasul 1. Familiarizați-vă cu tehnologia

Nu puteți crea un limbaj de programare dacă nu știți cum să utilizați un computer.

Creați un limbaj de programare Pasul 2
Creați un limbaj de programare Pasul 2

Pasul 2. Familiarizați-vă cu terminologia

Scriitorii compilatorilor folosesc adesea terminologie necunoscută. Citiți despre compilatoare înainte de a continua. Asigurați-vă că știți tot ce trebuie să știți.

Creați un limbaj de programare Pasul 3
Creați un limbaj de programare Pasul 3

Pasul 3. Decideți ce problemă rezolvă limba dvs

Se adresează unei probleme specifice domeniului sau este un limbaj de uz general?

Creați un limbaj de programare Pasul 4
Creați un limbaj de programare Pasul 4

Pasul 4. Gândește-te la semantica limbii tale și la conceptele acesteia

  • Aveți de gând să permiteți sau nu accesul direct al indicatorului?
  • Care sunt tipurile de date ale limbii dvs.?
  • Este un limbaj static sau dinamic?
  • Care este modelul dvs. de memorie? Aveți de gând să folosiți un colector de gunoi sau o gestionare manuală a memoriei? (Dacă utilizați un colector de gunoi, pregătiți-vă să scrieți unul sau adaptați unul existent la limba dvs.)
  • Cum se va descurca concurența? Vei folosi un model simplu de filetare / blocare sau ceva mai complex, cum ar fi Linda sau modelul actorului? (Din moment ce computerele au mai multe nuclee.)
  • Există funcții primitive încorporate în limbaj sau totul va proveni dintr-o bibliotecă?
  • Care este paradigma sau paradigmele limbii tale? Funcţional? Orientat spre obiecte? Prototip (cum ar fi JavaScript)? Orientat spre aspect? Orientat spre șablon? Sau ceva cu totul nou?
  • Cum va interfața limba dvs. cu bibliotecile și limbile existente (în principal C)? Acest punct este important dacă creați un limbaj specific domeniului.
  • În cele din urmă, unele dintre răspunsurile la aceste întrebări vor primi răspuns la al doilea pas și vă vor ajuta să răspundeți la următorul pas.
Creați un limbaj de programare Pasul 5
Creați un limbaj de programare Pasul 5

Pasul 5. Gândește-te la anumite sarcini specifice pe care cineva și-ar dori să le poată îndeplini cu limba ta

De exemplu, „ar putea dori să direcționeze un robot să urmeze o linie” sau „ar putea dori să creeze în el programe de desktop relativ portabile” sau „ar putea dori să creeze aplicații web cu acesta”.

Creați un limbaj de programare Pasul 6
Creați un limbaj de programare Pasul 6

Pasul 6. Experimentați idei de sintaxă (textul limbii) pentru exemplele de mai sus

Aveți grijă să vă păstrați limba în categoria de limbă fără context sau ceva din interior. Generatorul de parser și îl veți aprecia mai târziu

Creați un limbaj de programare Pasul 7
Creați un limbaj de programare Pasul 7

Pasul 7. Scrieți o gramatică formală pentru sintaxă

Creați un limbaj de programare Pasul 8
Creați un limbaj de programare Pasul 8

Pasul 8. Decideți dacă limba va fi interpretată sau compilată

Adică, în lumea interpretată, utilizatorul dvs. vă va edita de obicei programul într-un editor și îl va rula direct pe interpret; în timp ce vă aflați în lumea compilată, utilizatorul vă va edita programul, îl va compila, va salva executabilul rezultat undeva și îl va rula.

Creați un limbaj de programare Pasul 9
Creați un limbaj de programare Pasul 9

Pasul 9. Scrieți scanerul și analizorul frontal sau găsiți un instrument care să vă ajute în acest sens

De asemenea, gândiți-vă la modul în care compilatorul / interpretul dvs. vă va avertiza utilizatorul despre programele eronate și erorile de sintaxă

Creați un limbaj de programare Pasul 10
Creați un limbaj de programare Pasul 10

Pasul 10. Folosiți informațiile parserului pentru a scrie codul obiectului sau o reprezentare intermediară

Solicitați analizorului să creeze un AST, apoi creați codul obiectului dvs. din AST folosind trei coduri de adrese sau SSA-ul său fratele mai mare, apoi creați un tabel de simboluri pentru a vă defini funcțiile, variabilele globale etc.

De asemenea, în funcție de limba dvs., vă recomandăm să creați tabele de pointer virtual sau tabele de informații pentru cursurile dvs. (pentru a sprijini reflecția sau RTTI)

Creați un limbaj de programare Pasul 11
Creați un limbaj de programare Pasul 11

Pasul 11. Scrieți executorul sau generatorul de cod care va lega totul împreună

Creați un limbaj de programare Pasul 12
Creați un limbaj de programare Pasul 12

Pasul 12. Scrieți multe programe de testare pentru a testa limba

Doriți să creați programe care să sublinieze poverile gramaticii dvs. formale pentru a vedea că compilatorul acceptă tot ceea ce se află în definiția dvs. și respinge tot ceea ce este în afara ei

Creați un limbaj de programare Pasul 13
Creați un limbaj de programare Pasul 13

Pasul 13. Luați în considerare modul în care utilizatorul își va depana propriile programe

Creați un limbaj de programare Pasul 14
Creați un limbaj de programare Pasul 14

Pasul 14. Dacă limba dvs. folosește o bibliotecă standard, veți dori să o scrieți

Împreună cu un colector de gunoi sau alte caracteristici de rulare, dacă aveți nevoie de el.

Mai exact, dacă scrieți un compilator, veți avea nevoie de codul pe care sistemul de operare îl va executa pentru a începe să ruleze codul de utilizator (de exemplu, alocarea tuturor variabilelor globale)

Creați un limbaj de programare Pasul 15
Creați un limbaj de programare Pasul 15

Pasul 15. Publică-ți limba, împreună cu specificațiile pentru aceasta și câteva exemple de ceea ce poți face în ea

Nu uitați să documentați cum vă puteți integra cu bibliotecile, limbile existente și cum să utilizați caracteristicile de rulare și / sau biblioteca standard

Video - Prin utilizarea acestui serviciu, unele informații pot fi partajate cu YouTube

sfaturi

  • Începeți prin proiectarea limbii dvs. și nu scrieți niciun cod, până când nu sunteți mulțumit și nu ați răspuns la toate (sau la majoritatea) întrebărilor sau problemelor legate de design, deoarece este mai ușor să schimbați designul mai devreme decât mai târziu.
  • Cunoașteți-vă platforma țintă (sistemul de operare și bibliotecile) pentru compilatorul / interpretul dvs., la urma urmelor, o veți folosi și manipula.

Avertizări

  • Gândiți-vă dacă aveți cu adevărat nevoie de o limbă nouă și de ceea ce are limba dvs. despre noi pe care alte limbi nu le au (poate fi o combinație de caracteristici sau o singură caracteristică).
  • Scrierea limbilor este dificilă dacă nu știi ce faci. Este nevoie și de multă practică.
  • Pregătiți-vă să petreceți ceva timp în proiectarea limbajului, deoarece nu veți avea șansa de a vă schimba limba după ce ați scris compilatorul și ați trecut de punctul de proiectare.
  • Nu încercați să vă bazați caracteristicile într-o uniune de mai multe limbi, cum ar fi să spuneți că limba dvs. va fi o uniune a limbii X, a limbii Y și a limbii Z. Istoria ne-a arătat că limbile create astfel nu vor avea niciodată succes, sau toată lumea ar programa PL / 1 în loc de ceva bazat pe C.

Recomandat: