-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathТеория_парсинга.txt
60 lines (60 loc) · 5.67 KB
/
Теория_парсинга.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
https://en.wikipedia.org/wiki/Shift-reduce_parser - Shift-reduce parser
https://en.wikipedia.org/wiki/Bottom-up_parsing - Bottom-up parsing
https://en.wikipedia.org/wiki/LR_parser - LR_parser
https://github.com/antlr/antlr4/blob/master/doc/lexer-rules.md - Lexer Rules
https://stackoverflow.com/questions/47496626/what-does-pushmode-popmode-mode-open-and-close-mean-in-the-lexer-grammar - pushMode
https://habr.com/ru/post/99298/ - Компиляция. 2: грамматики
https://www.geeksforgeeks.org/tree-traversals-inorder-preorder-and-postorder/
https://en.wikipedia.org/wiki/Tree_traversal#Depth-first
https://habr.com/ru/post/412905/ - LL
https://www.gnu.org/software/bison/manual/html_node/Simple-GLR-Parsers.html
http://blog.reverberate.org/2013/07/ll-and-lr-parsing-demystified.html
http://blog.reverberate.org/2013/09/ll-and-lr-in-context-why-parsing-tools.html
https://www.gnu.org/software/bison/manual/bison.html#Infix-Calc
https://stackoverflow.com/questions/6480634/examples-of-ll1-lr1-lr0-lalr1-grammars- примеры
http://www.supereasyfree.com/software/simulators/compilers/principles-techniques-and-tools/parsing-simulator/download.php - сим
https://stackoverflow.com/questions/5975741/what-is-the-difference-between-ll-and-lr-parsing
https://github.com/amirhossein-hkh/LR-Parser
https://www.geeksforgeeks.org/difference-between-ll-and-lr-parser/
https://www.geeksforgeeks.org/backtracking-algorithms/
https://habr.com/ru/post/358304/ - автоматы разные
https://stackoverflow.com/questions/3056441/what-is-a-semantic-predicate-in-antlr
https://www.antlr.org/papers/LL-star-PLDI11.pdf
http://www.javable.com/javaworld/12_00/02/#JavaCC - жабацц
http://www.comizdat.com/index_.php?id=346&in=kpp_articles_id - жабацц
https://tomassetti.me/antlr-mega-tutorial/ - создание маленького языка
https://tomassetti.me/parse-tree-abstract-syntax-tree/ - синтаксические абстрактные деревья
https://rus.stackexchange.com/questions/451958/%d0%9e%d1%82%d0%bb%d0%b8%d1%87%d0%b8%d0%b5-%d1%81%d0%b5%d0%bc%d0%b0%d0%bd%d1%82%d0%b8%d0%ba%d0%b8-%d0%be%d1%82-%d0%bb%d0%b5%d0%ba%d1%81%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%be%d0%b3%d0%be-%d0%b7%d0%bd%d0%b0%d1%87%d0%b5%d0%bd%d0%b8%d1%8f/451969#451969 - лексическое и семантическое значение
https://habr.com/ru/company/mailru/blog/477062/ - оптимизирующий компилятор
https://www.javaworld.com/article/2076269/build-your-own-languages-with-javacc.html
https://en.wikipedia.org/wiki/Deterministic_finite_automaton
https://en.wikipedia.org/wiki/Augmented_transition_network
https://dzone.com/articles/antlr-and-javacc-parser-generators
https://groups.google.com/forum/#!topic/antlr-discussion/NSUGQwIonKo
https://habr.com/ru/post/198682/ - Алгоритм Ахо-Корасик
https://habr.com/ru/post/348314/
Тулы для создания dsl
https://www.jetbrains.com/mps/
https://www.eclipse.org/Xtext/documentation/102_domainmodelwalkthrough.html
https://habr.com/ru/post/263951/ - Ускоренный курс по нотациям в теории языков программирования
https://habr.com/ru/post/348874/ - как читать семантику
https://stackoverflow.com/questions/2458558/what-does-s-attributed-and-l-attributed-grammar-mean
https://habr.com/ru/post/166777/ - конечные автоматы для регулярных выражений
https://compscicenter.ru/courses/compilers/2013-autumn/classes/227/ - Лекции Дмитрий Булычев
https://ru.wikipedia.org/wiki/%D0%9D%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%84%D0%BE%D1%80%D0%BC%D0%B0_%D0%A5%D0%BE%D0%BC%D1%81%D0%BA%D0%BE%D0%B3%D0%BE - Нормальная форма Хомского
https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%9A%D0%BE%D0%BA%D0%B0_%E2%80%94_%D0%AF%D0%BD%D0%B3%D0%B5%D1%80%D0%B0_%E2%80%94_%D0%9A%D0%B0%D1%81%D0%B0%D0%BC%D0%B8 - Алгоритм Кока Янгера Косами
https://en.wikipedia.org/wiki/Attribute_grammar - атрибутные грамматики
https://neerc.ifmo.ru/wiki/index.php?title=%D0%90%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%BD%D1%8B%D0%B5_%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D0%B8%D1%80%D1%83%D1%8E%D1%89%D0%B8%D0%B5_%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B8 - S атрибутная грамматика
https://en.wikipedia.org/wiki/Dyck_language - язык дика
https://theantlrguy.atlassian.net/wiki/spaces/ANTLR3/pages/2687062/LLVM - Антлр + ЛЛВМ
https://tomassetti.me/resources-create-programming-languages/ - гиды по языко строению
https://en.wikipedia.org/wiki/Context-free_grammar#Derivations_and_syntax_trees - опять лл и лр
https://cs.stackexchange.com/questions/54814/different-between-left-most-and-right-most-derivation - туда же
https://habr.com/ru/post/189992/ - Теорема клини
https://swtch.com/~rsc/regexp/regexp1.html - регулярки
https://habr.com/ru/company/pt/blog/210772/#formal-language-types - обзо кс и кз языков
https://github.com/antlr/antlr4-intellij-adaptor - адаптор грамматики для antlr в jb
https://stackoverflow.com/questions/18382957/tree-parser-vs-stream-parser
https://stackoverflow.com/questions/11496013/what-is-the-difference-between-an-on-line-and-off-line-algorithm - и ссылка выше отличиедерева от потоковых парсеров
https://theantlrguy.atlassian.net/wiki/spaces/ANTLR3/pages/2687006/How+do+I+strip+quotes - скипать кавычки
https://www.gatevidyalay.com/parse-tree-derivations-automata/ - левый вывод