Connaissances Informatiques >> programmation >> C /C + + Programming >> Content
  Derniers articles
  • Comment mots en gras en C + + avec X…
  • Comment effacer l'écran Avant une n…
  • Comment compiler des codes C dans le…
  • Comment faire pour convertir Double …
  • Comment utiliser Turbo C 
  • Comment changer Borland C + + EDIT S…
  • Comment faire pour installer Boost e…
  • Comment faire pour convertir des num…
  • Quelles sont les commandes VBS ? 
  • Comment documenter les exigences log…
  •   C /C + + Programming
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    C /C + + Programming

    Pourquoi les compilateurs nécessitent plus de mémoire ?

    Les compilateurs nécessitent plus de mémoire que de nombreux autres programmes pour plusieurs raisons :

    * Grandes Représentations Intermédiaires (IR) : Les compilateurs construisent souvent de grandes représentations intermédiaires du code source. Cet IR n'est pas qu'une simple traduction; il contient souvent des informations détaillées sur la structure du programme, le flux de données, le flux de contrôle et les optimisations potentielles. La taille de cet IR peut être considérablement plus grande que le code source d'origine, en particulier pour les programmes complexes.

    * Tables de symboles et structures de données : Les compilateurs doivent conserver des tables de symboles étendues qui mappent les noms de variables, les noms de fonctions et d'autres identifiants à leurs emplacements et types correspondants en mémoire. Ces tables, ainsi que d'autres structures de données utilisées pour gérer le processus de compilation (par exemple, arbres de syntaxe abstraite, graphiques de flux de contrôle), peuvent consommer une mémoire considérable.

    * Pass d'optimisation : Les compilateurs modernes effectuent de nombreuses passes d'optimisation pour améliorer les performances et l'efficacité du code généré. Chaque passe peut impliquer l'analyse de l'IR, sa transformation et potentiellement la création de structures de données temporaires encore plus grandes. Ces optimisations sont gourmandes en mémoire, en particulier pour l'optimisation de l'ensemble du programme où le compilateur prend en compte la structure entière du programme en même temps.

    * Représentations de programmes multiples : Les compilateurs travaillent souvent avec plusieurs représentations du programme simultanément (par exemple, code source, arbre de syntaxe abstraite, représentation intermédiaire, code assembleur). Garder toutes ces représentations en mémoire en même temps nécessite un espace important.

    * Fichiers d'entrée volumineux : Les compilateurs peuvent avoir besoin de traiter des fichiers de code source très volumineux, nécessitant de la mémoire pour contenir l'intégralité du fichier ou des parties importantes de celui-ci. Cela est particulièrement vrai pour les grands projets logiciels.

    * Algorithmes complexes : De nombreux algorithmes de compilateur sont intrinsèquement complexes et nécessitent une mémoire considérable pour fonctionner efficacement. Par exemple, les algorithmes d’analyse des flux de données, d’allocation de registres et de planification de code peuvent être gourmands en mémoire.

    * Informations de débogage : Les compilateurs génèrent souvent des informations de débogage qui sont intégrées dans les fichiers exécutables ou objets de sortie. Ces informations aident les débogueurs à corréler le comportement d'exécution avec le code source d'origine et peuvent augmenter considérablement les besoins en mémoire lors de la compilation.

    En résumé, la combinaison de grandes représentations intermédiaires, de structures de données étendues, de nombreuses passes d'optimisation et de gestion de fichiers d'entrée volumineux fait que les compilateurs sont des programmes intrinsèquement gourmands en mémoire. Les besoins en mémoire peuvent augmenter rapidement avec la taille et la complexité du programme en cours de compilation.

     
    Article précédent:
    Article suivant:
    Articles recommandés
  • Comment faire un fichier CFG Avec Visual C 
  • Pourquoi la mémoire cache est appelée mémoire interne ou mémoire principale ? 
  • Comment faire pour convertir Double en String C + + 
  • Comment élaborer une fiche de projet 
  • Comment exploiter un compilateur Visual C 
  • Comment faire un graphique vertical en C + + 
  • C + + que entrainer des buffer overflows 
  • Comment faire votre propre PSP jeu 
  • Comment apprendre le C # en ligne 
  • Un tutoriel sur Microsoft Visual Studio C + + 
  • Connaissances Informatiques © http://www.ordinateur.cc