【发布时间】:2008-09-16 00:28:16
【问题描述】:
我正在寻找一种有趣的编程语言,但是我看到的大部分资源都是用于编写一种上下文无关的语言,但是我希望编写一种像 python 一样使用缩进的语言,据我所知意味着它不能是上下文无关的。
【问题讨论】:
-
我的编程语言课程有点生疏,你能给我一个链接来解释为什么 python 不是 CFG 吗?
-
Python 语言遵循上下文无关语法——他们甚至发布了 BNF! python.org/doc/current/ref/grammar.txt你可以在这里阅读上下文无关语法的正式定义:en.wikipedia.org/wiki/Context_free_grammar
-
同意,python 绝对是一种上下文无关语言。缩进的变化会导致缩进或取消缩进标记,它们只是语法中的符号。您需要一个特殊的标记器来识别这些标记,但这并不能阻止实际语法是 100% 真实的诚实上下文无关的。
标签: python compiler-construction programming-languages interpreter