Программа для конвертирования контекстно-свободного языка в автоматы? - PullRequest
0 голосов
/ 02 декабря 2010

Я не могу найти в Интернете ни одного апплета или программы, чтобы преобразовать язык без контекста в автомат с нажатием вниз ... любая помощь будет принята с благодарностью.

Ответы [ 3 ]

2 голосов
/ 04 января 2011

Это очень легко сделать вручную.КПК имеет начальное состояние s и конечное состояние f, только два состояния.Сделайте переход ((s, пустой, пустой), (f, S)), где S - начальный символ вашего CFG.Для каждого правила X -> Y, где X - нетерминальный символ, а Y - возможно пустая строка терминалов и нетерминалов, выполните переход ((f, empty, X), (f, Y)).Наконец, для каждого терминального символа a добавьте правило ((f, a, a), (f, пусто)).

Начните с нажатия стартового символа в стеке.Затем он заменяет любой нетерминал, который он находит в верхней части стека, правой частью производственного правила, а также сопоставляет и выводит любые терминальные символы в верхней части стека.

0 голосов
/ 25 мая 2017

Попробуйте это программное обеспечение: https://github.com/navrkald/regularConvertor. Вы можете пошагово бросить весь алгоритм конвертации CFG в КПК. Он написан на C ++ с использованием Qt, а в разделах выпусков вы уже собрали исполняемый двоичный файл для Windows.

0 голосов
/ 05 мая 2014

Пожалуйста, проверьте код по адресу: https://github.com/P-Raj/AutomataPlus. Он содержит код не только для преобразования CFG в КПК, но и для других подобных задач.

...