compilatori c++
  • In diretta da GamesVillage.it
    • News
    • -
    • In Evidenza
    • -
    • Recensioni
    • -
    • RetroGaming
    • -
    • Anteprime
    • -
    • Video
    • -
    • Cinema

Visualizzazione risultati da 1 a 13 di 13

Discussione: compilatori c++

Cambio titolo
  1. #1
    Functional and Stylish L'avatar di Wolve-X
    Registrato il
    03-04
    Località
    Roma
    Messaggi
    4.127

    compilatori c++

    cos'è un compilatore in c++?

  2. #2
    Utente L'avatar di devilheart
    Registrato il
    01-03
    Messaggi
    28.310
    serve a trasformare i sorgenti scritti in c++ in una forma direttamente compresibile alla cpu

  3. #3
    ~ Over My Head ~ L'avatar di Finalfire
    Registrato il
    06-03
    Località
    Italy
    Messaggi
    5.011
    Citazione devilheart
    serve a trasformare i sorgenti scritti in c++ in una forma direttamente compresibile alla cpu
    0 & 1

  4. #4
    Nothing to no one L'avatar di Toad
    Registrato il
    07-03
    Località
    Vigevano
    Messaggi
    12.467
    Citazione devilheart
    serve a trasformare i sorgenti scritti in c++ in una forma direttamente compresibile alla cpu
    Nn proprio,crea un file oggetto,per essere in linguaggio macchina deve essere il file oggetto linkato.

  5. #5
    Utente L'avatar di devilheart
    Registrato il
    01-03
    Messaggi
    28.310
    il file oggetto è una forma comprensibile alla cpu

  6. #6
    Nothing to no one L'avatar di Toad
    Registrato il
    07-03
    Località
    Vigevano
    Messaggi
    12.467
    Citazione devilheart
    il file oggetto è una forma comprensibile alla cpu
    No,perchè nn è eseguibile.
    Il file oggetto prima di essere eseguito viene linkato dal linker e dopo caricato in memoria dal loader.

  7. #7
    Utente L'avatar di bottomap
    Registrato il
    02-05
    Località
    Firenze
    Messaggi
    148
    Ciao,

    Il file oggetto generato dal compilatore, come dice Toad, è una sorta di stato intermedio tra il codice e l'eseguibile finale.
    Non è assolutamente eseguibile dalla CPU e contiene, oltre a parte del codice in un formato bytecode che dipende spesso dal compilatore (.obj creati da compilatori diversi sono raramente utilizzabili con altri compilatori), contiene i nomi delle funzioni (che il linker dovrà trasformare in indirizzi) e una serie di altre informazioni.

    E'il linker a tradurre tutti gli indirizzi presenti nel .obj e a "rimettere insieme i pezzi", per così dire, producendo un .exe a tutti gli effetti.
    I compilatori C lavorano tutti eseguendo (a volte nascondendolo all'utente) in sequenza le due effettive operazioni di compilazione e linking.

    Ciaociao
    Venite a visitarci qui: http://www.bottomap.com/

  8. #8
    Utente L'avatar di devilheart
    Registrato il
    01-03
    Messaggi
    28.310
    Citazione Toad
    No,perchè nn è eseguibile.
    Il file oggetto prima di essere eseguito viene linkato dal linker e dopo caricato in memoria dal loader.
    ho detto comprensibile, non eseguibile e i termini non sono sinonimi. hai mai provato a disassemblare un file oggetto?

  9. #9
    Arael Windwings L'avatar di RoyalEagle
    Registrato il
    11-03
    Località
    Pompei (NA)
    Messaggi
    5.636
    Assembler Ruleeeeezzzz!!!





  10. #10
    Nothing to no one L'avatar di Toad
    Registrato il
    07-03
    Località
    Vigevano
    Messaggi
    12.467
    Citazione devilheart
    ho detto comprensibile, non eseguibile e i termini non sono sinonimi. hai mai provato a disassemblare un file oggetto?
    No.Cmq,nel file oggetto vengono messe le libreire incluse sostituite le eventuali define con la variabile,come dice bottomap nn è ancora comprensibile dalla CPU,anche se è in linguaggio macchina,perchè nn è stato linkato.

  11. #11
    Utente L'avatar di devilheart
    Registrato il
    01-03
    Messaggi
    28.310
    è possibile che mi sono espresso male. per eseguibile intendo un programma che può essere invocato da terminale, lanciato da un doppio click etc. ; richiede gli input e produce dei risultati. con comprensibile intento che la sequenza di bit di cui è composto può essere direttamente interpretata dalla cpu senza ulteriori modifiche. ad esempio se del file oggetto c'è l'op code dell'istruzione ADD la cpu sa chè è una ADD senza l'aiuto del linker. è ovvio che le cose smettono di funzionare quando nel file oggetto c'è un riferimento esterno come una CALL. in questo caso la cpu sa che quell' op code corrisponde a una call e sa come eseguirla ma senza il linkaggio non sa cosa eseguire

  12. #12
    Nothing to no one L'avatar di Toad
    Registrato il
    07-03
    Località
    Vigevano
    Messaggi
    12.467
    Citazione devilheart
    è possibile che mi sono espresso male. per eseguibile intendo un programma che può essere invocato da terminale, lanciato da un doppio click etc. ; richiede gli input e produce dei risultati. con comprensibile intento che la sequenza di bit di cui è composto può essere direttamente interpretata dalla cpu senza ulteriori modifiche. ad esempio se del file oggetto c'è l'op code dell'istruzione ADD la cpu sa chè è una ADD senza l'aiuto del linker. è ovvio che le cose smettono di funzionare quando nel file oggetto c'è un riferimento esterno come una CALL. in questo caso la cpu sa che quell' op code corrisponde a una call e sa come eseguirla ma senza il linkaggio non sa cosa eseguire
    Ho capito,ma nel file oggetto nn ci sono gli inidrizzi di memoria delle istruzione,ciò avviene solo attraverso il linker.Ho capito che se c'è una ADD la CPU capisce l'istruzione,ma se nn sa a quale indirizzo lavorare?

  13. #13
    Utente L'avatar di devilheart
    Registrato il
    01-03
    Messaggi
    28.310
    è proprio quello che volevo dire, sia con il primo che con il mio penultimo post. la cpu è perfettamente in grado di comprendere il file oggetto prodotto dal compilatore (ma non di eseguirlo). torniamo all'esempio della CALL; quando nel file oggetto c'è l'opcode di questa istruzione, la cpu sa che è una chiamata a procedura e sa anche come comportarsi ovvero prima di saltare all'indirizzo specificato deve salvare il contesto nello stack. ovviamente senza il linking l'indirizzo sarà fittizio e non punterà alla procedura richiesta (a meno di una botta di culo)

Regole di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •