Что касается DCFL, я не вижу лучшего обозначения, чем переходная функция детерминированного пуш-автомата, то есть написание явных правил вида с состояниями q , q ′ в Q , z символом стека, γ последовательность символов стека, иQ, z, а → д', γQ, д'QZγaвходной символ или пустая строка. Само обозначение не обеспечивает детерминизм, но его легко проверить. Используя не зависящий от контекста грамматический вид обозначений (например, BNF), вы столкнетесь с проблемами, поскольку DCFL являются надлежащим подклассом CFL, и, как отмечается в DaniCL, вы не можете в целом решить, учитывая CFG, является ли его язык детерминированным.
Что касается VPL, то в скобках / в скобках для CFG было бы достаточно, с правилами формы где A - нетерминал, a - символ вызова, b - символ возврата и α - последовательность регулярного выражения над смешанным. внутренние символы и нетерминалы. Поскольку любой VPL также является (D) CFL, вы также можете повторно использовать приведенную выше нотацию для автоматов pushdown и проверить, соответствуют ли операции стека вызовам и возвратам, или записать переходное отношение вложенного словесного автомата (который был бы менее избыточным) ,A → a α bAaбα
aб