
Comprendre le compilateur
Description
Introduction au livre
Puisqu'un compilateur est un programme système, il est difficile à comprendre car il nécessite une connaissance de tout ce qui concerne le système.
Cependant, ce livre présente brièvement les connaissances relatives à l'apprentissage des compilateurs, ce qui facilite l'apprentissage.
Il se compose de 13 chapitres au total. Les chapitres 1 et 2 donnent un aperçu du compilateur, les chapitres 3 et 5 couvrent la théorie des langages formels et des automates pour expliquer les analyseurs lexicaux et les analyseurs syntaxiques, et les chapitres 4 et 6 à 12 couvrent chaque partie du compilateur.
Enfin, le chapitre 13 explique l'utilisation pratique de Lex (Flex), un générateur d'analyseur lexical, et de Yak (Bison), un générateur d'analyseur syntaxique.
※ Ce livre a été conçu comme manuel pour les cours universitaires, il ne fournit donc pas de réponses aux exercices pratiques.
Cependant, ce livre présente brièvement les connaissances relatives à l'apprentissage des compilateurs, ce qui facilite l'apprentissage.
Il se compose de 13 chapitres au total. Les chapitres 1 et 2 donnent un aperçu du compilateur, les chapitres 3 et 5 couvrent la théorie des langages formels et des automates pour expliquer les analyseurs lexicaux et les analyseurs syntaxiques, et les chapitres 4 et 6 à 12 couvrent chaque partie du compilateur.
Enfin, le chapitre 13 explique l'utilisation pratique de Lex (Flex), un générateur d'analyseur lexical, et de Yak (Bison), un générateur d'analyseur syntaxique.
※ Ce livre a été conçu comme manuel pour les cours universitaires, il ne fournit donc pas de réponses aux exercices pratiques.
- Vous pouvez consulter un aperçu du contenu du livre.
Aperçu
indice
Chapitre 1 : Présentation du compilateur
01 La nécessité d'un compilateur
02 Langage de programmation
1. Un langage pour le calcul numérique
2 langues pour le traitement de bureau
3 langages d'intelligence artificielle
4 Langages de programmation système
5 autres langues
6 concepts fondamentaux des langages de programmation
03 Types de traducteurs
Chapitre 02 Structure d'un compilateur simple
01 Structure logique du compilateur
1. Aperçu
2. Structure logique
02 Structure physique du compilateur
Chapitre 3 : Langages formels et automates finis
01 Langage formel
02 Format Grammaire
03 Notation grammaticale
1 Expression régulière
2 tableaux de grammaire
3 Notation BNF
4 Notation EBNF
04 Automates finis
1 Automates finis
2. Conversion d'un automate fini non déterministe (AFN) en automate fini déterministe (AFD).
Minimisation du nombre d'états de 3 DFA
4. Relations d'équivalence des grammaires régulières, des expressions régulières et des automates finis
Chapitre 4 : Analyse du vocabulaire
01 Aperçu de l'analyse lexicale
02 Reconnaissance des jetons
1. Reconnaissance des identifiants
2. Reconnaissance des mots réservés
3. Reconnaissance des nombres entiers
4. Reconnaissance des constantes numériques réelles
5 Traitement des commentaires
03 Conception et mise en œuvre d'un analyseur lexical
Chapitre 5 : Grammaires hors contexte et automates à pile
01 Grammaire hors contexte
02 Pâtisserie
03 Grammaire ambiguë
04 Conversion grammaticale
1. Suppression des règles de création inutiles
2. Élimination de la règle de génération ε
3. Suppression des règles de génération unique
4 Factorisation à gauche
5. Élimination de la récursivité gauche
05 Automates à pile
Chapitre 6 : Analyse syntaxique
01 Aperçu de l'analyse syntaxique
02 Analyse syntaxique descendante
1 PREMIER et SUIVRE
2 Analyse syntaxique descendante récursive
3 Analyse prédictive
03 Analyse ascendante
1. Analyse syntaxique par déplacement-réduction
2 Analyse de la priorité des opérateurs
3 Analyse LR
04 Utilisation d'une grammaire ambiguë et de routines de gestion des erreurs
Chapitre 7 : Analyse sémantique et inspection des types
01 Aperçu de l'analyse sémantique
Tableau des symboles 02
03 Grammaire des attributs
Inspection de type 04
1 Types de données
Système de type 2
Conversion de type 3
Chapitre 8 : Langage intermédiaire et génération de code intermédiaire
01 Langue intermédiaire
1. Le concept de langue intermédiaire
2 types de langues intermédiaires
02 Traduction de phrases directives
03 Générer le code intermédiaire
1 Formule logique
2 instructions de substitution
Chapitre 9 : Types de données structurées et environnement d’exécution
01 Types de données structurées
1 enregistrement
2 tableaux
02 Configuration de la mémoire
03 Stratégie d'allocation de mémoire
1. Allocation de mémoire statique
2. Allocation de mémoire de pile
3. Allocation de mémoire du tas
04 Méthode de passage des paramètres
1 Valeur d'appel
2 appels de référence
3 Nom Appel
4 Appel valeur-résultat
Chapitre 10 Optimisation du code
01 Optimisation du code
02 Blocs de base et organigramme
1 bloc de base
2. Graphe de flux de contrôle et DAG
3 Analyse des flux
03 Techniques d'optimisation
1 Technique d'optimisation du judas
2 Techniques d'optimisation locale
3 Techniques d'optimisation de boucle
4 Techniques d'optimisation globale
5 Techniques d'optimisation dépendantes de la machine
Chapitre 11 Optimisation du parallélisme et de la localité
01 Traitement parallèle
1 Système de traitement parallèle
2. Différents concepts relatifs au traitement parallèle
02 Dépendance des données et analyse de la dépendance des données
1 Dépendance des données
2. Analyse dépendante des données
03 Transformation de boucle
Fusion à 1 boucle
Séparation de 2 boucles
3 boucles inversées
4 boucles d'échange
5 boucles inclinées
6 mines à ciel ouvert
7 boucles de pavage
Chapitre 12 : Génération de code objectif
01 Concept de génération de code objectif
02 Technique de correspondance de modèles arborescents
03 Générer le code cible
1. Générer le code objet pour les expressions arithmétiques
2. Générer le code cible pour les expressions logiques
04 Attribution et affectation des registres
1. Attribution et affectation des registres locaux
2. Allocation et affectation des registres globaux
3. Allocation des registres par coloration du graphe
Chapitre 13 : Rex et le yak
01 Rex et Yak
1 Rex
2 yaks
02 Formats de fichiers d'entrée pour Rex et Yak
1 Format de fichier d'entrée Rex
2 Format de fichier d'entrée de Yak
03 Comment installer Flex et Bison
04 Comment utiliser Flex
05 Comment utiliser Bison
01 La nécessité d'un compilateur
02 Langage de programmation
1. Un langage pour le calcul numérique
2 langues pour le traitement de bureau
3 langages d'intelligence artificielle
4 Langages de programmation système
5 autres langues
6 concepts fondamentaux des langages de programmation
03 Types de traducteurs
Chapitre 02 Structure d'un compilateur simple
01 Structure logique du compilateur
1. Aperçu
2. Structure logique
02 Structure physique du compilateur
Chapitre 3 : Langages formels et automates finis
01 Langage formel
02 Format Grammaire
03 Notation grammaticale
1 Expression régulière
2 tableaux de grammaire
3 Notation BNF
4 Notation EBNF
04 Automates finis
1 Automates finis
2. Conversion d'un automate fini non déterministe (AFN) en automate fini déterministe (AFD).
Minimisation du nombre d'états de 3 DFA
4. Relations d'équivalence des grammaires régulières, des expressions régulières et des automates finis
Chapitre 4 : Analyse du vocabulaire
01 Aperçu de l'analyse lexicale
02 Reconnaissance des jetons
1. Reconnaissance des identifiants
2. Reconnaissance des mots réservés
3. Reconnaissance des nombres entiers
4. Reconnaissance des constantes numériques réelles
5 Traitement des commentaires
03 Conception et mise en œuvre d'un analyseur lexical
Chapitre 5 : Grammaires hors contexte et automates à pile
01 Grammaire hors contexte
02 Pâtisserie
03 Grammaire ambiguë
04 Conversion grammaticale
1. Suppression des règles de création inutiles
2. Élimination de la règle de génération ε
3. Suppression des règles de génération unique
4 Factorisation à gauche
5. Élimination de la récursivité gauche
05 Automates à pile
Chapitre 6 : Analyse syntaxique
01 Aperçu de l'analyse syntaxique
02 Analyse syntaxique descendante
1 PREMIER et SUIVRE
2 Analyse syntaxique descendante récursive
3 Analyse prédictive
03 Analyse ascendante
1. Analyse syntaxique par déplacement-réduction
2 Analyse de la priorité des opérateurs
3 Analyse LR
04 Utilisation d'une grammaire ambiguë et de routines de gestion des erreurs
Chapitre 7 : Analyse sémantique et inspection des types
01 Aperçu de l'analyse sémantique
Tableau des symboles 02
03 Grammaire des attributs
Inspection de type 04
1 Types de données
Système de type 2
Conversion de type 3
Chapitre 8 : Langage intermédiaire et génération de code intermédiaire
01 Langue intermédiaire
1. Le concept de langue intermédiaire
2 types de langues intermédiaires
02 Traduction de phrases directives
03 Générer le code intermédiaire
1 Formule logique
2 instructions de substitution
Chapitre 9 : Types de données structurées et environnement d’exécution
01 Types de données structurées
1 enregistrement
2 tableaux
02 Configuration de la mémoire
03 Stratégie d'allocation de mémoire
1. Allocation de mémoire statique
2. Allocation de mémoire de pile
3. Allocation de mémoire du tas
04 Méthode de passage des paramètres
1 Valeur d'appel
2 appels de référence
3 Nom Appel
4 Appel valeur-résultat
Chapitre 10 Optimisation du code
01 Optimisation du code
02 Blocs de base et organigramme
1 bloc de base
2. Graphe de flux de contrôle et DAG
3 Analyse des flux
03 Techniques d'optimisation
1 Technique d'optimisation du judas
2 Techniques d'optimisation locale
3 Techniques d'optimisation de boucle
4 Techniques d'optimisation globale
5 Techniques d'optimisation dépendantes de la machine
Chapitre 11 Optimisation du parallélisme et de la localité
01 Traitement parallèle
1 Système de traitement parallèle
2. Différents concepts relatifs au traitement parallèle
02 Dépendance des données et analyse de la dépendance des données
1 Dépendance des données
2. Analyse dépendante des données
03 Transformation de boucle
Fusion à 1 boucle
Séparation de 2 boucles
3 boucles inversées
4 boucles d'échange
5 boucles inclinées
6 mines à ciel ouvert
7 boucles de pavage
Chapitre 12 : Génération de code objectif
01 Concept de génération de code objectif
02 Technique de correspondance de modèles arborescents
03 Générer le code cible
1. Générer le code objet pour les expressions arithmétiques
2. Générer le code cible pour les expressions logiques
04 Attribution et affectation des registres
1. Attribution et affectation des registres locaux
2. Allocation et affectation des registres globaux
3. Allocation des registres par coloration du graphe
Chapitre 13 : Rex et le yak
01 Rex et Yak
1 Rex
2 yaks
02 Formats de fichiers d'entrée pour Rex et Yak
1 Format de fichier d'entrée Rex
2 Format de fichier d'entrée de Yak
03 Comment installer Flex et Bison
04 Comment utiliser Flex
05 Comment utiliser Bison
Image détaillée

Avis de l'éditeur
* Ne couvre que l'essentiel de la vaste théorie des compilateurs.
Puisqu'un compilateur est un programme système, il est difficile à apprendre car il faut tout connaître du système.
Cependant, ce livre offre une brève introduction aux connaissances relatives à l'apprentissage des compilateurs, ce qui facilite l'apprentissage.
Il se compose de 13 chapitres au total. Les chapitres 1 et 2 donnent un aperçu du compilateur, les chapitres 3 et 5 couvrent la théorie des langages formels et des automates pour expliquer l'analyseur lexical et l'analyseur syntaxique, et les chapitres 4 et 6 à 12 couvrent chaque partie du compilateur.
Enfin, le chapitre 13 explique l’utilisation pratique du générateur d’analyseur lexical, Lex (Flex), et du générateur d’analyseur syntaxique, Yak (Bison).
* Des explications faciles à comprendre, basées sur l'expérience et les connaissances de l'auteur en matière d'enseignement des compilateurs depuis plus de 30 ans.
Il est très difficile d'expliquer la structure ou le fonctionnement d'un compilateur.
L'auteur enseigne également les compilateurs depuis près de 30 ans, mais il a écrit ce livre avec le souci constant d'expliquer les compilateurs de manière à les rendre un peu plus faciles à comprendre.
Ce livre vous permettra de découvrir l'expérience et les connaissances de l'auteur, qui forme des compilateurs depuis plus de 30 ans.
* Couvre non seulement les principes fondamentaux, mais aussi les techniques de compilation en arrière-plan (environnement d'exécution et optimisation) qui sont utiles en pratique.
-.
Optimisation du code (Chapitre 10)
-.
Optimisation du parallélisme et de la localité (Chapitre 11)
-.
Génération de code objet (Chapitre 12)
-.
Installation et utilisation pratique de Flex et Bison (Chapitre 13)
Puisqu'un compilateur est un programme système, il est difficile à apprendre car il faut tout connaître du système.
Cependant, ce livre offre une brève introduction aux connaissances relatives à l'apprentissage des compilateurs, ce qui facilite l'apprentissage.
Il se compose de 13 chapitres au total. Les chapitres 1 et 2 donnent un aperçu du compilateur, les chapitres 3 et 5 couvrent la théorie des langages formels et des automates pour expliquer l'analyseur lexical et l'analyseur syntaxique, et les chapitres 4 et 6 à 12 couvrent chaque partie du compilateur.
Enfin, le chapitre 13 explique l’utilisation pratique du générateur d’analyseur lexical, Lex (Flex), et du générateur d’analyseur syntaxique, Yak (Bison).
* Des explications faciles à comprendre, basées sur l'expérience et les connaissances de l'auteur en matière d'enseignement des compilateurs depuis plus de 30 ans.
Il est très difficile d'expliquer la structure ou le fonctionnement d'un compilateur.
L'auteur enseigne également les compilateurs depuis près de 30 ans, mais il a écrit ce livre avec le souci constant d'expliquer les compilateurs de manière à les rendre un peu plus faciles à comprendre.
Ce livre vous permettra de découvrir l'expérience et les connaissances de l'auteur, qui forme des compilateurs depuis plus de 30 ans.
* Couvre non seulement les principes fondamentaux, mais aussi les techniques de compilation en arrière-plan (environnement d'exécution et optimisation) qui sont utiles en pratique.
-.
Optimisation du code (Chapitre 10)
-.
Optimisation du parallélisme et de la localité (Chapitre 11)
-.
Génération de code objet (Chapitre 12)
-.
Installation et utilisation pratique de Flex et Bison (Chapitre 13)
SPÉCIFICATIONS DES PRODUITS
- Date de publication : 20 février 2020
- Nombre de pages, poids, dimensions : 508 pages | 188 × 257 × 35 mm
- ISBN13 : 9791156644835
- ISBN10 : 1156644836
Vous aimerez peut-être aussi
카테고리
Langue coréenne
Langue coréenne