从氛围编程到乔姆斯基:在满是提示词的世界里,语言学要火了吗?
内容提要
作者反思“氛围编程”依赖自然语言提示,虽快却模糊易错。他回顾乔姆斯基1956年借编译器形式文法研究句法,建立形式语言层级。如今大模型按概率生成代码,缺乏精确结构。作者认为需为提示引入形式语义、上下文图和混合语言,并介绍Nuanced工具,通过静态分析生成调用图,为LLM提供精确上下文,让编程既灵活又可靠。
延伸解读
从乔姆斯基到氛围编程:形式与灵活的张力
文章回顾乔姆斯基1956年借编译器形式文法研究句法,建立形式语言层级,证明自然语言至少需要上下文无关文法。如今氛围编程依赖自然语言提示,虽快却模糊,大模型按概率生成代码,缺乏精确结构。作者认为这反映了我们在过松系统与清晰边界之间的摇摆,并暗示需要新的结构层来约束AI编码代理。
为提示引入形式语义与上下文图
作者提出三个方向:为提示定义形式语义,确保“center this div”在不同提示和仓库中含义一致;使用上下文图将句子锚定到相关代码或数据切片;探索介于英语和DSL之间的混合语言,既可读又无歧义。这些方向对应语言学的句法、语义和语用,可能让语言学在AI工具和提示工程中重新受到关注。
Nuanced的实践:静态分析生成调用图
作者正在开发Nuanced工具,通过静态分析仓库构建调用图,只向LLM提供所需节点。提示仍用英语,但执行恢复乔姆斯基式的精确性。这被视为让氛围编程更安全的一小步,也可能重新点燃语言学与计算机科学近七十年前由乔姆斯基开启的结合。
Q&A
乔姆斯基1956年为什么转向研究编程语言?
乔姆斯基想用数学严谨性描述人类句法,但传统语言学缺乏形式化语法。他从早期编译器研究中借用了形式文法(如正则文法、上下文无关文法)和自动机模型,以建立可测试的语法理论,并由此提出了乔姆斯基层级。
什么是乔姆斯基层级?它包含哪些层级?
乔姆斯基层级是乔姆斯基提出的四层形式语言分类:正则语言、上下文无关语言、上下文敏感语言和递归可枚举语言。这一层级成为编译器理论的基石,也为理解人类语言提供了新视角。
氛围编程有什么缺点?
氛围编程依赖自然语言提示,虽然快速且表达力强,但不够精确。大语言模型将代码扁平化为标记并进行概率猜测,导致流程可重复性差,增加了猜测和调试的难度。
Nuanced工具是如何工作的?
Nuanced通过静态分析代码仓库,构建调用图,然后只将大语言模型需要的节点提供给它。这样提示仍然是英文,但执行过程恢复了乔姆斯基级别的精确性,使氛围编程更安全可靠。
语言学在AI编程工具中可能扮演什么角色?
语言学可能为提示引入形式语义,确保跨提示、跨仓库的一致性;构建上下文模型(如图结构)将句子锚定到相关代码或数据;以及设计介于英语和领域特定语言之间的混合语言,既易读又无歧义。这些方向涉及语法、语义和语用学,可能让语言学在AI工具、提示工程和编译器即服务层中重新受到关注。
为什么作者认为我们需要为AI编程引入更多结构?
因为自然语言提示虽然快速,但过于宽松和不精确,导致大语言模型产生概率性错误,增加调试负担。正如乔姆斯基借用编程形式化来精确描述语法,我们也需要调用图、类型信息、符号表等结构来约束AI编码代理,使其更可靠。