diff options
author | David A. Madore <david+git@madore.org> | 2017-01-23 17:10:23 +0100 |
---|---|---|
committer | David A. Madore <david+git@madore.org> | 2017-01-23 17:10:23 +0100 |
commit | d851d509e5c7c2f0dacccffa90d75d9a4ee17167 (patch) | |
tree | 6b68dcfd313a8351721edf8d74590dcb3ba534d0 | |
parent | 5795955cc6e46ee50f8f3526be2a3b7657e161f0 (diff) | |
download | inf105-d851d509e5c7c2f0dacccffa90d75d9a4ee17167.tar.gz inf105-d851d509e5c7c2f0dacccffa90d75d9a4ee17167.tar.bz2 inf105-d851d509e5c7c2f0dacccffa90d75d9a4ee17167.zip |
Update on the dangling else problem (short summary).
-rw-r--r-- | exercices2.tex | 11 |
1 files 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} |