Size: a a a

Compiler Development

2020 May 11

VS

Vasily Shapenko in Compiler Development
Который немного отличается от общепринятого
источник

PS

Peter Sovietov in Compiler Development
Ясно, спасибо!
источник

PS

Peter Sovietov in Compiler Development
Alex Gryzlov
сети петри что ли? :)
Нет. Речь вот о какой модели. Для некоторых это просто игра. Для других реализация вычислений по такой модели — лучший вариант использования мощнейших суперкомпьютеров :)
Ей еще пытаются придать интересный физический смысл. И Лем о чем-то в духе этой модели писал :)
источник

AG

Alex Gryzlov in Compiler Development
клеточный автомат?
источник

PS

Peter Sovietov in Compiler Development
Alex Gryzlov
клеточный автомат?
Он самый!
источник

AG

Alex Gryzlov in Compiler Development
а где там конкурентность, КА же обычно определяются начальными условиями?
источник

AG

Alex Gryzlov in Compiler Development
или это только про параллельные?
источник

PS

Peter Sovietov in Compiler Development
Alex Gryzlov
а где там конкурентность, КА же обычно определяются начальными условиями?
Да, я про реальный параллелизм. А Вы хотели недетерминизм? Вообще, есть разные варианты КА.
источник

AM

Alexander Malkov in Compiler Development
Peter Sovietov
Кстати, а в какой версии md это вообще работает?
Судя по грамматике отсюда — оно вообще работать не должно.
https://github.com/jbranchaud/js-play/blob/master/Markdown/grammar.md
ну, хотелось бы посмотреть в сторону C++
источник

PS

Peter Sovietov in Compiler Development
Alexander Malkov
ну, хотелось бы посмотреть в сторону C++
Я бы начал с поиска или формулирования грамматики в БНФ. Затем выбрал бы готовый генератор парсеров по вкусу. Вручную имеет смысл возиться, если только хотите всех победить по быстродействию разбора.
источник

AT

Alexander Tchitchigi... in Compiler Development
Peter Sovietov
Кстати, а в какой версии md это вообще работает?
Судя по грамматике отсюда — оно вообще работать не должно.
https://github.com/jbranchaud/js-play/blob/master/Markdown/grammar.md
Я бы ориентировался на CommonMark. 😊
источник

AM

Alexander Malkov in Compiler Development
Peter Sovietov
Я бы начал с поиска или формулирования грамматики в БНФ. Затем выбрал бы готовый генератор парсеров по вкусу. Вручную имеет смысл возиться, если только хотите всех победить по быстродействию разбора.
ну вот, думаю, ANTLR4
источник

IK

Ivan Kochurkin in Compiler Development
Alexander Malkov
рассматриваются, но там необходимо будет внести некоторые изменения, кастомизации
Какие кастомизации например? Советую все же рассматривать более менее готовые решения, например https://github.com/lunet-io/markdig , если используете C#
источник

IK

Ivan Kochurkin in Compiler Development
Alexander Malkov
ну вот, думаю, ANTLR4
Насчет ANTLR не уверен - маркдаун не очень хорошо вписывается в модель лексера-парсера ANTLR - там много всего основано на всяких отступах и других символах - придется использовать много семантических предикатов.
источник

AM

Alexander Malkov in Compiler Development
Ivan Kochurkin
Какие кастомизации например? Советую все же рассматривать более менее готовые решения, например https://github.com/lunet-io/markdig , если используете C#
как минимум, добавление span элемента каждой строчке, реализовываю diff документов, хотелось бы, выводить этот указатель на div в md и уже затем оборачивать строку в span с классом up/down/equal
источник

AM

Alexander Malkov in Compiler Development
просто у меня уже сервер реализован на C++, моя библиотека для создания diff написана на C++, и хотелось бы и md_compile реализовать тут же)
источник

IK

Ivan Kochurkin in Compiler Development
Насколько помню, в упомянутом выше markdig есть спаны для каждого элемента, а то и номера колонок. Вообще точные спаны и достоверные деревья - это вполне обыденные фичи для хороших парсеров.
источник

AT

Alexander Tchitchigi... in Compiler Development
Собственно, https://github.com/commonmark/commonmark-spec/wiki/List-of-CommonMark-Implementations -- можно выбрать язык по вкусу. 😊
источник

IK

Ivan Kochurkin in Compiler Development
А какого рода дифы вы делаете?
источник

AM

Alexander Malkov in Compiler Development
Ivan Kochurkin
А какого рода дифы вы делаете?
основано на Наибольшей общей последовательности, алгоритм, W. Myers, который используется в гите и в diff - для unix
источник