|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Compilatore e programmi, chi?
In questi giorni, veniva rispiegato il funzionamento di un compilatore.
Vi riporto una frase del professore: "Il compilatore non è altro che un programma che 'trasforma' il linguaggio di alto livello in linguaggio macchina, dando vita ( dopo una serie di altri passaggi - file *.obj e linker ) ad un programma, l'eseguibile" Ora... Se il compilatore è parte di ciò che da vita ad un programma... E il compilatore è un programma... Chi/cosa ( quale entità??? Se è un mistero della fede ( informatica ), avvertitemi
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Jun 2010
Città: Varese
Messaggi: 996
|
Quote:
|
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Però vero che ho ragione? Cioè... C'è qualcosa di losco... O comunque manca un pezzo di storia in tutto questo...
Avanti, a nessun ( a cui sia stato spiegato il funzionamento di un compilatore ) è mai venuto in mente questo ragionamento? Ha mai trovato risposte scientifiche?
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jun 2010
Città: Varese
Messaggi: 996
|
Quote:
Quando facevo l'UNI mi ero posto questo quesito: coma diavolo sono nati i programmi? E i compilatori? E . e. e. ? Beh la risposta sta in una dolcissima fanciulla che a manina scrisse il primo compilatore direttamente dal linguaggio binario (re-implementando il lavoro che fece Ada Lovelace qualche decennio prima... anzi, nel secolo prima :P). Ahhh chi se la ricorda? Io ho terribili vuoti di memoria! :|
__________________
Il mercatino di dojolab: VENDO UN PO' DI COSE! VAI Vendo Libro Oracle 10g GUIDA COMPLETA della Oracle Press, ITALIANO: LINK Ultima modifica di dojolab : 12-10-2010 alle 10:34. |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Ma ha scritto un compilatore a suon di 1 e 0 oppure in Assembly?
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jun 2010
Città: Varese
Messaggi: 996
|
Quote:
Poi il primo vero compilatore in ASM fu per Lisp, però magari ricordo male. Sono passati tanti anni (e io manco c'ero |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Quote:
Cioè ma come cacchio fai a fare un programma scrivendo 1 e 0 , cioè diventi scemo!! Ma seriamente è stata la signora da te linkata?
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
[OT]
Ma soprattutto notate come sia appannaggio esclusivo del mondo femminile il vero potere delle creazione. Altro che sesso debole.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Un nuovo compilatore per il linguaggio X lo puoi scrivere tramite le tecniche di bootstrapping, ovvero nei seguenti modi:
1)Nel linguaggio Y già esistente per la piattaforma 2)Tramite l'interprete del linguaggio X già scritto per la piattaforma (Lisp '62) 3)Cross compilando, ovvero utilizzando il compilatore X già esistente su un'altra piattaforma (esempio gcc puoi scrivere software per ARM da una macchina X86) Ci sono linguaggi self-hosted ovvero che possono compilare se stessi |
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Jun 2010
Città: Varese
Messaggi: 996
|
Quote:
Ovviamente non ha fatto tutto da sola povera crista |
|
|
|
|
|
|
#11 | ||
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Quote:
Quote:
Quindi la prima va esclusa, perchè linguaggi immagino non c'è ne fossero... La due uguale... La tre pure!! Il compilatore non esiste!! Quindi... Che dire... Mi sa che dojolab c'ha azzeccato... Certo però che è una cosa da fuoriditesta. È chiaro però che senza questi personaggi probabilmente non saremmo qui a scrivere, magari tutto ciò non esisterebbe nemmeno.
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
||
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Jun 2010
Città: Varese
Messaggi: 996
|
Quote:
Aspetto magari chi si ricorda meglio di me, in pausa mi vado a rileggere gli appunti/libro di storia dell'informatica del primo anno in uni |
|
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
All'epoca esistevano ancora le schede perforate figurati il poter modificare un programma senza dover andare di saldatore o di incisione di stampati era sicuramente una conquista straordinaria, anche se dovevi scrivere tutto in linguaggio macchina. E comunque la domanda la potresti girare anche per il sistema operativo, che non è altro che un (IL) programma anche lui. Ma un compilatore senza sistema operativo non può funzionare. Quindi il sistema operativo necessita di essere compilato, ma il compilatore necessita di sistema operativo. Come risolvi? |
|
|
|
|
|
|
#14 | ||
|
Senior Member
Iscritto dal: Jun 2010
Città: Varese
Messaggi: 996
|
Quote:
Già nel '600 (Pascal) e successivamente nel 700/800 comparivano le prime macchine 'automatiche' che 'elaboravano' informazioni; ovviamente NON in digitale. Quote:
Un programma consiste in un INPUT dato ad un calcolatore e un OUTPUT ottenuto da esso. Fine. Un compilatore può generare qualsiasi eseguibile senza dipendere da un sistema operativo; poi ci sono sistemi operativi non compilati. |
||
|
|
|
|
|
#15 | ||
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Quote:
Oggi comunque non è più un problema, non si riparte mai da 0, al massimo si cross compila in C |
||
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Apr 2003
Messaggi: 16462
|
Quote:
Beh fermiamoci un momento. Non confondere il meccanismo di input (schede perforate) con il linguaggio. Il Fortran e' stato il primo linguaggio di alto livello, ed il primo ad avere un compilatore. Il lavoro per produrre quel compilatore, costo' un rene (anzi quasi 2) alla IBM che ne finanzio' lo sviluppo. Fu un impresa a dir poco titanica. Anni 50 eh anni 50. Oggi a confronto far un compilatore e' molto piu' semplice pur mantenendo tutti i distinguo del caso.
__________________
MICROSOFT : Violating your privacy is our priority |
|
|
|
|
|
|
#17 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Trieste
Messaggi: 1645
|
Quote:
Il concetto di sistema operativo è separato. Gli antichi computer anni '50 avevano l'input chessò, a schede perforate, e lo stesso output, nisba per tutto il resto. In generale, i compilatore e i programmi per computer si sono evoluti nel tempo, e da un compilatore banale si è andati man mano verso compilatori più evoluti. Il primo compilatore sarà stato scritto in codice macchina; a un certo punto, non appena un compilatore è diventato self-hosting, magari le versioni successive saranno diventate dipendenti da una versione precedente per compilarlo. Ti faccio un esempio con GCC: immagino che GCC 4.5, che è un programma anch'esso, richieda GCC 4.4 per essere compilato, e GCC 4.6 richiederà GCC 4.5. Ma in passato probabilmente la prima versione di GCC sarà stata a sua volta compilata con un'altro dei compilatori esistenti. Prendi anche l'esempio di Go!, www.golang.org . Essendo la prima versione la toolchain è scritta in C per questioni di bootstrap, ma non è da escludere che il compilatore Go! 2.0 possa richiedere un compilatore 1.0 per essere compilata a sua volta. |
|
|
|
|
|
|
#18 | |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Quote:
Al massimo puoi scrivere una VM Go che gira Go, ma quella girerà sempre su una VM C, tipo PyPy (di cui continua a sfuggirmi lo scopo Cmq quella del topic è una domanda che mi ha sempre confuso, ringrazio il prof di Calcolatori per avere indirettamente risposto
|
|
|
|
|
|
|
#19 | ||
|
Senior Member
Iscritto dal: Jun 2010
Città: Varese
Messaggi: 996
|
Quote:
Rileggi bene ciò che ho scritto. Quote:
Poi che sono utili o inutili è un altro paio di maniche |
||
|
|
|
|
|
#20 | ||
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Se ne è indipendente significa che deve svolgerne le funzioni altrimenti non utilizzi la macchina e quindi il compilatore stesso. Puoi si può anche filosofeggiare su programmi astratti che girano su macchine di Turing. Quote:
|
||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:54.




















