Оскільки мене цікавлять парсери (в основному граматики вираження парсера), мені цікаво, чи є якась робота, яка дає категоричне трактування розбору. Будь-яка посилання на застосування теорії категорій для розбору високо оцінена.
Найкраще,
Оскільки мене цікавлять парсери (в основному граматики вираження парсера), мені цікаво, чи є якась робота, яка дає категоричне трактування розбору. Будь-яка посилання на застосування теорії категорій для розбору високо оцінена.
Найкраще,
Відповіді:
Одним із найперших застосувань теорії категорій до предмета поза алгебраїчної геометрії був розбір! Ключові слова, якими ви хочете керувати вашим пошуком, - це "обчислення Ламбека" та "категоріальна граматика".
По-сучасному, Йоахім Ламбек винайшов некомутативну лінійну логіку для моделювання структури речень. Основна ідея полягає в тому, що ви можете надати основні частини мови як такі, що мають типи, а потім (скажіть) приписати англійські прикметники типу функції, беручи іменникові словосполучення до іменникових словосполучень. (наприклад, "зелений" розглядається як функція прийому іменників до іменників, це означає, що "зелені яйця" добре набрані, оскільки "яйця" є іменником).
Виявляється, граматики Ламбека еквівалентні контекстним вільним мовам, хоча, мабуть, це досить важкий результат - показати CFG є підмножиною ламбеківських граматик легко, але інший напрям був створений лише в 1991 році Pentus.
Хороша вправа ^ H ^ H ^ Публікація для читача (тобто я не пробував цього, але думаю, що було б круто спробувати) - використовувати обчислення Ламбека для переформулювання представлення Валіантом розбору CYK за допомогою розмноження булевої матриці в категоричній умови. В якості мотивації я наводжу статтю Ламбека 1958 р . Математика структури речення :
Викладене тут формально є тотожним із численням, побудованим Г. Д. Findlay та цим автором для обговорення канонічних відображень у лінійній та багатолінійній алгебрі.
Здається, що (без контексту) синтаксичний розбір a la Parsec природно виражається в термінах класу типу Applicative . У свою чергу, цей клас добре описаний так званими сильними в'ялими моноїдними функторами , про які йдеться у цьому дуже приємному питанні про теоретичні питання та в цьому приємному запитанні про поточний процес .
Більш загально, парсерові парсери - це монади , які настільки добре відомі як в теорії CS, так і в теорії категорій, що я не збираюся давати посилання, якщо не попросять.