Size: a a a

Compiler Development

2020 November 09

AG

Alex Gryzlov in Compiler Development
Pavel Meledin
Есть ли примеры "движков" подобных движкам регулярных выражений, где с помощью машин конечных автоматов реализуют описание образца для сопоставления по набору данных, но чтоб домен был не строки как в случае с регулярками, а некий другой отличный от строк?
конечные автоматы же эквивалентны регуляркам
источник

AG

Alex Gryzlov in Compiler Development
то есть что ни делай, все равно будет им равномощно
источник

DP

Dmitry Ponyatov in Compiler Development
Alex Gryzlov
конечные автоматы же эквивалентны регуляркам
регулярки вроде не рассматривают отдельные биты в потоке в качестве данных
источник

а

а это кто in Compiler Development
Pavel Meledin
Есть ли примеры "движков" подобных движкам регулярных выражений, где с помощью машин конечных автоматов реализуют описание образца для сопоставления по набору данных, но чтоб домен был не строки как в случае с регулярками, а некий другой отличный от строк?
Если можете представить объект вашего домена как строку, то можно использовать обычные регулярки
источник

PM

Pavel Meledin in Compiler Development
Dmitry Ponyatov
язык Elixir не сгодится?
а можно подробнее о том как эликсир подпадает под такой запрос? пока не могу идентифицировать связанность
источник

PM

Pavel Meledin in Compiler Development
Victor Shamparov
Не скажу, что хорошо подходит под запрос, но ЕМНИП был проект, использующий CTL-логику на CFG.
https://coccinelle.gitlabpages.inria.fr/website/papers.html
благодарю, изучу
источник

PM

Pavel Meledin in Compiler Development
Dmitry Ponyatov
регулярки вроде не рассматривают отдельные биты в потоке в качестве данных
да, вот тоже про это от части как пример разницы доменов
источник

PM

Pavel Meledin in Compiler Development
а это кто
Если можете представить объект вашего домена как строку, то можно использовать обычные регулярки
интересная мысль, опробую
источник

DP

Dmitry Ponyatov in Compiler Development
Pavel Meledin
а можно подробнее о том как эликсир подпадает под такой запрос? пока не могу идентифицировать связанность
источник

PM

Pavel Meledin in Compiler Development
а, понял
источник

DP

Dmitry Ponyatov in Compiler Development
Pavel Meledin
Есть ли примеры "движков" подобных движкам регулярных выражений, где с помощью машин конечных автоматов реализуют описание образца для сопоставления по набору данных, но чтоб домен был не строки как в случае с регулярками, а некий другой отличный от строк?
источник

VK

Val Krylov in Compiler Development
Pavel Meledin
Есть ли примеры "движков" подобных движкам регулярных выражений, где с помощью машин конечных автоматов реализуют описание образца для сопоставления по набору данных, но чтоб домен был не строки как в случае с регулярками, а некий другой отличный от строк?
Да. Имплементации row pattern recognition из SQL:2016, например.
источник

AT

Alexander Tchitchigi... in Compiler Development
Dmitry Ponyatov
регулярки вроде не рассматривают отдельные биты в потоке в качестве данных
Конечно рассматривают. Если Ваш движок регулярок умеет только в буквы -- это ограниченный движок. Регуляркам (КА) самим по себе пофиг что матчить.
источник

IK

Ivan Kochurkin in Compiler Development
Pavel Meledin
Есть ли примеры "движков" подобных движкам регулярных выражений, где с помощью машин конечных автоматов реализуют описание образца для сопоставления по набору данных, но чтоб домен был не строки как в случае с регулярками, а некий другой отличный от строк?
В ANTLR в качестве входа в парсер являются токены. А как ты генерируешь поток токенов - не важно. Обычно используется лексер на строках, но при желании можно создавать эти токены и привязывать к чему угодно. Правда это будет даже не регулярки, а более мощные языки - контекстно-свободные.
источник

IK

Ivan Kochurkin in Compiler Development
Так, кстати, можно создавать парсеры бинарных форматов или смешивать разнородные парсеры (PHP внутри HTML).
источник

M

MrSmith in Compiler Development
Меня давно мучает идея интерпретации парсера и нахождение максимально похожего совпадения. Думаю что то такое есть даже, правда оно только опечатки будет находить и пропуски довольно точно, но может кто то ML использует или что то типа того
источник

PM

Pavel Meledin in Compiler Development
Ivan Kochurkin
В ANTLR в качестве входа в парсер являются токены. А как ты генерируешь поток токенов - не важно. Обычно используется лексер на строках, но при желании можно создавать эти токены и привязывать к чему угодно. Правда это будет даже не регулярки, а более мощные языки - контекстно-свободные.
а это интересная идея. благодарю
источник

M

MrSmith in Compiler Development
https://www.tabnine.com/blog/deep/ вот из старичков, но вроде и недавно были ещё какие то проекты с code completition, а вообще Lang tooling, намного сложней становится чем компиляторы
источник

M

MrSmith in Compiler Development
Такое ещё есть, https://marketplace.visualstudio.com/items?itemName=hediet.debug-visualizer, ставлю на то что в будушем все будет тесней сростаться и ручки будут в ide.
источник

PS

Pavel Samolysov in Compiler Development
Intellij Idea предлагает галочку для включения "Rank completion suggestions based on Machine Learning" В CLion тоже есть, но только для питона.
источник