Newsgroup: it.comp.os.linux.iniziare
Titolo: Compilazione, domanda.

Mi chiedevo una cosa...
I sorgenti dei programmi sono scritti in un linguaggio di livello che 
suppongo essere abbastanza alto, tipo C per esempio (ci capisco zero di 
programmazione, mi fermai al Pascal...). Che io sappia, in questi 
linguaggi non ci sono chiamate dirette all'HW, ma il tutto viene passato 
all'OS che si smazza poi l'interfacciamento con CPU e periferiche varie.
Quello che mi chiedo è perché un programma distribuito in codice 
sorgente non possa essere passato ad un compilatore commerciale capace 
di produrre codice binario per l'OS di redmond. In altre parole: cosa 
distingue un listato sorgente in, poniamo, C++ fatto per Linux da uno 
fatto per Windows piuttosto che per qualunque altro OS?
-- 
GenTLe ...di Varese, provincia.
TL1000S + Mito 125 per la pista
La mia HP: 
http://digilander.iol.it/thegentle/index.htm
Debian Etch powered... Again :-)

 fatto per Windows piuttosto che per qualunque altro OS?
Proprio le chiamate alle librerie del sistema operativo.
Per scrivere un punto sullo schermo, ad esempio, si chiameranno due
nomi di funzione diverse, al 90% con parametri diversi.
Per quello hanno fatto cygwin che rende disponibile un ambiente con
le chiamate compatibili anche in ambiente windows.
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net

 nomi di funzione diverse, al 90% con parametri diversi.
Ah, quindi il legame è ancora stretto.
Pensavo che il livello del codice fosse a livello più elevato: se 
ricordo bene, linguaggi ad oggetti quali Java non hanno questo tipo di 
legami. Se ti serve disegnare un punto, richiami l'oggetto "disegna il 
punto" passandogli delle variabili e quello fa il mestiere.
Mumble...
Ora che ci penso però... Forse Java funziona anche perché "sotto" ha un 
runtime environment compilato ad-hoc per l'os su cui il programma java 
viene eseguito...
Son fuori strada di molto?


 viene eseguito...
...bingo. :-D

 programmazione, mi fermai al Pascal...).
Il C si considera un linguaggio di livello abbastanza basso... più alto 
dell'assembly ma comunque abbastanza basso.
Un programma in C, ma anche in C++, per aprire finestre, fare grafica 
oppure usare l'hardware necessita di interfacciarsi direttamente con il 
S.O.; è per questo motivo che un programma in C/C++ è assolutamente 
portabile soltanto se scritto secondo lo standard ISO (che infatti non 
sa cosa sia la grafica, il multimedia, etc.).
Per il Java come hai intuito le cose sono molto diverse.
Rispetto al passato per il C++ qualcosa si è mosso: esistono infatti 
diversi framework che rendono la portabilità da un S.O. all'altro più 
semplice, ad esempio wxWidgets...

 CUT
Grazie ragazzi, mi avete chiarito un po' di cose.
Bello sbattimento a questo punto programmare, se per ogni Os è 
necessario conoscere suddetto OS ben benino!
-- 
GenTLe ...di Varese, provincia.
TL1000S + Mito 125 per la pista
La mia HP: 
http://digilander.iol.it/thegentle/index.htm
Esistono bionde intelligenti? Si', le birre.

 Son fuori strada di molto?
Come uno che cammina sulla riga di mezzeria.
