PDA

Visualizza la versione completa : [OT] Domande su C++, GUI e sui sistemi operativi


XWolverineX
26-11-2005, 21:11
Salve ragazzi.
Per caso sapete se uscirà un nuovo standard del C++ prima o poi? Che includa una GUI automatica? Che supporti le stringhe in modo nativo e altri miglioramenti?

Quando Bjarne Stropouts (il cognome non me lo ricordo bene) ha creato il C++, ha fatto un compilatore oppure ha creato solo la sintassi? Insomma noi oggi vediamo il gcc, Borland, il Visual C e sono vari compilatori...ma Bjarne ne avrà creato uno suo originale che poi è stato sostituito da quelli nuovi piu' potenti? Oppure ha creato la sintassi e ha detto "Tenete brutti gay, lavorateci sopra"??

Poi avevo qualche domanda sui sistemi operativi.

Anche un compilatore è un programma, scritto in C++, Asm, in C o in quello che volete.
Però un compilatore su windows e uno su linux lavorano in modo diverso, poichè VisualC farà un assembly per windows, e gcc ne farà un assembly diverso. E fin qui ok. Leggo che TUTTI i sistemi operativi di windows sono stati scritti in C++. Un sistema operativo però è scritto da 0, cio è con un pc che non ha niente dentro, e quindi nemmeno un compilatore. Una volta scritto tutto il codice sorgente del sistema operativo, come lo compilano? Scrivono un compilatore asm in codice binario, poi un compilatore C in asm, poi un compiatore C++ in C e poi compilano? Ma come fanno a funzionare senza il sistema operativo??
Ho molti dubbi...

oregon
26-11-2005, 21:33
Originariamente inviato da XWolverineX
Salve ragazzi.
Per caso sapete se uscirà un nuovo standard del C++ prima o poi? Che includa una GUI automatica? Che supporti le stringhe in modo nativo e altri miglioramenti?

Piu' che un nuovo standard (non avrebbe senso, lo standard c'e'), potrebbero essere rese standard alcune librerie.

Per le stringhe, sono gia' supportate con STL (che fa parte dello standard C++).

Per la GUI, non comprendo a cosa ti riferisci.


Originariamente inviato da XWolverineX
Quando Bjarne Stropouts (il cognome non me lo ricordo bene)

Bjarne Stroustrup
Il suo sito ... http://www.research.att.com/~bs/


Originariamente inviato da XWolverineX
ha creato il C++, ha fatto un compilatore oppure ha creato solo la sintassi? Insomma noi oggi vediamo il gcc, Borland, il Visual C e sono vari compilatori...ma Bjarne ne avrà creato uno suo originale che poi è stato sostituito da quelli nuovi piu' potenti?


Ha definito le "regole" ma anche una "implementazione".
Ha quindi scritto un compilatore ma ovviamente, a fini "didattico/dimostrativi" ...


Originariamente inviato da XWolverineX
Oppure ha creato la sintassi e ha detto "Tenete brutti gay, lavorateci sopra"??

Queste battute non sono di buon gusto ...


Originariamente inviato da XWolverineX
Poi avevo qualche domanda sui sistemi operativi.

Anche un compilatore è un programma, scritto in C++, Asm, in C o in quello che volete.
Però un compilatore su windows e uno su linux lavorano in modo diverso, poichè VisualC farà un assembly per windows, e gcc ne farà un assembly diverso. E fin qui ok. Leggo che TUTTI i sistemi operativi di windows sono stati scritti in C++.

Non solo in C++. Anche in C e Asm (probabilmente, maggiormente in C).


Originariamente inviato da XWolverineX
Un sistema operativo però è scritto da 0, cio è con un pc che non ha niente dentro, e quindi nemmeno un compilatore. Una volta scritto tutto il codice sorgente del sistema operativo, come lo compilano? Scrivono un compilatore asm in codice binario, poi un compilatore C in asm, poi un compiatore C++ in C e poi compilano? Ma come fanno a funzionare senza il sistema operativo??

I software possono essere scritti anche su altri sistemi.
Su un sistema UNIX si puo' tranquillamente scrivere il core di un sistema operativo che venga eseguito su altre macchine (ovviamente con CPU dello stesso tipo). Una volta scritto il kernel, dotandosi di un minimo macroassembler, si fa tutto il resto.


Originariamente inviato da XWolverineX
Ho molti dubbi...

Chi non ne ha ...

alka
26-11-2005, 22:05
Non capisco onestamente il legame tra GUI e linguaggio, forse perchè in effetti non c'è un legame: ciò che è il linguaggio e il compilatore è un aspetto, ciò che sono le librerie che eventualmente ci si vogliono costruire sopra è un altro.

Lo standard C++ definisce appunto uno standard che può essere preso ed esteso da altri produttori, come Borland che hai citato, per costruire propri compilatori e versioni leggermente differenti del linguaggio, magari per integrarlo con strumenti già esistenti (Delphi, ad esempio) realizzando anche librerie per la creazione di interfacce grafiche e così via, magari con strumenti RAD e tutto il resto.

Tutte queste risorse però sono "extra" che non hanno a che vedere con il linguaggio ma sfruttano il linguaggio per implementare funzionalità, richiamare funzioni, per fornire insomma codice utilizzabile che non deve scrivere lo sviluppatore ma è già disponibile per la gestione di GUI, l'accesso ai database e così via.

Per il resto, ma anche per questo argomento, quoto essenzialmente quello che ha scritto Oregon.

Ciao! :ciauz:

Ikitt
26-11-2005, 22:36
Originariamente inviato da XWolverineX
Per caso sapete se uscirà un nuovo standard del C++ prima o poi?
Si, e` previsto un aggiornamento (in tempi ragionevoli voglio dire). Si parla di includere nello standard parte delle librerie boost (http://www.boost.org)


Che includa una GUI automatica? Che supporti le stringhe in modo nativo e altri miglioramenti?
A questo ha gia risposto oregon, c'e` la classe string gia` nello standard del 98. Per le GUI non credo ci sara` mai quel che intendi.



Però un compilatore su windows e uno su linux lavorano in modo diverso, poichè VisualC farà un assembly per windows, e gcc ne farà un assembly diverso.
L'assembly quello e`, per quel che ne so.
Per dire, una JMP sara` rappresentata nello stesso modo sia su linux che su windows, se entrambi girano su i386.
Quel che cambia e` casomai tutto il resto, ovvero formato del file oggetto, il layout dell'eseguibile etc. etc.


E fin qui ok. Leggo che TUTTI i sistemi operativi di windows sono stati scritti in C++.
Sono abbastanza sicuro che il primi NT almeno, ma probabilmente anche i windows precedenti e contemporanei, fossero fatti in C, passando in seguito a C++/C#/quelchee`.


Una volta scritto tutto il codice sorgente del sistema operativo, come lo compilano? Scrivono un compilatore asm in codice binario, poi un compilatore C in asm, poi un compiatore C++ in C e poi compilano?
Sostanzialmente si :)


Ma come fanno a funzionare senza il sistema operativo??
Crosscompilazione e` la chiave. Ci si appoggia sempre a qualcosa di gia` fatto, a meno di risalire davvero agli albori dell'informatica.

Loading