Парсинг неизвестных языков
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 16.05.17 10:16
Оценка: +1
А никто не встречал каких-нибудь работ, связанных с парсингом неизвестных формальных языков? Интересует построение парсера, умеющего (к примеру) все C-подобные языки, даже не существовавшие на момент его разработки. Понятное дело, точного парсинга тут быть не может, но хотя бы на уровне распознавания основных C-like управляющих конструкций и операторов?

Нутром чую, что нужно смотреть в сторону машинного обучения (то есть нужно смотреть в сторону NLP), но может есть иные подходы? Какие-нибудь универсальные толерантные грамматики там, или ещё что-то такое?
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re: Парсинг неизвестных языков
От: jazzer Россия Skype: enerjazzer
Дата: 16.05.17 12:00
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>А никто не встречал каких-нибудь работ, связанных с парсингом неизвестных формальных языков? Интересует построение парсера, умеющего (к примеру) все C-подобные языки, даже не существовавшие на момент его разработки. Понятное дело, точного парсинга тут быть не может, но хотя бы на уровне распознавания основных C-like управляющих конструкций и операторов?


KV>Нутром чую, что нужно смотреть в сторону машинного обучения (то есть нужно смотреть в сторону NLP), но может есть иные подходы? Какие-нибудь универсальные толерантные грамматики там, или ещё что-то такое?


Видел генератор кода на машинном обучении (tensorflow)
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: Парсинг неизвестных языков
От: Code Digger Грузия  
Дата: 16.05.17 18:09
Оценка: 72 (2)
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>А никто не встречал каких-нибудь работ, связанных с парсингом неизвестных формальных языков? Интересует построение парсера, умеющего (к примеру) все C-подобные языки, даже не существовавшие на момент его разработки. Понятное дело, точного парсинга тут быть не может, но хотя бы на уровне распознавания основных C-like управляющих конструкций и операторов?


KV>Нутром чую, что нужно смотреть в сторону машинного обучения (то есть нужно смотреть в сторону NLP), но может есть иные подходы? Какие-нибудь универсальные толерантные грамматики там, или ещё что-то такое?


Не нужно ни NLP, ни машинного обучения — всё намного проще: https://web.stanford.edu/~mlfbrown/paper.pdf
Re[2]: Парсинг неизвестных языков
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 16.05.17 18:20
Оценка:
Здравствуйте, Code Digger, Вы писали:

CD>Не нужно ни NLP, ни машинного обучения — всё намного проще: https://web.stanford.edu/~mlfbrown/paper.pdf


Похоже, именно то, что нужно. Спасибо!

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re: Парсинг неизвестных языков
От: Mna 404 and heavy formation
Дата: 17.05.17 04:50
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>А никто не встречал каких-нибудь работ, связанных с парсингом неизвестных формальных языков? Интересует построение парсера, умеющего (к примеру) все C-подобные языки, даже не существовавшие на момент его разработки. Понятное дело, точного парсинга тут быть не может, но хотя бы на уровне распознавания основных C-like управляющих конструкций и операторов?


Мне тема так поравилась что подумал, может статью написать на эту тему

KV>Нутром чую, что нужно смотреть в сторону машинного обучения (то есть нужно смотреть в сторону NLP), но может есть иные подходы? Какие-нибудь универсальные толерантные грамматики там, или ещё что-то такое?


А я нутром другое чую: надо отключить обработку ошибок, переключить ее в режим восстановления после ошибок и так продолжать парзинг. Описать возможные точки ветвления в грамматике/ах и главое ситуации восстановления на ту или иную точку в грамматике/ветку в SyntaxTree/AST

И потом это попробовать*) на незнакомых языках. Только где ж их взять? Подсматривать в будущее пока не научились... (хотя была идея односторонней посылки сигналов в прошлое, но оказалось невозможно)

*) пробовать и допиливать: добавлять гибкости в восстановлении-после-ошибок, либо, если выяснится что язык "слишком незнакомый", т.е. слишком мутировал от известных-заданных, то тогда, наоборот, отказаться от жесткого задания ветвления по терминалам

А что у вас за масса незнакомых языков-то? И откуда взялась
Re: основных C-like управляющих конструкций и операторов?
От: Lepsik Гондурас https://www.kirdyk.club/
Дата: 25.05.17 19:15
Оценка:
И как вы это представляете?

Language A:

int i = 0;

Language b:

i int = 0;

Language c:

i := 0 : integer;


Language xxx?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.