Cum se creează un limbaj de programare
Mulți oameni au dificultăți sau frustrări cu limbile de programare pe care le folosesc în fiecare zi. Unii doresc ca lucrurile să fie manipulate mai abstract, în timp ce alții nu-i plac caracteristicile de punere în aplicare pe care doresc să fie "standard". Indiferent dacă sunteți un profesionist IT sau doar un hobbyist, de multe ori vă puteți găsi dorința de a crea un nou limbaj de programare.
Pași
1. Să se familiarizeze cu tehnologia. Nu puteți crea un limbaj de programare dacă nu știți cum să utilizați un computer.

2. Să se familiarizeze cu terminologia. Scriitorii compilatorului utilizează adesea terminologia necunoscută. Citiți compilatoarele înainte de a continua. Asigurați-vă că știți tot ce trebuie să știți.

3. Decideți ce problemă este rezolvarea limbii dvs. Se adresează unei probleme specifice domeniului sau este o limbă generală?

4. Gândiți-vă la semantica limbii dvs. și la conceptele lui.

5. Gândiți-vă la anumite sarcini specifice pe care cineva ar dori să le poată juca cu limba dvs. De exemplu, "pot dori să direcționeze un robot pentru a urma o linie" sau "ei ar putea dori să creeze programe de desktop relativ portabile" sau "ar putea dori să creeze aplicații web cu ea".

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

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

8. Decideți dacă limba va fi interpretată sau compilată. Înțeles că în lumea interpretată, utilizatorul dvs. va edita în mod obișnuit programul dvs. într-un editor și o va conduce direct pe interpret - În timp ce în lumea compilată, utilizatorul dvs. va edita programul dvs., compilați-l, salvați executabilul rezultat undeva și executați-l.

9. Scrieți scanerul frontal și parser sau găsiți un instrument care vă ajută cu acest lucru.

10. Utilizați informațiile parser pentru a scrie codul obiect sau o reprezentare intermediară. Parserul creează un AST, apoi creați codul de obiect de la AST folosind trei coduri de adresă sau fratele său mare SSA, apoi creați un tabel de simbol pentru a vă defini funcțiile, variabilele globale etc.

11. Scrieți executorul sau generatorul de coduri care vor lega totul împreună.

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

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

14. Dacă limba dvs. utilizează o bibliotecă standard, veți dori să o scrieți. Împreună cu un colector de gunoi sau alte caracteristici de execuție dacă aveți nevoie de ea.

15. Publicați limba dvs., împreună cu specificațiile pentru el și câteva exemple despre ceea ce puteți face în el.
Video
Prin utilizarea acestui serviciu, unele informații pot fi împărtășite 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 ați răspuns la toate întrebările sau problemele legate de designul dvs., deoarece este mai ușor să schimbați designul mai devreme decât mai târziu.
Cunoașteți platforma dvs. țintă (sistem de operare și biblioteci) pentru compilator / interpret, la urma urmei, o veți folosi și o manipulați.
Avertizări
Gândiți-vă dacă aveți într-adevăr nevoie de o nouă limbă și care are limba dvs. nouă că alte limbi nu au (poate fi o combinație de caracteristici sau o singură caracteristică).
Limbile de scriere este dificil dacă nu știți ce faceți. Este nevoie de multă practică.
Pregătiți-vă să petreceți ceva timp în designul limbajului, deoarece nu veți avea șansa de a vă schimba limba după ce ați scris compilatorul și trecutul punctului de proiectare.
Nu încercați să vă bazați caracteristicile într-o uniune a mai multor limbi, cum ar fi spune că limba dvs. va fi o uniune a limbii X, limba Y și limba Z. Istoria ne-a arătat că limbile create într-un astfel de mod nu vor găsi niciodată succes sau toată lumea ar fi programarea PL / 1 în loc de ceva bazat pe c.
Lucrurile de care veți avea nevoie
- Răbdare.
- Cunoștințe despre caracteristicile lingvistice și designul limbii (poate doriți să citiți concepte de programare de programare de la David A. Watt).
- Cunoștințe despre teoria compilatorului (deoarece veți scrie un compilator / interpret pentru limba dvs. și implementarea dvs. va fi implementarea de referință).
- Utilizează pentru limba dvs. (amintiți-vă că au fost create unele dintre cele mai utilizate limbi cum ar fi C sau Lisp pentru a face ceva specific ca crearea Unix sau a face calculul simbolic).
Partajați pe rețeaua socială: