Je m'interroge sur les langages formels. J'ai une sorte d'analyseur: Il lit une structure arborescente sérialisée de type xml et la transforme en un tableau multidimensionnel.Théorie des langages formels - Automate
Mon point est sur les similitudes entre l'algorithme utilisé et les différents types d'automates (machines d'état des machines de Turing pile ...).
La question est: qui est l'automate que j'utilise implictly ici, et à quelle famille langues formelle-t-il en forme? Et qu'en est-il de la récursivité?
Ce que je veux dire par « automate j'utilise implicitement » est « qui est l'automate minimal pour faire le même travail ». Voici la source complète:
$ words; // un tableau de balise XML '<tag>', '</tag >' et simple contenu texte
tree $ = array ( 'type' => 'root', 'sous' => array ( );
$ ptree = array (& arbre $);
$ profondeur = 0;
foreach (mots $ comme $ elem) {
if (preg_match($openTag, $elem)) { // $elem is an open tag
$pTree[$deep++]['sub'][] = array(// we add an element to the multidim array
'type' => 'block',
'content' => $elem,
'sub' => array()
);
$size = sizeof($pTree[$deep - 1]['sub']);
$pTree[$deep] = &$pTree[$deep - 1]['sub'][$size - 1]; // down one level in the tree
} elseif (preg_match($closeTag, $elem)) { // it is a close tag
$deep--; // up in the tree
} else { // simple element
$pTree[$deep]['sub'][] = array(
'type' => 'simple',
'content' => $elem
);
}
}
ce qui est ajouté à $ ptree? Il est impossible de dire de quel type de machine il s'agit sans savoir quels sont les tests. Est-ce que plus d'un test peut réussir à la fois? – mdma