Цель моей работы - создать экспертную систему. Грамматику экспертной системы я составил, теперь моя задача создать программу, которая будет переводить текст написанный по грамматике, в реальный код и сохранять необходимые данные в базу данных. Т.е. эксперт составил экспертную систему (написал ее код в файл), загрузил файл, а в ответ получил готовую экспертную систему, которую он может использовать. Так же он может из экспертной системы составить точно такой же код. То есть по сути реализация транслятора (или компилятора). Я в этом никогда не разбирался и хотел спросить, как это вообще делается? На каких языках пишется и какие технологии используются? Если можно, то подробнее опишите и направьте меня пожалуйста.
Гуглите "Курсовая работа по дисциплине Теория языков программирования и методы трансляции".
Получите максимально простой и сжатый гайд, как собрать транслятор одному единственному живому человеку и не сойти с ума.
Такая грамматика уже создана. Называется язык Prolog.
Сразу скажу что сама затея создания словесных экспертных систем обречена на провал.
Растущая комбинаторная сложность и сложность задавания вопросов этой системе
свела на нет все усилия лет 30 назад.
Сегодня такие системы считаются legacy, и языковые модели-чаты их полностью заметили.
Потому что обучить модель легче чем человеку описать сет рулов. И еще все это потом протестировать.
mayton2019, спасибо большое, я даже и не знал. Делал по примеру описания грамматики SQL. Нужно именно искать? Или можно написать самостоятельно? Просто я думал что я буду считывать все строки, и с помощью регулярок буду получать необходимые данные и буду заносить их в БД (думал будет легче). Примеры экспертных систем на данном языке у меня есть если что.
Андрей Пустовой, если твоя задача решаема на регулярках - то решай на регулярках.
Я уже давно стал философом разработки и никому не советую делать перфекционизм.
Из таких утилит я использовал https://www.antlr.org/ и то очень давно. И я даже не знаю
какая там грамматика. Просто какая-то...