Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Proprietà fondamentali di un compilatore, differenze tra un compilatore ed un altro.

    Salve a tutti. Ammetto che sono un po' imbarazzato a fare questa domanda dato che sono programmatore da anni. Ammetto che ho una grossa lacuna in materia. Ora spiego.

    Per motivi che non sto a spiegare mi sono trovato a scrivere programmi in C++ (MinGW wxWidgets) ed in Freepascal (Lazarus). Qualcuno ha idea sul perché un programma viene compilato in Freepascal in pochi secondi mentre un programma più piccolo in MinGW potrebbe richiedere 10 minuti?
    Non capisco questa cosa, come è possibile che ci sia una tale differenza? Che diavolo fa per 10 minuti MinGW?

  2. #2
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Lessi da qualche parte che la lentezza del gcc era dovuta al fatto che poiche è un compilatore multiprocessore e multi qualcos'altro aveva dei layers di codice che altri compilatori nn hanno. Ma vale quanto gl'altri per risultato. Forse lo penalizza anche il formato dei files intermedi, gli oggetti per capirsi, forse il loro formato comune a molte piattaforme ha una gestione particolarmente pesante.
    Per gli Spartani e Sparta usa spartan Il mio github

  3. #3
    Non c'entra con gcc, è un problema generale di tutti i compilatori C++.
    La grammatica C++ è una delle grammatiche di linguaggi di programmazione più complicate che ci sia, in quanto il significato di molti token e keywords è pesantemente dipendente dal contesto. Questo fa sì che il parsing sia molto più lento.

    Inoltre C e C++ hanno un overhead notevole per la compilazione dovuto al precompilatore, per cui anche per il programma più semplice si finiscono con includere migliaia di righe di codice di file di inclusione, che devono essere reinterpretati ogni volta. Non è un caso che praticamente tutti i compilatori forniscono un'opzione per precompilare gli #include utilizzati in modo da ridurre drasticamente i tempi di compilazione.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Originariamente inviato da MItaly
    Non c'entra con gcc, è un problema generale di tutti i compilatori C++.
    La grammatica C++ è una delle grammatiche di linguaggi di programmazione più complicate che ci sia, in quanto il significato di molti token e keywords è pesantemente dipendente dal contesto. Questo fa sì che il parsing sia molto più lento.
    Se poi ci si aggiunge la meta programmazione template...
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  5. #5
    Hai mai provato a lavorare con una libreria* completamente fatta di template, con notevole uso di boost su un portatile del 2002 con 384 MB di RAM?





    Bene, continua a non provarci, ti assicuro che non è divertente.


    * per la cronaca, SmartWin++. Niente male come idee, peccato che sia ormai praticamente abbandonata.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.