From d851d509e5c7c2f0dacccffa90d75d9a4ee17167 Mon Sep 17 00:00:00 2001 From: "David A. Madore" Date: Mon, 23 Jan 2017 17:10:23 +0100 Subject: Update on the dangling else problem (short summary). --- exercices2.tex | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/exercices2.tex b/exercices2.tex index 22c2eef..60b0c45 100644 --- a/exercices2.tex +++ b/exercices2.tex @@ -334,10 +334,17 @@ $\mathtt{else}$ devrait se rattacher à elle), et ce, récursivement. On peut montrer que la grammaire ci-dessus est inambiguë et faiblement équivalente à celle de départ. -J'ignore s'il existe une grammaire inambiguë naturelle, faiblement +On peut aussi fabriquer une grammaire inambiguë, faiblement équivalente à celle de départ, qui force l'autre interprétation (le $\mathtt{else}$ se rapporte au $\mathtt{if}$ le plus lointain -possible). +possible), mais c'est nettement plus complexe (l'idée générale pour +apparier un $\mathtt{else}$ avec un $\mathtt{if}...\mathtt{else}$ dans +cette logoque est de demander que \emph{soit} le $\mathtt{else}$ n'est +suivi d'aucun autre $\mathtt{else}$, \emph{soit} toute instruction +conditionnelle entre le $\mathtt{then}$ et le $\mathtt{else}$ est +elle-même complète). Contrairement à la grammaire précédente, cette +grammaire, bien qu'inambiguë, est probablement impossible à analyser +avec un analyseur LR (ou même, déterministe). \end{corrige} -- cgit v1.2.3