CSI3525: Concepts des Languages de Programmation - PowerPoint PPT Presentation

About This Presentation
Title:

CSI3525: Concepts des Languages de Programmation

Description:

Ils doivent donc etre compris par toutes ces personnes, avant meme qu' ... La clarite et la precision de la description sont tres intimement lies au succes d'un nouveau language. ... – PowerPoint PPT presentation

Number of Views:47
Avg rating:3.0/5.0
Slides: 14
Provided by: siteUo
Category:

less

Transcript and Presenter's Notes

Title: CSI3525: Concepts des Languages de Programmation


1
CSI3525Concepts des Languages de Programmation
  • Notes 3
  • Description Syntaxique des Languages

2
Pourquoi Decrire les Languages de Programmation?
Et Comment?
  • Les languages de programmation sont implementes
    et utilises par un grand nombre de personnes. Ils
    doivent donc etre compris par toutes ces
    personnes, avant meme quils nexistent ou quils
    soient utilises.
  • La clarite et la precision de la description sont
    tres intimement lies au succes dun nouveau
    language.
  • La description dun language se divise en deux
    parties description syntaxique et description
    semantique.
  • La syntaxe correspond a la description de la
    forme des expressions, instructions et unites de
    programmes.
  • La semantique correspond a leur signification.
  • La syntaxe est plus facile a descrire que la
    semantique.

3
La Description Syntaxique Definitions
  • Les languages sont des chaines de caracteres
    provenant dun alphabet.
  • Chaque chaine represente une phrase.
  • Il existe de petites unites syntaxiques appelees
    des lexemes.
  • Les tokens dun language representent des
    categories de lexemes. Certains tokens ne
    representent quun seul lexeme, mais dautres en
    representent plusieurs.
  • Les languages peuvent etre decrits de deux facons
    distinctes reconnaissance ou generation.

4
Reconaisseur de Languages
  • Etant donne un language L qui utilise lalphabet
    ?, on peut construire un mechanisme de
    reconnaissance R capable de reconnaitre les
    chaines de caracteres de lalphabet ?.
  • R doit indiquer si une chaine qui lui est donnee
    apartient ou non au language. En dautre termes,
    il va accepter ou rejeter cette chaine.
  • De facon pratique, dans un compilateur, lanalyse
    syntaxique est faite par un systeme de
    reconnaissance.

5
Generateur de Languages
  • Un generateur de language genere des phrase dun
    language.
  • De facon pratique, un generateur peut sembler peu
    utile en tant que descripteur de language, mais
    en fait, il est tres utile car il permet une
    description facile a lire et a comprendre.
  • En fait, un generateur est beaucoup plus utile
    quun reconaisseur quant a la description du
    language.

6
Methodes Formelles de Description Syntaxique
Generalites
  • Les mecanismes formels de generation de language
    sappellent des grammaires.
  • Les grammaires les plus utiles pour les
    languages de programmation sont les grammaires
    libres de contexte (context-free)
  • La notation utilisee pour specifier de telles
    grammaires sappelle la forme Backus-Naur. (BNF).
  • BNF est une forme tres naturelle de description
    syntaxique. Elle est en fait tres proche de la
    technique utilisee par Panini des centaines
    dannees avant Jesus-Christ.

7
Methodes Formelles de Description Syntaxique
Fondations
  • Un metalanguage est un language destine a decrire
    dautres languages. BNF est un metalaguage pour
    les languages de programmation.
  • BNF definit les structures syntaxiques du
    language en utilisant des regles (ou
    productions).
  • Le Left-Hand-Side (LHS) dune regle BNF ne
    contient quun symbole non-terminal, alors que le
    Right-Hand-Side peut contenir des symboles
    terminaux ou non.
  • Un non-terminal peut avoir plusieures
    definitions.
  • Une regle peut aussi etre recursive.

8
Methodes Formelles de Description Syntaxique
Definitions
  • Les phrases dun language sont generees par
    lapplication en sequence des regles de la
    grammaire.
  • La generation dune phrase ou dun programme
    entiersappelle une derivation et elle commence
    au symbole de depart.
  • Sil y a plusieurs non-terminaux dans une regle
    et que la derivation etend le non-terminal le
    plus a gauche avant les autres, on parle de
    leftmost derivation.
  • Un avantage des grammaires est quelles decrivent
    naturellement la structure syntaxique
    hierarchique des phrases des languages quelles
    decrivent. Ces structures hierarchiques
    sappellent des parse trees.

9
Methodes Formelles de Description Syntaxique
Considerations
  • Une grammaire qui peut generer une phrase ayant
    deux ou plus de deux parse trees distincts est
    une grammaire ambigue.
  • Lambiguite syntaxique est un probleme dans les
    languages de programmation car la semantique est
    basee sur la syntaxe et la signification dune
    phrase doit etre unique.
  • Une grammaire peut-etre ecrite de maniere a
    implementer la precedence des operateurs, et leur
    associativite,.

10
EBNF Une extension de la BNF
  • Il existe certaines extensions de la form
    Backus-Naur qui netendent pas le pouvoir
    descriptif du meta-language, mais plutot, en
    etend sa lisibilite et sa facilite decriture.
  • 3 extensions sont utilisees couramment
  • Lutilization de --gt Option (oui/non)
  • Lutilization de --gt Iteration
  • Lutilization de --gt Option a choix multiple
  • Lutilization de --gt repetition unique ou
    multiple

11
Parse Trees
  • Le processus appele parsing consiste a
    construire un parse tree pour la phrase ou le
    programme ecrits dans le language.
  • Parsing peut-etre fait du haut en bas ou du bas
    en haut.
  • Parsing peut-etre fait assez facilement si la
    grammaire du language est definie de maniere
    appropriee (voir livre pp.123-125). En
    particulier, il est important pour cette
    grammaire de ne pas avoir de recursion a gauche.

12
Grammaires a Attributs Generalites
  • Une grammaire a attributs est un mecanisme qui
    permet de decrire une plus grande partie de la
    structure dun language que nest possibleavec
    une grammaire libre de contexte.
  • En particulier, une telle grammaire permet la
    definition de certaines regles du language tels
    que la compatibilite des types.
  • En general, la catecory de regles du language qui
    ne peuvent pas etre definies en BNF sappelle la
    semantique statique de ce language.

13
Grammaires a Attributs Definitions
  • Une grammaire a attribut est une grammaire avec
    les additions suivantes
  • Chaque symbole de la grammaire est associe a un
    ensemble dattributs divise en deux
    sous-ensembles les attributs synthetises, qui
    passent linformation semantique vers le haut de
    larbre et les attributs inherites, qui la
    passent vers le bas.
  • Chaque regle de grammaire est associee a un
    ensemble de fonctions semantiques et, peut-etre,
    un ensemble de fonctions prediquees.
  • Un attribut intrinsique est un attribut
    synthetise qui appartient a une feuille darbre
    et dont la valeur est determinee a lexterieur
    de larbre.
Write a Comment
User Comments (0)
About PowerShow.com