RPN : extension de la syntaxe grâce à lex

Magazine
Marque
GNU/Linux Magazine
Numéro
221
Mois de parution
décembre 2018
Domaines


Résumé
Dans un article précédent (GLMF n°217), nous avons vu comment créer les bases d'un interpréteur de formules en notation polonaise inversée. Cet interpréteur minimal a été validé avec de petits programmes de tests élémentaires, à la syntaxe rigide. Dans le présent article, nous allons voir comment rendre la syntaxe de l'interpréteur plus souple grâce au générateur d'analyseurs lexicaux Lex, et comment ajouter des types nouveaux, comme des vecteurs, des matrices, et, ultérieurement, des listes, des textes, ou encore des réseaux de neurones.

Cet article prend pour exemple un programme permettant d'interpréter des formules en notation polonaise inversée [1]. Le sujet traité ici, Lex, ne nécessite pas nécessairement la lecture de l'article précédent, mais l'utilisation du projet qui y est décrit permet d'appliquer Lex à un cas concret.

1. Utilisation d'une syntaxe plus souple grâce à lex

Les programmes de tests élémentaires développés précédemment [1] sont pratiques, car ils permettent la validation des mécaniques de traitement, mais ils ne savent traiter que des syntaxes simples et figées (informations passées en arguments de la ligne de commande à des positions prédéterminées) et on ne peut pas encore se rendre compte de la puissance et de la simplicité de la notation polonaise inversée. Pour franchir une nouvelle étape, nous allons développer de nouveaux programmes (téléchargeables à partir de [2] ou [3]), dont la syntaxe sera beaucoup plus souple, et qui seront capables d'interpréter les...

Cet article est réservé aux abonnés. Il vous reste 95% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Persistance et objets en C++

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
114
Mois de parution
mai 2021
Domaines
Résumé

Au travers de deux articles [1-2] sur les principes de l’orienté objet en C++, nous avions abordé encapsulation, héritage, et polymorphisme. Nous proposons dans ce nouvel article les classes de base pour gérer la persistance d’objets dans des fichiers. Ces classes utilisent les principes énoncés ci-dessus et présentent des stratégies via la généricité. Un exemple de stratégie pour stocker en binaire pourra être redéfini pour d’autres stratégies, comme un stockage en XML.

Principes de l’orienté objet en C++ : la généricité

Magazine
Marque
GNU/Linux Magazine
Numéro
248
Mois de parution
mai 2021
Domaines
Résumé

La programmation orientée objet obéit à des principes. Les 4 principaux sont l’encapsulation, l’héritage, le polymorphisme et la généricité. Dans un premier article, nous avons évoqué l’encapsulation, puis l’héritage et le polymorphisme dans un deuxième. Ce troisième et dernier article traite de la généricité.

Flutter : applications mobiles, web et desktop

Magazine
Marque
GNU/Linux Magazine
Numéro
248
Mois de parution
mai 2021
Domaines
Résumé

Flutter est un framework permettant de développer des applications natives pour Linux, Windows, macOS, Android, iOS et le Web à partir du même code source. Un moteur graphique OpenGL ultra performant et la compilation native en ARM, x86-64 ainsi que WebAssembly, associés à un cycle de développement agile et hyper intuitif, en font la solution ultime pour les créateurs d’applications. L’essayer, c’est l’adopter !

Un bot qui surveille le Web et envoie des alertes

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
114
Mois de parution
mai 2021
Domaines
Résumé

De nos jours, lorsque l’on recherche une information, on se tourne immédiatement vers le Web. Ainsi, de très nombreuses informations sont mises à jour quotidiennement et il faut donc penser à visiter les sites les produisant, de manière à être au courant des dernières modifications. Et si nous codions un bot qui ferait cela pour nous ?