Skip to content

Commit a0e0eb5

Browse files
committed
Базовый перенос материалов про комбинаторы для КС запросов из статей.
1 parent 3fc50e5 commit a0e0eb5

4 files changed

Lines changed: 259 additions & 11 deletions

File tree

book_structure.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -254,10 +254,11 @@
254254
- ⚠️ Подраздел "Свойства алгоритма"
255255
- Интегрированы материалы из статьи `papers_src/CFPQ_GLR/paper`: основной алгоритм из `algorithm.tex`, доказательства завершаемости и корректности из `algorithm.tex`, пример и рисунки из `appendix.tex`. Рисунки и dot-исходники перенесены в `tex/part_03_GraphAnalysis/chapter_12_CFPQ/figures/07_GLR_Based/`.
256256
- ⚠️ Раздел "Комбинаторы парсеров для поиска путей с КС ограничениям" — `08_Combinators.tex`
257-
- ❌ Вводная часть раздела: история вопроса, обзор, мотивация
258-
- ❌ Подраздел "Описание алгоритма"
259-
- ❌ Подраздел "Примеры"
260-
- ❌ Подраздел "Свойства алгоритма"
257+
- ⚠️ Вводная часть раздела: мотивация (прозрачная интеграция, композиция), история (Trails, Meerkat), связь с GLL
258+
- ⚠️ Подраздел "Описание алгоритма": обобщённый интерфейс входа, базовые комбинаторы, семантические действия, SPPF, обработка циклов и левой рекурсии
259+
- ⚠️ Подраздел "Примеры": same generation, параметризованные комбинаторы, семантические действия и типобезопасность
260+
- ⚠️ Подраздел "Свойства алгоритма": корректность, выразительная мощность, обработка циклов, сложность, сравнение с другими подходами
261+
- Интегрированы материалы из `papers_src/Scala_ICFP/` (основная): введение, описание комбинаторов и семантических действий, примеры, свойства. Из `papers_src/Combinators_for_single_source_CFPQ/` (вспомогательная): пример same generation с пользовательскими действиями, типобезопасность.
261262

262263
### Глава 13. Сравнение алгоритмов, использующих КС языки в качестве ограничений — `tex/part_03_GraphAnalysis/chapter_13_CFPQ_Comparison/main.tex` — ❌
263264

tex/FormalLanguageConstrainedReachabilityLectureNotes.bib

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,52 @@ @inproceedings{Verbitskaia:2018:PCC:3241653.3241655
141141
keywords = {Context-Free Language Reachability, Context-Free Path Querying, GLL, Generalized LL, Graph Databases, Language-Constrained Path Problem, Neo4j, Parser Combinators, Scala}
142142
}
143143

144+
@inproceedings{izmaylova2016practical,
145+
author = {Izmaylova, Anastasia and Afroozeh, Ali and Storm, Tijs van der},
146+
title = {Practical, General Parser Combinators},
147+
booktitle = {Proceedings of the 2016 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation},
148+
series = {PEPM '16},
149+
year = {2016},
150+
pages = {1--12},
151+
doi = {10.1145/2847538.2847539},
152+
publisher = {ACM}
153+
}
154+
155+
@article{scott2010gll,
156+
author = {Scott, Elizabeth and Johnstone, Adrian},
157+
title = {GLL Parsing},
158+
journal = {Electronic Notes in Theoretical Computer Science},
159+
volume = {253},
160+
number = {7},
161+
pages = {177--189},
162+
year = {2010},
163+
doi = {10.1016/j.entcs.2010.08.041}
164+
}
165+
166+
@book{burge1975recursive,
167+
author = {Burge, William H.},
168+
title = {Recursive Programming Techniques},
169+
year = {1975},
170+
publisher = {Addison-Wesley}
171+
}
172+
173+
@techreport{hutton1996monadic,
174+
author = {Hutton, Graham and Meijer, Erik},
175+
title = {Monadic Parser Combinators},
176+
institution = {University of Nottingham},
177+
year = {1996}
178+
}
179+
180+
@article{Johnson1995memoization,
181+
author = {Johnson, Mark},
182+
title = {Memoization in Top-down Parsing},
183+
journal = {Computational Linguistics},
184+
volume = {21},
185+
number = {3},
186+
pages = {405--417},
187+
year = {1995}
188+
}
189+
144190
@inproceedings{Mishin:2019:ECP:3327964.3328503,
145191
author = {Mishin, Nikita and Sokolov, Iaroslav and Spirin, Egor and Kutuev, Vladimir and Nemchinov, Egor and Gorbatyuk, Sergey and Grigorev, Semyon},
146192
title = {Evaluation of the Context-Free Path Querying Algorithm Based on Matrix Multiplication},

tex/part_03_GraphAnalysis/chapter_12_CFPQ/06_GLL_Based.tex

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
\section{Обобщённый нисходящий алгоритм для поиска путей с КС ограничениям}
2-
\tikzsetfigurename{CFPQ_GLL_}
2+
\label{sec:CFPQ_GLL}
3+
\tikzsetfigurename{CFPQ_GLL_}
34

45
GLL довольно естественно обобщается на граф~\cite{Grigorev:2017:CPQ:3166094.3166104}: позициями входа теперь будем считать не индексы линейного слова, а вершины графа. В самом же алгоритме требуется внести лишь два небольших дополнения:
56

0 commit comments

Comments
 (0)