Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

Chi scrive i compilatori?

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

Chi scrive i compilatori?

Messaggioda zenith » sab feb 21, 2009 4:16 pm

E' il primo messaggio che posto nella sezione Programmazione [:)]
...ma non ho programmato un bel niente [std] . Vorrei infatti porre una domanda da profano agli esperti:
Per scrivere un programma serve un compilatore. Ma i compilatori chi li scrive? Altri programmi. Ma qualcuno l'avrà fatto un primo compilatore?!

Wikipedia ha scritto:L'idea della compilazione prese velocemente piede e molti dei principi di design dei compilatori vennero sviluppati negli anni 60.
Un compilatore è esso stesso un programma scritto in un qualche linguaggio. I primi compilatori venivano scritti in Assembler. Il primo compilatore auto-compilato, capace cioè di compilare il suo stesso codice, fu creato per il linguaggio Lisp da Hart e Levin presso il MIT nel 1962.[2]
L'uso di linguaggio ad alto livello per scrivere i compilatori ebbe una spinta nei primi anni '70, quando i compilatori Pascal e C furono scritti negli stessi linguaggi. Creare un compilatore autocompilante introduce un problema di bootstrapping, il primo compilatore di quel linguaggio deve essere per forza scritto in un altro linguaggio o compilato facendo girare il compilatore come un interprete (come fecero Hart e Levin con il loro compilatore Lisp).


Non tiratemi fuori la storia del motore immobile di Aristotele, che non me la bevo! [:D]
«Our philosophy at “New Scientist” is this: science is interesting, and if you don’t agree you can fu** off.»
Avatar utente
zenith
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 2778
Iscritto il: lun ago 13, 2007 3:31 pm
Località: Mola di Bari

Re: Chi scrive i compilatori?

Messaggioda eDog » sab feb 21, 2009 5:18 pm

E' l'esilarante arte del compilare il compilatore, da cui nasce la domanda "E' nato prima il sistema operativo con cui compilare il compilatore, o il compilatore per compilare il sistema operativo?" [crylol] [crylol]

Ormai i compilatori sono software, software che, ovviamente, eseguono ancora il loro sporco lavoro.

GCC, il famoso GNU Compilers Collection (compilatore c, java e molto ancora) si autocompila con la procedura del bootstrap in 3 passaggi.
eDog,
"È meglio essere temuti o rispettati? Io dico: è troppo chiedere entrambe le cose?" - Tony Stark
Avatar utente
eDog
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3679
Iscritto il: sab dic 30, 2006 7:58 pm
Località: Vescovana (Padova)

Re: Chi scrive i compilatori?

Messaggioda zenith » sab feb 21, 2009 5:25 pm

eDog ha scritto:GCC, il famoso GNU Compilers Collection (compilatore c, java e molto ancora) si autocompila con la procedura del bootstrap in 3 passaggi.

Si, ma bisognerà pure istruirli questi benedetti cosi! [boh] Non ci capisco niente...
Alla domanda "è nato prima l'uovo o la gallina", è facile rispondere che è nata prima la gallina. Il difficile è dire da dove è venuta la prima gallina!
«Our philosophy at “New Scientist” is this: science is interesting, and if you don’t agree you can fu** off.»
Avatar utente
zenith
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 2778
Iscritto il: lun ago 13, 2007 3:31 pm
Località: Mola di Bari


Re: Chi scrive i compilatori?

Messaggioda Xero » sab feb 21, 2009 8:22 pm

Il compito del compilatore è trasformare in sequenze binarie il codice pseudo-umano digitato.

Un compilatore legge un comando riconosciuto come tale e lo trasforma in una stringa di numeri binari che il "cuore" primitivo del computer sa interpretare.

Rappresenta un'interprete tra gli 01001010 del computer e il nostro Do, If, Then, For, etc..

Capisci bene che i primi programmi erano creati conoscendo a menadito le sequenze di 0 e 1 necessarie per eseguire un operazione. Cosa affatto elementare e piuttosto scazzosa, ma soddisfacente direi [std]
twitter → http://twitter.com/Maurizio_D

«L'innovazione è una questione di priscio.» A. D'elia
Avatar utente
Xero
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5145
Iscritto il: mar giu 27, 2006 8:37 pm
Località: Provincia Di Matera / Bari

Re: Chi scrive i compilatori?

Messaggioda zenith » sab feb 21, 2009 8:24 pm

Ah allora ecco chi ha fatto la gallina! [8D]
«Our philosophy at “New Scientist” is this: science is interesting, and if you don’t agree you can fu** off.»
Avatar utente
zenith
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 2778
Iscritto il: lun ago 13, 2007 3:31 pm
Località: Mola di Bari

Re: Chi scrive i compilatori?

Messaggioda Luker94 » dom feb 22, 2009 5:23 pm

Da piccolo mentre imparavo a programmare mi sono posto migliaia di volte questa domanda [rolleyes]


Prima c'erano i linguaggi macchina:
Codice: Seleziona tutto
3E 41 D3 4B
3B 8F 45 B3
4E 77 55 3D
...

bello, eh?
poi, scritti in linguaggio macchina, vennero i primi assembler, che trasformavano una cosa tipo
Codice: Seleziona tutto
mov al,80h
mov bl,81h
mov ah,02h
add al,bl
adc dl,30h
int 21
int 20

in linguaggio macchina.
Con l'assembly vennero creati i primi compilatori (ammesso che qualcuno non abbia avuto la voglia di scriverseli direttamente in macchina)
Codice: Seleziona tutto
function somma(int a,int b)
{
int sum;
sum=a+b;
return sum;
}

Decisamente più comprensibile [std]
Avatar utente
Luker94
Aficionado
Aficionado
 
Messaggi: 116
Iscritto il: lun ago 11, 2008 12:20 pm
Località: Zena

Re: Chi scrive i compilatori?

Messaggioda dararag » dom feb 22, 2009 5:44 pm

ovviamente, i programmi scritti in macchina li puoi usare senza compilarli.... ma ti immagini a scrivere cinquanta righe per un "Hello World!"?? [...] [:D]
Maledette aziende produttrici, l'unico telefilm interessante degli ultimi tempi l'hanno interrotto alla decima puntata... e chi voleva sapere la fine?
Avatar utente
dararag
Silver Member
Silver Member
 
Messaggi: 1116
Iscritto il: mar gen 22, 2008 8:57 pm
Località: Casoria

Re: Chi scrive i compilatori?

Messaggioda zenith » dom feb 22, 2009 6:02 pm

Quindi, un bel giorno un tizio senza niente da fare si è alzato, ha preso un foglio e si è messo a scrivere 01010111001010100001010101001010111011010101010101010111111111010100000010111000110101001010101...

E ha fatto il primo compilatore. Poi dopo essersi fatto il maz** ha usato il compilatore per compilare altra roba.
E poi con lo stesso compilatore si è inventato un altro linguaggio. Ed ecco l'altra domanda: come si fa ad inventare un linguaggio di programmazione? Insomma, come si fa a farlo capire ai compilatori?
«Our philosophy at “New Scientist” is this: science is interesting, and if you don’t agree you can fu** off.»
Avatar utente
zenith
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 2778
Iscritto il: lun ago 13, 2007 3:31 pm
Località: Mola di Bari

Re: Chi scrive i compilatori?

Messaggioda dararag » dom feb 22, 2009 6:27 pm

ora, mettiamo che tu voglia sommare come diceva prima luker, a + b, ok?
diciamo che, nel tuo linguaggio, tu voglia che questo possa essere fatto tramite la funzione sum(int a, int b), quindi dirai al compilatore che, quando incontrerà l'istruzione, dovrà sostituirla con il codice macchina necessario ad eseguire la somma [^]
Maledette aziende produttrici, l'unico telefilm interessante degli ultimi tempi l'hanno interrotto alla decima puntata... e chi voleva sapere la fine?
Avatar utente
dararag
Silver Member
Silver Member
 
Messaggi: 1116
Iscritto il: mar gen 22, 2008 8:57 pm
Località: Casoria

Re: Chi scrive i compilatori?

Messaggioda Xero » dom feb 22, 2009 6:29 pm

zenith ha scritto: Ed ecco l'altra domanda: come si fa ad inventare un linguaggio di programmazione? Insomma, come si fa a farlo capire ai compilatori?

In teoria gli dici "caro compilatore, questo è il linguaggio Z#, in cui se ti scrivo "se" devi associarlo alla sequenza di bit 01010010101, ok?", in pratica non so come si faccia, credo sia tra gli esami della specialistica, ma non è nulla di elementare, anzi.
twitter → http://twitter.com/Maurizio_D

«L'innovazione è una questione di priscio.» A. D'elia
Avatar utente
Xero
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5145
Iscritto il: mar giu 27, 2006 8:37 pm
Località: Provincia Di Matera / Bari

Re: Chi scrive i compilatori?

Messaggioda Luker94 » dom mar 08, 2009 5:17 pm

Devi avere molte buone ragioni se vuoi scrivere da 0 un compilatore...non è proprio la cosa più semplice [rolleyes]
Avatar utente
Luker94
Aficionado
Aficionado
 
Messaggi: 116
Iscritto il: lun ago 11, 2008 12:20 pm
Località: Zena


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising