View Full Version : Inventare un linguaggio
Ciao a tutti! :)
Non so se questa è la sezione giusta, ma volevo levarmi una curiosità, anke se forse è un po' stupida.
Mi sapete spiegare come si fa (a grandi linee) a creare un linguaggio di programmazione? Capisco che i programmi sono scritti coi linguaggi, ma questi come nascono?
E' una curiosità che ho da tempo :D :)
Credo sia tutta una questione di compilatori. Il primo deve necessariamente essere il prodotto di un altro linguaggio. A questo punto il minimo è scrivere le funzioni di lettura e scrittura di byte in un file. Usi il compilatore estraneo per tradurre il tutto in codice macchina. Dopodichè, potendo leggere e scrivere byte una prima volta, puoi ricreare gli stessi flussi attraverso sorgenti scritti nel tuo linguaggio. Rimpiazzi il codice macchina prodotto dal compilatore alieno e hai tutto quello che ti serve.
In sostanza, una volta che puoi scrivere e leggere dei byte, sei autonomo anche in via retroattiva.
Ciao a tutti! :)
Non so se questa è la sezione giusta, ma volevo levarmi una curiosità, anke se forse è un po' stupida.
Mi sapete spiegare come si fa (a grandi linee) a creare un linguaggio di programmazione? Capisco che i programmi sono scritti coi linguaggi, ma questi come nascono?
E' una curiosità che ho da tempo :D :)
a grandi linee (grandissime) si tratta di creare un traduttore che prende il codice scritto nel tuo linguaggio e lo trasforma in codice macchina, che il computer è capace di eseguire. quindi si può dire che esiste il linguaggio "macchina" e tutti gli altri linguaggi devono essere tradotti prima di essere eseguiti.. questo può avvenire in due maniere principalmente:
- il codice viene compilato e quindi tradotto in linguaggio macchina (producendo un eseguibile)
- il codice viene tradotto al volo durante l'esecuzione e dato in pasto alla macchina pezzo per pezzo
ps. ci sono infinite sfumature in mezzo
Quindi dite che è legale se io creo un mio linguaggio che si posa su un altro linguaggio?
Ad esempio in un linguaggio che conosco per fare che viene mostrato un messaggio c'è la funzione show_message. Posso creare, ad esempio, una mia funzione mostra_msg che si basa su show_message?
Grazie nuovamente :)
sulla legalità credo che cambi da linguaggio a linguaggio, ma in ogni caso se ti fai un tuo linguaggio e lo usi solo tu non credo che faresti niente di male... però boh...
cmq in linea di massima mi pare che i vari compilatori che ci sono in giro prima trasformano il codice in linguaggio assembly, il quale poi viene tradotto in linguaggio macchina e quindi viene generato il file eseguibile (e ovviamente questo cambia in base all'architettura ed al sistema operativo usato)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.