Size: a a a

Compiler Development

2020 March 26

ИЧ

Илья Чистяков in Compiler Development
Yaroslav Schekin
Приблизительное.
расскажите, мне интересно
источник

YS

Yaroslav Schekin in Compiler Development
Ivan Boldyrev
Я пытаюсь вас убедить, что вы занимаетесь прожектёрством.
ORLY?!
А вот упомянутые DSL-ы в реально существующих text editors, которые худо-бедно решают эту задачу — тоже моё "прожектёрство"?!
Так что не надо пытаться меня в подобном убеждать, я думаю.
источник

IB

Ivan Boldyrev in Compiler Development
Yaroslav Schekin
ORLY?!
А вот упомянутые DSL-ы в реально существующих text editors, которые худо-бедно решают эту задачу — тоже моё "прожектёрство"?!
Так что не надо пытаться меня в подобном убеждать, я думаю.
Ну мы же уже видели эти DSL 😂
источник

YS

Yaroslav Schekin in Compiler Development
Илья Чистяков
расскажите, мне интересно
Эээ... Вы же сами это, скорее всего, знаете. Зачем этот вопрос?
источник

ИЧ

Илья Чистяков in Compiler Development
Yaroslav Schekin
Эээ... Вы же сами это, скорее всего, знаете. Зачем этот вопрос?
не знаю, но только что узнал, и нашёл ответ на ваш вопрос - континуум
источник

YS

Yaroslav Schekin in Compiler Development
Ivan Boldyrev
Ну мы же уже видели эти DSL 😂
Cуществует много языков программирования, и какие-то из них — отвратительны, следовательно... сам подход использования языков программирования порочен! — так оно получается, если следовать Вашей логике? ;)
(Но это уже совсем offtopic, мне кажется.)
Т.е. меня интересуют хорошие решения этой проблемы, или подходы к их реализации — это Вам понятно?
источник

IB

Ivan Boldyrev in Compiler Development
Yaroslav Schekin
Cуществует много языков программирования, и какие-то из них — отвратительны, следовательно... сам подход использования языков программирования порочен! — так оно получается, если следовать Вашей логике? ;)
(Но это уже совсем offtopic, мне кажется.)
Т.е. меня интересуют хорошие решения этой проблемы, или подходы к их реализации — это Вам понятно?
Да, эти хорошие подходы начинаются с ограничения формализма, а не с маниловщины "хочу парсить вообще всё".
источник

e

e in Compiler Development
Yaroslav Schekin
Cуществует много языков программирования, и какие-то из них — отвратительны, следовательно... сам подход использования языков программирования порочен! — так оно получается, если следовать Вашей логике? ;)
(Но это уже совсем offtopic, мне кажется.)
Т.е. меня интересуют хорошие решения этой проблемы, или подходы к их реализации — это Вам понятно?
Ну, языки программирования существуют не от хорошей жизни, так что да — порочен.
источник

ИЧ

Илья Чистяков in Compiler Development
Типы грамматик - здесь есть нулевой тип, это то обобщение что вы ищите, Yaroslav
источник

YS

Yaroslav Schekin in Compiler Development
Ivan Boldyrev
Да, эти хорошие подходы начинаются с ограничения формализма, а не с маниловщины "хочу парсить вообще всё".
И я примерно описал, что хочется подсвечивать (а не парсить, кстати — к примеру, в C макрос может раскрываться в тонны кода (и ими будет заниматься компилятор) — но к подсветке они вообще не имеют отношения).
Т.е. формально — это контекстно-зависимые грамматики, по идее, не более (если это кому-то на самом деле интересно ;) ).
источник

ИЧ

Илья Чистяков in Compiler Development
Yaroslav Schekin
И я примерно описал, что хочется подсвечивать (а не парсить, кстати — к примеру, в C макрос может раскрываться в тонны кода (и ими будет заниматься компилятор) — но к подсветке они вообще не имеют отношения).
Т.е. формально — это контекстно-зависимые грамматики, по идее, не более (если это кому-то на самом деле интересно ;) ).
но для КС же вопрос решён, есть куча решений, выбирай любой
источник

ИЧ

Илья Чистяков in Compiler Development
а нет, это я не то подумал
источник

ИЧ

Илья Чистяков in Compiler Development
Yaroslav Schekin
И я примерно описал, что хочется подсвечивать (а не парсить, кстати — к примеру, в C макрос может раскрываться в тонны кода (и ими будет заниматься компилятор) — но к подсветке они вообще не имеют отношения).
Т.е. формально — это контекстно-зависимые грамматики, по идее, не более (если это кому-то на самом деле интересно ;) ).
тут что-то пишут про невозможность, вычислительную сложность, какой-то класс PSPACE
источник

YS

Yaroslav Schekin in Compiler Development
Илья Чистяков
тут что-то пишут про невозможность, вычислительную сложность, какой-то класс PSPACE
И что? Интерпретаторы/компиляторы языков с формально контекстно-зависимыми грамматиками как-то с ними справляются, а задача подсветки — намного проще, по идее. ;)
источник

ИЧ

Илья Чистяков in Compiler Development
Yaroslav Schekin
И что? Интерпретаторы/компиляторы языков с формально контекстно-зависимыми грамматиками как-то с ними справляются, а задача подсветки — намного проще, по идее. ;)
справляются, костылями
и почему подсветка проще? мне это не очевидно
источник

OS

Oleg Stotsky in Compiler Development
А чем в подсветке лексера недостаточно?
источник

YS

Yaroslav Schekin in Compiler Development
Илья Чистяков
справляются, костылями
и почему подсветка проще? мне это не очевидно
Мне кажется — потому, что ничего, кроме "поверхностного" parsing, от неё не требуется.
источник

YS

Yaroslav Schekin in Compiler Development
Oleg Stotsky
А чем в подсветке лексера недостаточно?
источник

m

mighty λord raventid in Compiler Development
Peter Sovietov
Так ведь лексическая часть — это и есть достаточно общий подход. Необходимый, но, во многих случаях, недостаточный. Но вообще-то, я полагал, что заинтересую Вас сложностью задачи реализации инкрементального токенизатора. Благо, по нему есть масса научных статей и готовых решений. А оно вон как вышло — не заинтересовал %)
На какие статьи стоит обратить внимание (по реализации инкрементального токенизатора)?
источник

ИЧ

Илья Чистяков in Compiler Development
Yaroslav Schekin
Мне кажется — потому, что ничего, кроме "поверхностного" parsing, от неё не требуется.
всё равно нужно полное описание языка в виде грамматике
источник