itholoinfo.com.com

Cum se creează un limbaj de programare

Mulți oameni au dificultăți sau frustrări în ceea ce privește limbile pe care le folosesc în fiecare zi. Unii ar prefera ca anumite lucruri să fie tratate mai abstract, în timp ce alții nu le place să implementeze caracteristici care ar trebui să le fie originare. Nu contează dacă sunteți un profesionist IT sau doar un program de plăcere, timpul poate veni atunci când creați propriul limbaj de programare devine o idee foarte atractivă.

pași

Imaginea intitulată Crearea unui limbaj de programare Pasul 1
1
Familiarizați-vă cu terminologia. Persoanele care programează un compilator folosesc de obicei niște termeni complicați, deci este important să citiți puțin despre el înainte de a continua. Încercați să aflați tot ce aveți nevoie.
  • Imaginea intitulată Crearea unui limbaj de programare Pasul 2
    2
    Definiți ce problemă va rezolva limba dvs. Va fi vorba de domeniu sau de scop general?
  • Imaginea intitulată Crearea unui limbaj de programare Pasul 3
    3
    Gândiți-vă la semantica limbii dvs. și la conceptele legate de ea.
    • Veți permite accesul direct la indicii?
    • Care vor fi tipurile de date de limbă?
    • Este o limbă statică sau dinamică?
    • Care va fi modelul de memorie? Veți folosi a colector de gunoi (colector de gunoi) sau ar trebui ca memoria să fie gestionată manual? Atunci când utilizați a colector de gunoi, puteți programa una de la zero sau puteți adapta una care există deja pentru limba dvs.
    • Cum veți face față concurenței? Veți implementa un șablon simplu bazat pe fire și excluderea reciprocă sau ceva mai complex ca modelele Linda și Actor? Este o decizie importantă, deoarece calculatoarele de astăzi au mai multe nuclee de procesare.
    • Vor exista funcții primitive de limbă nativă sau va veni totul din biblioteci?
    • Care va fi paradigma sau paradigmele limbajului? Funcțională? Obiect orientat? Bazat pe prototipuri (cum ar fi jаvascript)? orientate spre aspect? template-Oriented? Poate ceva cu totul nou?
    • Cum va integra limba cu bibliotecile existente (în special bibliotecile C)? Acest lucru este foarte important atunci când dezvoltați un limbaj de domeniu specific.
    • Răspunsul la aceste întrebări vă va ajuta foarte mult în următoarele etape ale dezvoltării limbajului.
  • Imaginea intitulată Creați o limbă de programare Pasul 4
    4
    Gândiți-vă la sarcinile simple pe care oamenii le-ar putea face cu limba lor. Ei ar putea dori, de exemplu, "a face un robot să urmeze o linie", "a crea programe relativ portabile pentru desktop-uri" sau "a crea aplicații web".
  • Imaginea intitulată Creați o limbă de programare Pasul 5
    5
    Testați cu idei de sintaxă (textul lingvistic) pentru exemplele de mai sus.
    • Nu uitați să încercați să păstrați limba în categoria fără contexte sau în altă categorie în cadrul acesteia. Generatorul dvs. parser vă mulțumesc în viitor.
  • Imaginea intitulată Crearea unui limbaj de programare Pasul 6
    6
    Scrieți o gramatică formală pentru sintaxa.
  • Imaginea intitulată Creați o limbă de programare Pasul 7
    7
    Decideți dacă limba va fi interpretată compilate. Diferența este că, într-o limbă interpretată, utilizatorul va edita în general programul printr-un editor și îl va rula direct în interpret. Deja într-o limbă compilată, utilizatorul va edita programul, apoi îl va compila, va salva executabilul undeva și va executa în final.
  • Imaginea intitulată Crearea unui limbaj de programare Pasul 8


    8
    Scrieți scaner frontal și parser sau găsiți un instrument care să vă ajute în acest proces.
    • De asemenea, încercați să definiți dacă compilatorul sau interpretul va avertiza utilizatorul la erori sau sintaxă de programare.
  • Imaginea intitulată Crearea unui limbaj de programare Pasul 9
    9
    Utilizați informațiile generate de parser pentru a scrie codul obiect sau o reprezentare intermediară. Faceți parserul să creeze un AST, apoi să creați obiectul de la AST folosind codul de trei adrese sau fratele vostru mai mare, SSA. În cele din urmă, creați o tabelă de simboluri pentru a defini funcții, variabile globale și așa mai departe.
    • În funcție de limbă, puteți prefera să creați tabele de indicatori virtuali sau tabele de informații pentru clase (pentru a sprijini reflecția sau RTTI).
  • Imaginea intitulată Crearea unui limbaj de programare Pasul 10
    10
    Scrieți executorul sau un generator de cod care va pune totul împreună.
  • Imaginea intitulată Creați o limbă de programare Pasul 11
    11
    Scrie programe de testare pentru a testa limba.
    • Idealul este să creați programe care împing limitele limbii dvs. oficiale la margine pentru a vedea dacă compilatorul acceptă tot ceea ce este în definiția sa și respinge totul în afara ei.
  • Imaginea intitulată Crearea unui limbaj de programare Pasul 12
    12
    Definiți modul în care utilizatorul își va "debuga" programele.
  • Imaginea intitulată Crearea unui limbaj de programare Pasul 13
    13
    Dacă limba utilizează o bibliotecă standard, trebuie să o programați. Veți avea nevoie, de asemenea, să scrieți colector de gunoi și, dacă este necesar, alte instrumente de execuție.
    • Când scrieți un compilator, trebuie să setați codul pe care sistemul de operare îl va rula pentru a începe executarea codului de utilizator (de exemplu, alocarea tuturor variabilelor globale).
  • Imaginea intitulată Creați o limbă de programare Pasul 14
    14
    Postați limba împreună cu specificațiile ei și câteva exemple care arată ce poate face.
    • Nu uitați să documentați cum va fi integrarea cu bibliotecile și limbile existente și cum să utilizați caracteristicile de rulare și de bibliotecă implicită.
  • sfaturi

    • Începeți proiectul de limbă fără a scrie niciun cod până când nu sunteți mulțumit și ați răspuns la toate (sau cele mai multe) întrebări legate de proiect. Acest lucru va facilita orice schimbări viitoare.
    • Setați platforma țintă (sistemele de operare și librăriile) la compilator sau interpret, deoarece va trebui să învățați cum să o utilizați și să o manipulați.

    avertismente

    • Definiți dacă într-adevăr aveți nevoie de o nouă limbă și ce va avea alții care nu au (poate fi o combinație de caracteristici sau o caracteristică specifică).
    • Limba de scriere este dificilă dacă nu știți ce faceți. Este nevoie de o mulțime de practică prea.
    • Fiți pregătit să acordați o mulțime de timp pentru proiectarea limbajului, deoarece nu veți putea să îl modificați după programarea compilatorului și finalizarea fazei de planificare.
    • Nu încercați să aveți drept idee de bază unirea mai multor limbi, spunând că crearea sa va fi unirea limbajului X, Y și Z, de exemplu. Istoria a arătat că limbile create în acest fel nu pot reuși niciodată, sau ne-ar programa toate în PL / 1 în loc de ceva bazat pe C.

    Materiale necesare

    • Răbdare.
    • Cunoștințe despre resurse și designul limbajului (este interesant să citiți cartea Concepte de design al limbajului de programare de David A. Watt).
    • Cunoașterea teoriei compilatorului (din moment ce veți scrie un compilator sau interpret pentru limbă și implementarea acesteia va fi folosit ca referință).
    • Limbă de programare (rețineți că cele mai utilizate limbi de programare, cum ar fi C și Lisp, sunt proiectate să facă ceva specific, cum ar fi crearea unui Unix sau efectuarea unui calcul simbolic).
    Distribuiți pe rețelele sociale:

    înrudit
    Cum de a învăța PerlCum de a învăța Perl
    Cum să învățați să programați în C ++Cum să învățați să programați în C ++
    Cum de a învăța un limbaj de programareCum de a învăța un limbaj de programare
    Cum să începeți să învățați programarea C utilizând tehnologia IDE Turbo C ++Cum să începeți să învățați programarea C utilizând tehnologia IDE Turbo C ++
    Cum să începeți să învățați programarea pe calculatorCum să începeți să învățați programarea pe calculator
    Cum se scrie un algoritm în limba de programareCum se scrie un algoritm în limba de programare
    Cum să evitați să deveniți un Script KiddieCum să evitați să deveniți un Script Kiddie
    Cum se schimbă limba pe AndroidCum se schimbă limba pe Android
    Cum să programați în Flash (Basic Actionscript 2.0)Cum să programați în Flash (Basic Actionscript 2.0)
    Cum se programează în limba CCum se programează în limba C
    » » Cum se creează un limbaj de programare
    © 2021 itholoinfo.com.com