J'ai remarqué que les langues régulières sur l'alphabet peuvent naturellement être considérées comme un poset, et même un treillis. De plus, la concaténation avec le langage vide définit une structure monoïdale stricte sur cette catégorie qui est distributive sur les jointures (je ne suis pas sûr des rencontres). Est-ce une construction utile en théorie ou en pratique des langues régulières? Y a-t-il de belles adjonctions à trouver, par exemple pouvons-nous définir l'étoile de Kleene comme une?
Ceci est une copie d'une question posée lors du cours Compilers à Coursera: https://class.coursera.org/compilers/forum/thread?thread_id=311
fl.formal-languages
regular-language
ct.category-theory
Alexei Averchenko
la source
la source
Réponses:
Beaucoup a été fait pour appliquer la théorie des catégories aux langages et automates normaux. Un point de départ est les articles récents:
Dans le premier de ces articles, la structure des expressions régulières est traitée algébriquement et les langages générés sont traités par hégémonie. Ces deux vues sont intégrées dans un cadre bialgébrique. Un bialgebra est une paire algèbre-houille avec une loi distributive appropriée capturant l'interaction entre les termes syntaxiques (les expressions régulières) et le comportement de calcul (langages générés). La base de cet article est l'algèbre et la houille, traitées en informatique sous l'égide de l'algèbre universelle et de la houille, plutôt que ce que l'on voit en mathématiques (groupes, etc.).
Le deuxième article utilise des techniques issues du traitement mathématique plus traditionnel de l'algèbre (modules, etc.) et de la houille, mais je crains de ne pas en connaître les détails.
Pour autant que je sache, ni l'une ni l'autre ne considère l'étoile de Kleene comme une adjonction.
Plus généralement, il y a beaucoup de travail à appliquer la théorie des catégories aux automates au lieu des expressions régulières. Un échantillon de ce travail comprend:
Bloom SL; Sabadini N .; Matrices, machines et comportements Walters RFC . Structures catégoriques appliquées, volume 4, numéro 4, décembre 1996, p. 343-360 (18)
Michael A. Arbib, Ernest G. Manes: Le point de vue d'un catégoriste sur les automates et les systèmes. Catégorie Théorie appliquée au calcul et au contrôle 1974: 51-64
MA Arbib et EG Manes. Machines adjacentes, machines à comportement d'état et dualité . Journal of Pure and Applied Algebra, 6: 313-344, 1975.
Enfin, il y a le travail sur les théories d'itération, itération: la logique équationnelle des processus itératifs par Stephen L. Bloom et Zoltán Ésik, qui se concentre sur l'itération (par exemple, l'étoile de Kleene), mais d'un point de vue plus général, où les langues régulières ne sont que une chose qui relève de la théorie.
la source
En fait, je pense que ce que vous cherchez, c'est l'algèbre de Kleene. Voir l'article classique de Dexter Kozen. Il donne une axiomatisation de l'étoile de Kleene. Je suppose que c'est la toute première étape qui vous intéresse.
Cet article n'utilise pas la théorie des catégories, mais il donne une axiomatisation équationnelle des algèbres de Kleene, dont la structure inclut celle des langages réguliers. Les algèbres de Kleene avec des tests peuvent être considérées comme l'extension des expressions régulières pour modéliser des programmes simples avec des boucles et des conditions (mais sans affectations). Cette extension est utile pour raisonner sur de tels programmes simples de manière purement algébrique.
Les langues régulières forment une algèbre booléenne avec une structure supplémentaire, comme vous le constatez. Cette structure a été étudiée du point de vue de la dualité de la pierre par Nick Pippenger.
L'approche de la dualité de la reconnaissance de la langue a récemment été à l'honneur et a été appliquée pour obtenir de nouveaux résultats sur la reconnaissance de la langue.
la source
Regarder le monde à l'aide de lunettes de théorie des catégories s'appelle la catégorisation . Parfois, cela produit des résultats vraiment agréables et surprenants. Les physiciens ont commencé à dire que penser un groupe comme un gropoïde à un élément fait vraiment une grande différence . Je commence à réaliser que penser un monoïde comme une catégorie à un élément simplifie aussi beaucoup de choses. (Par exemple, une action monoïde est alors un foncteur dans Set . De telles choses forment des catégories et des topos cartésiens fermés. Donc, elles ont un calcul lambda et une logique intuitionniste aussi!)
Vous souhaitez classer les langues régulières. Je ne sais pas si cela a été fait, ou fait et trouvé sans intérêt. Je n'ai rien vu d'écrit à ce sujet. Cependant, la structure algébrique des langues régulières, les algèbres de Kleene, est suffisamment intéressante. Il existe une grande quantité de littérature à leur sujet. Mais, à mon avis, la théorie des langages réguliers et des automates finis souffre d'un engagement prématuré à la finitude. (Les groupes finis sont intéressants et importants, mais vous ne voulez pas que la définition de «groupe» s'engage au début dans la finitude.) Il serait donc utile de rejeter la finitude et d'étudier les structures plus généralement.
Le travail le plus intéressant actuellement en cours concerne les structures appelées bimonoïdes de localité définies par Hoare. Les algèbres concomitantes de Kleene se sont avérées en être un exemple . Les bimonoïdes locaux et la concurrence sont une direction de recherche active.
la source