Cum se creează un limbaj de programare

Mulți oameni întâmpină dificultăți sau frustrări cu limbile de programare pe care le folosesc în fiecare zi. Unii doresc lucruri care pot fi tratate mai abstract, în timp ce altele nu le place să implementeze caracteristicile pe care le-ar dori să fie normale. Indiferent dacă sunteți un profesionist în domeniul calculatoarelor sau un amator, vă veți confrunta deseori cu situația în care doriți să creați un nou limbaj de programare.

pași

Imaginea intitulată Crearea unui limbaj de programare Pasul 1
1
Familiarizați-vă cu terminologia. Compilatorii scriu adesea terminologie necunoscută. Aflați despre compilatoare înainte de a continua. Asigurați-vă că știți tot ce aveți nevoie.
  • Imaginea intitulată Crearea unui limbaj de programare Pasul 2
    2
    Decideți ce problemă veți rezolva. Este adresată unei probleme specifice domeniului sau este o limbă de uz general?
  • Imaginea intitulată Crearea unui limbaj de programare Pasul 3
    3
    Gândiți-vă la semantica limbajului și a conceptelor sale.
  • Veți permite accesul direct sau nu?
  • Care sunt tipurile de date în limba dvs.?
  • Este o limbă statică sau dinamică?
  • Care este modelul memoriei? Veți folosi un colector de gunoi sau un manager de memorie manuală? (În cazul în care utilizați un colector de gunoi, fiți pregătit să scrieți sau să adaptați unul existent la limba dvs.).
  • Cum veți gestiona competiția? Veți folosi un model simplu de sârmă sau bloc sau ceva mai complex decât Linda sau modelul de actor? (din moment ce computerele au mai multe nuclee).
  • Vor fi introduse funcții primare în limba respectivă sau vor fi toate într-o bibliotecă?
  • Care este paradigma sau paradigmele limbii tale? Funcțională? Direcționat către obiecte? Prototype (cum ar fi jаvascript)? Direcționat la aspect? Pentru șabloane? Sau ceva complet nou?
  • Cum este limba dvs. legată de alte biblioteci și limbi (în special C)? Acest punct este important în cazul în care intenționați să creați o limbă pentru un anumit domeniu.
  • În cele din urmă, unele răspunsuri la aceste întrebări vor fi preluate în al doilea pas și vă vor ajuta să răspundeți la următorul pas.
  • Imaginea intitulată Crearea unei limbi de programare Pasul 4
    4
    Gândiți-vă la anumite sarcini specifice pe care cineva ar putea să le facă cu limba dvs. De exemplu, ei ar putea dori să îndrume un robot să urmeze o linie, să creeze programe desktop relativ portabile sau să creeze aplicații web cu acesta.
  • Imaginea intitulată Creați o limbă de programare Pasul 5
    5
    Experimentați cu idei de sintaxă (textul lingvistic) cu exemplele anterioare.
  • Aveți grijă să păstrați limba într-o categorie liberă de contexte fără nimic din interiorul acesteia. Tu și generatorul sintactic vă mulțumesc mai târziu.
  • Imaginea intitulată Crearea unui limbaj de programare Pasul 6
    6
    Scrieți o gramatică formală pentru sintaxa.
  • Imaginea intitulată Crearea unui limbaj de programare Pasul 7
    7
    Decideți dacă doriți ca limbajul să fie interpretat sau compilat. Acest lucru înseamnă că, în lumea în calitate de utilizator, probabil, modifica programul cu un editor și rula direct în interpret, în timp ce în lumea de compilare, modificați programul, compila, salva executabil rezultat undeva și o va executa.
  • Imaginea intitulată Crearea unui limbaj de programare Pasul 8
    8


    Scrieți traducătorul și generatorul sintactic sau căutați un instrument care să vă ajute în acest scop.
  • De asemenea, gândiți-vă la modul în care compilatorul sau interpretul îi va avertiza pe utilizatori cu privire la programele și eșecurile de sintaxă greșite.
  • Imaginea intitulată Crearea unei limbi de programare Pasul 9
    9
    Utilizați informațiile generatorului sintactic pentru a scrie codul obiect sau un intermediar. Generatorul trebuie să creeze un AST și apoi codul obiect de la AST utilizând trei adrese de cod sau unul al acestuia "mare frate" SSA și apoi creați un tabel de simboluri pentru a defini funcțiile, variabilele globale etc.
  • De asemenea, în funcție de limbă, poate doriți să creați tabele virtuale sau informații pentru clasele dvs. (pentru a sprijini reverb sau RTTI).
  • Imaginea intitulată Crearea unui limbaj de programare Pasul 10
    10
    Scrie codul executor sau generator care va uni totul.
  • Imaginea intitulată Crearea unei limbi de programare Pasul 11
    11
    Scrieți mai multe programe de testare pentru a verifica limba.
  • Creați programe "întinde frânghia" din gramatica dvs. formală pentru a putea verifica dacă compilatorul acceptă tot ceea ce este în definiția dvs. și respinge tot ce este în afara acestuia.
  • Imaginea intitulată Crearea unui limbaj de programare Pasul 12
    12
    Luați în considerare modul în care utilizatorul va elimina defecțiunile propriilor programe.
  • Imaginea intitulată Crearea unui limbaj de programare Pasul 13
    13
    În cazul în care limba dvs. folosește o bibliotecă standard, scrieți-o. De asemenea, adăugați colectorul de gunoi sau alte caracteristici comune de executare a limbajului în cazul în care aveți nevoie de el.
  • Mai exact, dacă utilizați un compilator aveți nevoie de codul care execută sistemul de operare pentru a porni codul de utilizator (de exemplu, distribui toate variabilele globale).
  • Imaginea intitulată Crearea unei limbi de programare Pasul 14
    14
    Publicați-vă limba cu descrierea acesteia și câteva exemple despre ce se poate face cu ea.
  • Nu uitați să documentați cum să o integrați cu bibliotecile existente, limbi și cum să utilizați caracteristicile comune de execuție sau biblioteca standard.
  • sfaturi

    • Începeți prin proiectarea limba și nu scrie orice cod până când sunteți mulțumit și ați răspuns la toate (sau majoritatea) întrebări sau probleme cu design-ul, deoarece este mai ușor de a schimba design mai devreme decât mai târziu.
    • Cunoașteți platforma țintă (sistemul de operare și bibliotecile) pentru compilatorul și interpretul dvs., deoarece, la urma urmei, o veți folosi și o veți manipula.

    avertismente

    • Gândiți-vă dacă într-adevăr aveți nevoie de o nouă limbă și de ceea ce aveți din nou pe care ceilalți nu o au (poate fi o combinație de caracteristici sau numai una).
    • Este greu să scrii limbi în cazul în care nu știi ce faci. De asemenea, este nevoie de multă practică.
    • Fiți pregătiți să-și petreacă ceva timp cu limbajul de design, și nu va avea posibilitatea de a schimba limba după ce ați scris compilator și a trecut la punctul de proiectare.
    • Nu încerca să-ți baza caracteristici într-un amestec de mai multe limbi, spunand ca limba va fi o uniune X limbi, Y și Z. Istoria a arătat că limbile create în acest mod nu va reuși, deoarece în caz contrar toate lumea ar programa în PL / 1 în loc de ceva bazat pe C.

    Lucruri de care ai nevoie

    • răbdare
    • cunoștințe despre caracteristicile și designul limbii (poate doriți să citiți "Concepte de design al limbajului de programare" ("Limbaje de programare și paradigme" de David A. Watt)
    • cunoștințe despre teoria compilării (din moment ce veți scrie un compilator și un interpret pentru limba dvs. și punerea sa în aplicare va fi o referință pentru ca acesta să fie îndeplinit)
    • folosește pentru limba dvs. (amintiți-vă că unele dintre cele mai frecvent utilizate limbi, cum ar fi C sau Lisp au fost create pentru a face ceva specific, cum ar fi crearea Unix sau pentru a efectua calcule simbolice)
    Distribuiți pe rețelele sociale:

    înrudit
    Cum se învață Microsoft Visual BasicCum se învață Microsoft Visual Basic
    Cum să înveți programareaCum să înveți programarea
    Cum să înveți un limbaj de programareCum să înveți un limbaj de programare
    Cum se codifică un joc videoCum se codifică un joc video
    Cum să devii programatorCum să devii programator
    Cum de a sparge un program prin modificarea fișierelor DLLCum de a sparge un program prin modificarea fișierelor DLL
    Cum se creează un program simplu în PythonCum se creează un program simplu în Python
    Cum se creează un "mashup" (aplicație web hibrid)Cum se creează un "mashup" (aplicație web hibrid)
    Cum se creează o funcție definită de utilizator în Microsoft ExcelCum se creează o funcție definită de utilizator în Microsoft Excel
    Cum să începeți să învățați să programațiCum să începeți să învățați să programați
    » » Cum se creează un limbaj de programare

    © 2011—2020 ertare.com