Language design with ANTLR Works

Tema mea de licenta a fost: “Construction of Translators and Compiler Design”, acest proiect traducea cod intre doua limbaje la acelas nivel de abstractizare, sau dintr-un limbaj de nivel inalt intr-un limbaj de nivel jos, la designul de languages grammar am folosit IDE cross platform ANTLR Works http://www.antlr3.org/works/.

Chiar ma gandesc cum ai putea proiecta un limbaj care sa te forteze sa scrii clean code, mentenabil, citibil, testabil.

2 Likes

Ma uitam pe ceva cursuri de compiler design:

https://www.tutorialspoint.com/compiler_design/compiler_design_semantic_analysis.htm

Plugin ANTLR pentru Visual Studio Code:
https://marketplace.visualstudio.com/items?itemName=mike-lischke.vscode-antlr4


antlr4-1
Poate acel limbaj de care vorbeam e TypeScript.

Eu cred ca este unul vizual 100% extins cu ultimele tehnologii de recunoastere vocala. Programatorul nu mai tasteaza, pentru ca tot timpul greseala este la 60 cm in fata monitorului :slight_smile: Doar coordoneaza procesul de creare a softului, alege optiuni, gandeste flow-uri, urmareste rezultatele testarii. Toata baza este deja facuta, ma refer la sdk, api-uri, paternuri, etc. Trebuie toate astea imbinate. Se baga cineva sa-l facem in Romania open source :smile:

1 Like

Uita-te pe urmatorul proiect bine nu e cu comenzii vocale dar e un code generator interesant, e open source, si e romanesc:

1 Like

Buna treaba. M-am plictisit sa ma uit la video dupa 2 minute. :slight_smile:

Ontopic:

http://web.eecs.utk.edu/~azh/blog/teenytinycompiler1.html

Cum sa scrii un compilator simplu, am avut un curs de compilatoare in facultate, mi s-a parut ca sa facut teorie multa, lipsind chestii practice.

1 Like

Voi nu aveati proiecte / semestru la materiile mai importante?
Eu am avut de facut ceva interpretor care printre tipurile fundamentale avea si matrici.

De-astea pot fi facute doar ‘for fun’ (plus ca pot fi si foarte instructive): https://gist.github.com/ofan/721464

1 Like

La compilatoare rulai algoritmi pe hartie, îmi aduc aminte de ceva tabele, fără proiect, la alte materii aveam proiect, poate profa a considerat ca e prea greu pentru noi, eu am terminat în 2007 în Constanța la Ovidius, după ce am cautat pe net a început sa ma fascineze, făcând lucrarea de licență în domeniu.

Un interpretor de lisp categoric nu e greu.

Daca scris in C/C++ e considerat (in mod ciudat pentru niste studenti pe domeniu) prea dificil, se poate merge pe ideea: https://www.metalevel.at/lisprolog/

1 Like

Ca sa aprofundez subiectul m-a apucasem la un moment dat sa scriu un articol pe blog cum sa scrii un virtual machine pentru code, articolul l-am salvat in draft si sper sa imi fac timp sa il pun la punct, urmatorul articol va poate ajuta sa intelegeti ce inseamna un virtual machine pentru code si cum functioneaza, si pot spune ca s-a spus ce era mai important in domeniu compilatoarelor.


Edit: Un virtual machine poate fi privit ca un CPU virtual pentru a rula codul.

Cel mai bun mod de a înțelege CPU este sa implementezi un virtual machine.

Nu se mai satura lumea de facut limbaje de programare. De limbajul asta nu auzisem. Chiar imi doream sa mai apara un nou limbaj :slight_smile:

Unii creeaza limbaje iar altii, profesori de meserie, nu stiu sa foloseasca zoom sau webex

offtopic, dar altii nu stiu sa foloseasca un calculator :grin:

@Img_Dev, am postat o discutie depsre Ballerina :smiley:

1 Like

O carte clasica in compilatoare denumita in slack the dragon book, am rasfoito de cateva ori pe net:

https://www.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811/

De inters poate
https://www.graalvm.org/docs/graalvm-as-a-platform/implement-language/

Ask HN: Is there any work being done in speech-to-code with deep learning?