Haha Sékil'. Oui bah hein …
C'est pas compliqué à comprendre, les notations Mathématiques sont ultra merdiques. La preuve, ce n'est pas uniforme (desfois unaire, desfois binaire, desfois ternaire etc., desfois préfixée, desfois suffixée, desfois infixée etc.).
Unaire ça veut dire quoi ? Que l'arité de ta fonction est égale à 1.
L'arité c'est quoi ? C'est le nombre d'argument que prend ta fonction. Par exemple :
f(x) est une fonction d'arité 1, elle est donc unaire.
Une fonction binaire est donc une fonction à deux arguments, comme
g(x, y), et ainsi de suite.
Maintenant, essaye de voir les opérations comme des fonctions, on écrirait
+(x, y) pour dire
x + y. Sauf que cette notation est encore moche à cause des parenthèses. On arrive à la notation préfixée telle que décrite en LISP — et
a fortiori dans Scheme —, à savoir
(+ x y). L'arité de la fonction est contrôlée pas la fonction elle-même, elle peut prendre zéro ou
n arguments.
Avec les notations préfixées, tout est clair, aucune ambiguïté possible, c'est facile à analyser, à construire, bref, c'est uniforme et ça c'est bien … C'est une notation très forte.
Ensuite, analyseur LR, on n'était pas d'accord avec Sékil', mais on a fini par parler de la même chose, à savoir que c'est un type de grammaire.
En théorie des langages (utile pour les compilateurs par exemple, mais pas seulement), un vocabulaire est un ensemble de symboles grâce auquel on peut former des mots. La construction des mots s'effectue
via une grammaire qui décrit des règles de productions. Une grammaire peut se représenter sous forme d'automate (sorte de graphe). Les automates se manipulent très bien, c'est l'avantage. Après, on trouve différent langage (ou grammaire, ou automate, on parle d'un on parle de tous). On trouve les langages réguliers, les langages algébriques et les machines de Turing. Un langage régulier, mais si vous connaissez, c'est de là que vienne les expressions régulières ! Bref, un analyseur LR c'est comme un analyseur LL à quelque différence près. Les différences sont sur l'ordre d'évaluation de l'arbre syntaxique. Par exemple :
a + b va donner un arbre dont la racine est
+. Cette racine a deux branches (qui sont des feuilles dans notre cas) :
a et
b qui sont respectivement à gauche et droite. Si on lit l'arbre de gauche à droite ou de droite à gauche, l'évaluation — et donc le résultat — ne seront pas le même (on peut trouver une analogie avec la précédente des opérateurs,
/ avant
+ par exemple).
Tu vois, c'est pas compliqué

. Bon, j'ai été vite, on peut faire encore plus de chose avec, mais c'est pour te donner une idée. Je suis allé droit au but.
En plus, la théorie des langages est quelque chose de passionnant, vraiment. Quand tu commences à mettre ton nez là-dedans, t'as du mal à en sortir. D'autant qu'il y a des sujets de recherches très intéressants. Il existe des langages au-dessus des machines de Turing qu'on ne connaît pas, mais on sait qu'ils existent … wah, ça fait rêver

.
Et ça n'a rien de spécialiste. J'ai juste une licence 3 d'Informatique, c'est accessible à quasiment n'importe qui d'un tantinet travailleur et curieux

.
Ah oui, et le rapport avec la choucroute ? Tout simplement que PHP a des notions inspirées des Mathématiques et donc merdique et que ça me prend le choux sévère …