> Я в этом не разбираюсь, но разве это не одно и то же (точнее, мне кажется, что это "неограниченные грамматики" = "машины Тьюринга")?
Добавлю для определенности "иначе". Спасибо!
> Просто вопрос — а у каких сложных языков именно формально контекстно-зависимые грамматики?
Тот же lexer hack — следствие зависимости от контекста. Попробуйте найти старый вариант gcc, где использовались flex/bison — думаю, ужаснетесь, какой там "изящный" код :)
Я почему-то помнил, что lexer hack и ему подобные — это семантический контекст (т.е. "зависимость от контекста" тут используется неформально, а формально — это unrestricted grammar)... неправильно думал, получается?
> думаю, ужаснетесь, какой там "изящный" код :)
Да во многих реальных парсерах, использующих bison и т.п., что-то подобное (разнообразные hacks, в т.ч. "дополнительные семантические действия на стадии разбора") есть, наверное — но не просто так, а чтобы остаться в LALR(1). ;)