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.
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 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
Voi nu aveati proiecte / semestru la materiile mai importante?
Eu am avut de facut ceva interpretor care printre tipurile fundamentale avea si matrici.
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.
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/
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.