My Projects Courses Writings
Source Code Social Networks |
Langage SimpleCréer son propre langage de programmation de A à Z<< Notion de grammaire et langage formel | Syntaxe du langage Simple | Analyseur lexical >> Syntaxe (ou grammaire) du langage Simple :La théorie est passée !! Si vous êtes arrivé là, vous devez avoir compris la notion de langage formel, vous devez savoir qu'une grammaire formelle est constituée de 4 éléments qui sont l'ensemble des terminaux, des non terminaux, des règles grammaticales et l'axiome et vous devez connaître brièvement la syntaxe du métalangage BNF. Je peux vous dévoiler la grammaire du langage Simple sous forme BNF donc. Alors voilà : Liste des non terminaux :code, instruction, affectation, affichage, expression, expression_arithmetique, expression_booleenne, addition, soustraction, multiplication, division, et, ou, non Liste des terminaux :'et', 'ou', 'non', 'afficher', ';', '=', '+', '-', '*', '/', '(', ')', variable, nombre, 'vrai', 'faux' Notons que certains terminaux ont le même nom que des non terminaux. Il faut bien faire attention et ne pas les confondre car ce n'est pas du tout la même chose. La notation BNF évite la confusion en écrivant les non terminaux entre chevrons. Axiome : codeRègles :
Je vous ai donné la grammaire du langage Simple. On pourra après l'enrichir en implémentant les blocs d'instructions si/sinon et la boucle tant que. Mais chaque chose en son temps. On évolue un langage au fur et à mesure. Vous êtes maintenant en mesure d'écrire les premières phrases en Simple. Mais vous ne savez pas à quoi elles correspondent. Ils n'existent hélas pas de langage qui donne la signification d'une syntaxe. C'est pourquoi quand on apprend une langue, la notation BNF ne suffit pas. Il faut aussi lier les phrases à leurs sens. L'axiome est code. Tout part donc du non terminal code. En langage Simple, tout est code, même si on écrit aucune seule ligne de code dans le programme. C'est un programme Simple comme un autre, malgré qu'il soit vide et qu'il ne fera rien, il compilera. Si je donnai l'obligation au développeur d'écrire au moins une instruction pour que ce soit un programme Simple, j'aurai écrit en EBNF : @@ ::= [ <instruction> @@ ] <none> Les crochets en EBNF indiquent que le non terminal code est optionnel. J'ai au moins une instruction car le non terminal code commence forcément par le non terminal instruction. L'équivalent en BNF classique : @@ ::= (<instruction> @@) | <none> Si on ne met pas l'ensemble vide comme possibilité de code, on ne devra alors jamais s'arrêter d'écrire ! En effet, il boucle récursivement sur lui-même, il faut donc donner au langage la possibilité de fin. Pour bien comprendre le langage, on va se concentrer aux instructions. On a comme instruction affichage et affectation.
monEntier = 6 ; monBooleen = faux ;
afficher monEntier ; afficher monBooleen ; afficher 4 ; afficher non ( ( vrai et faux ) ou vrai ) ; afficher 6/3 ; On a fait le tour du langage Simple. Je vous l'avez dit, il est pas compliqué. On implémentera plus tard les conditions et les boucles. Il y a plus qu'à développer le compilateur maintenant. << Notion de grammaire et langage formel | Syntaxe du langage Simple | Analyseur lexical >> |
Page last modified on September 01, 2020, at 12:21 PM EST
This page has been requested 6683 times (Today : 4) - Total number of requests : 221376
Edit - History - Statistics - Print - Recent Changes - Search
Clin d'oeil aux victimes des attentats survenus dans la soirée du 13 novembre 2015. La nouvelle version du site a été installée quelques heures avant.