Théorie des langages : Analyse lexicale
L'analyse lexicale est la partie la plus facile à vérifier. Nous devons isoler les différents jetons, les symboles terminaux du code.
Nous utiliserons Lex3 pour écrire notre spécification lexicale.
Définition du langage
Comme nous allons spécifier notre langage, nous devons d'abord définir ce qu'est un langage. Nous pouvons utiliser un certain nombre de convensions qui nous seront utiles par la suite4 :
- Nous utiliserons le symbole grec sigma majuscule (Σ) pour désigner l'alphabet, qui est un ensemble fini de caractères (par exemple ASCII [“American Standard Code for Information Interchange”5], UNICODE, EBCDIC [Extended Binary Coded Decimal Interchange Code], etc.).
- Nous utiliserons les termes de texte, mot, et phrase pour désigner une suite de caractères. Ces termes sont identiques au début de notre analyse, mais prendront une signification particulière par la suite.
- Le langage est un ensemble de phrases.
- Nous utiliserons le symbole grec epsilon (ε) pour désigner une phrase vide.
- Nous utiliserons le point comme opérateur de concaténation (comme en PHP)89.
Propriétés du langage sous forme de monoïde
Comme nous avons défini le langage comme un ensemble, nous pouvons appliquer certaines propriétés algébriques sous la forme du monoïde10 suivant :
Ordres
- X est un préfixe de Y si Y commence par X.
- X est un suffixe de Y si Y finit par X.
- X est une sous-chaîne de Y si X est obtennu par la suppression d'un suffixe et d'un préfixe de X.
Opérations et propriétés
Propriétés des langages
Les quelques propriétés suivantes ne sont pas exhaustives; quel que soit le nombre de règles que nous pouvons définir, nous en manquerons toujours...
Nederlandse vertaling
U hebt gevraagd om deze site in het Nederlands te bezoeken. Voor nu wordt alleen de interface vertaald, maar nog niet alle inhoud.Als je me wilt helpen met vertalingen, is je bijdrage welkom. Het enige dat u hoeft te doen, is u op de site registreren en mij een bericht sturen waarin u wordt gevraagd om u toe te voegen aan de groep vertalers, zodat u de gewenste pagina's kunt vertalen. Een link onderaan elke vertaalde pagina geeft aan dat u de vertaler bent en heeft een link naar uw profiel.
Bij voorbaat dank.
Document heeft de 01/02/2010 gemaakt, de laatste keer de 28/10/2018 gewijzigd
Bron van het afgedrukte document:https://www.gaudry.be/nl/langages-analyse-lexicale.html
De infobrol is een persoonlijke site waarvan de inhoud uitsluitend mijn verantwoordelijkheid is. De tekst is beschikbaar onder CreativeCommons-licentie (BY-NC-SA). Meer info op de gebruiksvoorwaarden en de auteur.
- ↑ Gnu's Not Unix : komt overeen met « GNU n'est pas UNIX » en français
- ↑ GNU : “Gnu's Not Unix” (en français, « GNU n'est pas UNIX ») Groupement de logiciels libres. Il s'agit d'un acronyme récursif, car nous retrouvons l'acronyme dans sa propre définition.
- ↑ Lex : Nous emploierons le terme Lex pour désigner l'outil d'analyse lexicale, mais il peut s'agir de Flex, son équivalant GNU
- ↑ Langage : Nos différentes tentatives de définition du langage ne s'appliquent qu'aux langages séquentiels comme la parole (un mot avant l'autre) ou l'écriture (dans notre cas, de gauche à droite), mais pas aux langages graphiques tels que par exemple UML.
- ↑a,b American Standard Code for Information Interchange : komt overeen met « Code américain normalisé pour l'échange d'information » en français
- ↑ ASCII : “American Standard Code for Information Interchange” (en français, « Code américain normalisé pour l'échange d'information ») Mode de codage des caractères nécessaires pour écrire en anglais. Consulter la table ASCII.
- ↑ EBCDIC : Extended Binary Coded Decimal Interchange Code Mode de codage des caractères sur 8 bits, créé par IBM.
- ↑ Représentation de la concaténation : Par la suite, nous ne représenterons plus systématiquement l'opérateur de concaténation.
- ↑a,b Comportement de la concaténation : La concaténation se comporte exactement comme la multiplication.
- ↑ Langage : Les monoïdes sont des structures utilisées en théorie des langages.
- ↑ Kleene : Stephen Cole Kleene, mathématicien et logicien américain, inventeur des concepts d'expression rationnelle et de langage rationnel. L'étoile de Kleene (ou la fermeture de Kleene) est un opérateur unaire utilisé sur un ensemble de chaînes ou de symboles, utilisé dans les expressions rationnelles pour désigner la cardinalité 0 ou plus.
- ↑ instance unique : komt overeen met « singleton » en français
Referenties
- IHDCB332 - Théorie des langages : Syntaxe et sémantique : PY Schobbens,
Syntaxe et sémantique
(January 2010)
Deze verwijzingen en links verwijzen naar documenten die geraadpleegd zijn tijdens het schrijven van deze pagina, of die aanvullende informatie kunnen geven, maar de auteurs van deze bronnen kunnen niet verantwoordelijk worden gehouden voor de inhoud van deze pagina.
De auteur Deze site is als enige verantwoordelijk voor de manier waarop de verschillende concepten, en de vrijheden die met de referentiewerken worden genomen, hier worden gepresenteerd. Vergeet niet dat u meerdere broninformatie moet doorgeven om het risico op fouten te verkleinen.