Objet : Liste pour les discussions techniques (liste à inscription publique)
Archives de la liste
[April technique] generateur d'analyseur syntaxique libre (C++) compatible avec un ramasse-miettes précis?
Chronologique Discussions
- From: Basile Starynkevitch <basile AT starynkevitch.net>
- To: debian-user-french AT lists.debian.org, technique AT april.org
- Subject: [April technique] generateur d'analyseur syntaxique libre (C++) compatible avec un ramasse-miettes précis?
- Date: Thu, 06 Feb 2025 08:44:00 +0100
Bonjour,
Pour le moteur d'inférences RefPerSys ("reflexive persistent system") en
https://github.com/RefPerSys/RefPerSys sous licence GPLv3+ il me faut un
generateur d'analyseur syntaxique (voir
https://en.wikipedia.org/wiki/Comparison_of_parser_generators ...)
qui génère du code C++, et le code généré doit être compatible avec un
ramasse-
miettes précis que j'ai déjà écrit, et accepter en entrée une chaine
(std::string) ou un flot générique d'octets (std::istream) encodé en UTF-8.
Pour fixer les idées le ramasse-miettes existant s'inspire vaguement de celui
d'Ocaml ou bien de http://starynkevitch.net/basile/qishintro.html et utilise
des
macros existantes en C++. Dans la terminologie habituelle ce ramasse-miettes
est
copieur pour les valeurs immuables mais marqueur pour les objets mutables et
contenant chacun un verrou (le modèle objet de RefPerSys s'inspire d'ObjVLisp:
héritage simple, métaclasses implémentés avec du code C++ existant)
J'hésite entre deux approches:
1. modifier un générateur d'analyse existant (par exemple GNU bison ou
bison++),
mais j'ai besoin d'exemples. En particulier des exemples libres de fichier
"skeleton" ou squelette pour ceux-ci.
2. modifier le code C++ généré par ce générateur (qui en pratique est
régulier,
peu lisible par un humain...) probablement par un script GNU gawk; ça semble
techniquement risqué (car le générateur -comme GNU bison- ne garantit rien sur
la forme syntaxique du code C++ généré).
sachant que j'ai déjà écrit du code C++ pour l'analyse lexicale (c'est dans le
fichier lexer_rps.cc)
la difficulté supplémentaire est que RefPerSys est multi-threadé. Un thread
posix peut modifier le tas durant l'analyse syntaxique (mais les données sont
vérouillées par des std::mutex).
Les idées de RefPerSys sont expliquées en anglais sur http://refpersys.org/ et
je peux bien évidemment répondre par courriel à toute question technique.
En plus je cherche à intégrer un consortium ANR ou ITEA ou HorizonEurope
existant pour soutenir et financer très partiellement ce projet logiciel libre
et/ou des contributeurs bénévoles (au moins pour des suggestions de syntaxe et
d'applications).
Vos conseils et suggestions sont bienvenus.
--
Basile STARYNKEVITCH <basile AT starynkevitch.net>
8 rue de la Faïencerie
92340 Bourg-la-Reine, France
http://starynkevitch.net/Basile & https://github.com/bstarynk
- [April technique] generateur d'analyseur syntaxique libre (C++) compatible avec un ramasse-miettes précis?, Basile Starynkevitch, 06/02/2025
Archives gérées par MHonArc 2.6.19+.