|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#21 | ||
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Quote:
|
||
|
|
|
|
|
#22 | ||
|
Senior Member
Iscritto dal: Jan 2002
Città: Trieste
Messaggi: 1647
|
Quote:
Quote:
E immagino pure che finché non è arrivato a stabilizzarsi almeno con il 4.5.0 non siano state rilasciate versioni autocompilate, per il rischio di inserire dei bug "ciclici". |
||
|
|
|
|
|
#23 | |
|
Senior Member
Iscritto dal: Jun 2010
Città: Varese
Messaggi: 996
|
Quote:
Intendevo dire che un compilatore deve poter produrre codice eseguibile indipendentemente dal Sistema Operativo, ovvero non deve dipendere dal Sistema Operativo che lo 'esegue'/ospita. |
|
|
|
|
|
|
#24 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Suppongo che tu voglia dire che un compilatore deve essere "agnostico" rispetto ad uno specifico Sistema Operativo, è corretto?
__________________
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) |
|
|
|
|
|
#25 | |
|
Senior Member
Iscritto dal: Jun 2010
Città: Varese
Messaggi: 996
|
Quote:
Concetto astratto, se non mi sono espresso bene ci riprovo :P Perdonatemi |
|
|
|
|
|
|
#26 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Boh, passo, non ho capito cosa stai dicendo, ma è molto probabile che ciò sia dovuto alla mia ignoranza circa l'argomento "compilatore", non ne so molto infatti, ma cercavo lo stesso di seguire il thread.
__________________
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) |
|
|
|
|
|
#27 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Altrimenti potresti prendere quanto ottenuto da gcc su linux cercare di eseguirlo su Windows e aspettarti che questo funzioni. |
|
|
|
|
|
|
#28 | |
|
Senior Member
Iscritto dal: Jun 2010
Città: Varese
Messaggi: 996
|
Quote:
Teoricamente con la cross-compilazione questo è possibile. :P |
|
|
|
|
|
|
#29 |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Non capisco il problema. La parte piu' rognosa e' il boot, dove magari ti serve un po' di assembler. Il resto lo scrivi come codice aggiuntivo nel linguaggio stesso. E' l'approccio di molti sistemi forth che con una manciata di assembler riescono avviare il compilatore/interprete e poi a caricare tutto il resto nel linguaggio stesso.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
|
|
|
|
#30 | |||
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Quote:
Quote:
Quote:
Però forse, come avete detto, agli inizi non esistendo il concetto di sistema operativo, i programmi giravano e basta no? Nel senso, il sistema operativo è stato poi un modo per 'standardizzare' gli eseguibili...
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|||
|
|
|
|
|
#31 |
|
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
ragassuoli state sempre ragionando con la mentalità tipica del ventunesimo secolo
dojolab ha ragione perchè i compilatori sono nati su schede perforate e lì i sistemi operativi non esistevano, ma non esistevano nemmeno tutte le diavolerie dell'hardware moderno diamine, ai tempi del dos ( quindi non parlo di 100 anni fa ) avevamo wordprocessor pieni zeppi di driver per le stampanti i primi compilatori erano ovviamente programmi che pilotavano direttamente l'hardware e quindi un sistema operativo non gli serviva chiaramente oggi è impossibile perchè un compilatore non può ( e nemmeno è affar suo ) gestire periferiche, bootstrap della macchina, memoria virtuale, ecc... |
|
|
|
|
|
#32 |
|
Senior Member
Iscritto dal: May 2008
Messaggi: 533
|
■
Ultima modifica di rеpne scasb : 18-06-2012 alle 16:08. |
|
|
|
|
|
#33 | |
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Quote:
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
|
|
|
|
|
#34 | |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 7033
|
Quote:
Ad esempio, puoi scriverti un compilatore C con codice C. Oppure un compilatore per un linguaggio pippo partendo dal linguaggio C. Poi riscrivi il compilatore con il linguaggio pippo, che a questo punto hai a disposizione. Ultima modifica di Unrue : 13-10-2010 alle 18:28. |
|
|
|
|
|
|
#35 |
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Beh si, però qua la storia si fa molto complicata perchè:
1. Chi stabilisce e come quanto un linguaggio è ( o sarà se lo stiamo creando ) potente? 2. Siccome presuppongo che all'inizio degli inizi non ci fosse niente, immagino che il primo compilatore ( e quindi il primo linguaggio ) sia stato scritto in linguaggio macchina...
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
|
|
|
|
#36 |
|
Senior Member
Iscritto dal: May 2008
Messaggi: 533
|
■
Ultima modifica di rеpne scasb : 18-06-2012 alle 16:09. Motivo: Aggiunto link a wikipedia |
|
|
|
|
|
#37 |
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Bene, però il link di wikipedia, in cui si parla del problema uovo/gallina propone delle soluzioni che, se ho ben capito, fanno uso di qualcosa già esistente.
A me ora pare di capire che l'unico modo per fare un compilatore partendo da zero sia di scriverlo in linguaggio macchina. Riscriverlo nel linguaggio per cui lo si è scritto, e ricompilarlo. Andando avanti finchè non si ottiene un codice abbastanza ottimizzato. Ci siamo?
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
|
|
|
|
#38 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Non è strettamente neccessario implementare il primo compilatore per un nuovo linguaggio con il linguaggio macchina; è sufficiente scegliere un linguaggio preesistente adatto allo scopo. Vuoi creare il nuovo linguaggio X Se, ad esempio, sei in un era-informatica in cui esiste solo linguaggio macchina e linguaggio assembly, userai uno di questi due, probabilmente l'assembly. 1) Scrivi il compilatore per X in linguaggio assembly, lo compili con l'assembler, e hai l'eseguibile del primo compilatore per il linguaggio X. 2) A questo punto, in teoria potresti riscrivere il compilatore per X in linguaggio X, lo compili con il compilatore che hai ottenuto al punto 1) e hai l'eseguibile del compilatore per X scritto con X stesso. Vuoi creare il nuovo linguaggio Y Sei in un era-informatica in cui esiste linguaggio macchina, linguaggio assembly, e linguaggio C? Probabilmente scegliere il C per scrivere il primo compilatore per il nuovo linguaggio è una buona scelta. Vuoi creare il nuovo linguaggio Z Sei in un era-informatica in cui esiste solo il linguaggio macchina. Indovina che fai?
__________________
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) |
|
|
|
|
|
|
#39 | ||
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12996
|
Quote:
Se per potente intendiamo (come dovrebbe essere) la classe di problemi che puoi risolvere con esso. Quote:
Di lì poi sicuramente il primo compilatore sarà stato scritto in assembly e così via... |
||
|
|
|
|
|
#40 | ||
|
Senior Member
Iscritto dal: Apr 2003
Messaggi: 16462
|
Quote:
Un linguaggio Turing completo non dev'essere necessariamente complicato, basta guardare a Brain Fuck. E un linguaggio che e' tanto potente quanto il C o il C++ o Java etc... ma dal punto di vista semantico e' quasi a livello assembler per non dire peggio. Quote:
__________________
MICROSOFT : Violating your privacy is our priority |
||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:20.





















