Compilateurs

Quel type de grammaire, utilisé pour décrire la grammaire de nombreux langages de programmation, sert de base à l'analyse syntaxique ?

  1. AUniquement les grammaires régulières
  2. BLa grammaire des langues naturelles
  3. CLes grammaires hors contexte
Afficher la réponse et l'explication

Réponse : C. Les grammaires hors contexte

Les parenthèses imbriquées ou une instruction if contenant une autre instruction if ne peuvent pas s'exprimer par des expressions régulières. La grammaire de la plupart des langages de programmation s'exprime par une grammaire hors contexte, ensemble de règles de réécriture comme « expr → expr + terme », sur laquelle repose l'analyse syntaxique. Il existe des méthodes d'analyse comme l'analyse LL, qui applique les règles de haut en bas, et l'analyse LR, qui construit de bas en haut, ainsi que des outils générant automatiquement l'analyseur à partir de la grammaire. Les grammaires régulières conviennent à l'analyse lexicale et ne traitent pas l'imbrication.

S'entraîner sur ce thème Retour au thème

Autres questions sur Compilateurs

  1. Quelle est la forme correcte de l'arbre syntaxique abstrait de l'expression 2 + 3 * 4 ?
  2. Quelle caractéristique du code à trois adresses, l'une des représentations intermédiaires, est correcte ?
  3. Que détermine l'analyse de vivacité (liveness), effectuée en préparation de l'allocation de registres ?
  4. Dans une fonction, le nombre maximal de valeurs vivantes simultanément est de 5. Dans le cas simple où le graphe d'interférence ne crée pas d'autre contrainte que ces 5 valeurs, combien de registres faut-il au minimum pour placer toutes les valeurs en registre sans déversement ?
  5. Si une boucle de 100 itérations est réécrite par déroulage avec quatre copies du corps, combien y a-t-il de tests de comptage et de branchements ? (100 est divisible par 4)

Comparatifs sur ce thème