---
layout: post.njk
source: https://blog.qiaomu.ai/2026-05-15-os4izk
speaker: 向阳乔木
title: 一本1934年的哲学书，藏着AI能读懂语言的秘密 · 乔木博客
date: '2026-05-15'
summary: 文章探讨了鲁道夫·卡尔纳普在1934年的著作《语言的逻辑句法》中提出的形式语言观点，即机器处理语言的核心在于规则而非意义。作者指出，这一思想奠定了计算机科学与编程语言的哲学基础，不仅与图灵机结构同构，也为理解大语言模型的句法机制（而非语义理解）及AI对齐问题提供了深刻的方法论视角。
area: tech-engineering
category: ai-ml
tags:
  - formal-language
  - llm-mechanics
  - ai-alignment
  - syntax-semantics
  - philosophy-of-ai
people:
  - Rudolf Carnap
  - Alan Turing
companies_orgs: []
products_models:
  - GPT-4
  - Prolog
  - Python
  - Rust
  - Haskell
media_books: []
draft: true
status: evergreen
---

乔木博客

全部

AI工具

AI教程

AI生成

AI资讯

健脑房

播客解读

论文学习

# 一本1934年的哲学书，藏着AI能读懂语言的秘密

论文学习

·

2026年5月15日

·

34 次阅读

·

约 12 分钟

论文下载地址

> https://api.taylorfrancis.com/content/books/mono/download?identifierName=doi&identifierValue=10.4324/9781315823010&type=googlepdf

1950年，图灵发表了那篇著名的论文《计算机器与智能》，提出了后来被称为"图灵测试"的思想实验。

全世界都记住了这个故事。

但很少有人注意到，在图灵写下这篇论文的16年前，一个在布拉格的哲学家已经把最关键的那个问题说清楚了：机器处理语言，根本不需要理解意义，只需要遵守规则。

这个人叫鲁道夫·卡尔纳普。

那本书叫《语言的逻辑句法》，1934年德文初版，1937年英译出版。

它不是一本AI教材。它甚至不是一本计算机科学的书。

但如果你想搞清楚今天的大语言模型到底在做什么，以及它为什么既让人惊叹又让人困惑，这本书是绕不过去的源头之一。

## 逻辑学家们有一个拖了一百年的烂摊子

19世纪末到20世纪初，数学和逻辑学经历了一场地基危机。

导火索是一个看起来很简单的问题：集合论里有没有矛盾？

1901年，罗素发现了一个悖论。

考虑"所有不包含自身的集合"组成的集合，它到底包不包含自身？

包含，则它不该包含自己；不包含，则它应该包含自己。

（类似理发师悖论）

这个悖论把当时最严密的数学体系直接打穿了。

这之后，数学家和逻辑学家分裂成三个阵营，吵了几十年。

形式主义（以希尔伯特为代表）认为，数学就是符号游戏，只要规则自洽、没有矛盾就够了，不需要问符号"是什么意思"。

直觉主义（以布劳威尔为代表）认为，数学必须建立在人类直觉可以构造的对象上，排中律这种经典逻辑规则都不能随便用。

逻辑主义（以弗雷格、罗素为代表）认为，数学可以完全归约为逻辑，数字本质上是逻辑对象。

三派各有道理，谁也说服不了谁。

卡尔纳普在维也纳学圈里看着这场争论，得出了一个让所有人都不舒服的结论：你们争的根本就不是同一件事，因为你们用的语言本身就没有被精确定义过。

这是《语言的逻辑句法》的起点。

## 把语言当棋局来下，意义根本不重要

要理解卡尔纳普在做什么，先要接受一个反直觉的想法。

语言通常被认为是意义的载体。

"苹果"这个词之所以有用，是因为它指向一个真实的东西。

逻辑推理之所以有效，是因为前提和结论在意义上有关联。

卡尔纳普说：先把这个想法放一边。

他把语言定义为一种"演算"，用的类比是国际象棋。

棋盘上的车、马、炮，本身没有任何意义。车不是真的战车，马不是真的马。

但这不妨碍我们下棋，因为棋局的全部运作，由两类规则完全决定：

构成规则，决定什么是合法的棋局状态，棋子怎么摆，初始局面是什么样的。

变换规则，决定每一步棋怎么走，哪些移动合法，哪些不合法。

语言也是这样。

一个符号串是不是合法的句子，一个句子能不能从另一个句子推导出来，这些全部由形式规则决定。

不需要知道符号的意义，只需要看符号的种类和排列顺序。

他举了一个故意造出来的例子："Pirots karulize elatically。"

没人知道这句话说的是什么，Pirot是什么东西，karulize是什么动作，elatically是什么状态。

但只要知道"Pirots"是名词复数，"karulize"是第三人称复数动词，"elatically"是副词，就能判断这是一个合法的英语句子。

更进一步，如果再给一个句子"A is a Pirot"，就可以推导出"A karulizes elatically"。

整个过程，意义完全没有参与。

这个想法在1934年是激进的。在今天，它是计算机科学的基石。

## 图灵读没读过这本书？不重要，重要的是他们想的是同一件事

1936年，图灵发表了《论可计算数及其在判定问题上的应用》。

他在论文里描述了一种假想的机器：一条无限长的纸带，一个读写头，一套状态转换规则。

机器不理解纸带上符号的含义，只根据当前状态和当前符号，决定写什么、往哪移动、转换到哪个状态。

这和卡尔纳普的演算定义，在结构上完全一致。

卡尔纳普说：语言是符号按规则排列的序列，合法性和推导关系完全由形式规则决定。

图灵说：计算是符号按规则变换的过程，机器的行为完全由状态转换表决定。

两个人都在说同一件事：形式规则可以机械地执行，不需要理解意义。

这不是巧合。

1930年代的维也纳和剑桥，都浸泡在同一个智识氛围里。

弗雷格的概念文字、罗素和怀特海的《数学原理》、希尔伯特的元数学，这些是两个人共同的思想背景。

卡尔纳普在书的致谢里提到了弗雷格、罗素、希尔伯特、塔斯基、哥德尔。

图灵的导师是丘奇，丘奇的工作和这个圈子深度交织。

更直接的一条线索是哥德尔。

## 哥德尔的编码技巧，是"程序也是数据"的祖先

卡尔纳普在书的第二部分做了一件技术上很漂亮的事。

他证明：语言 I 的句法，可以在语言 I 自身内部被描述。

这听起来像是要出问题。

一个系统描述自己，不就是"说谎者悖论"那种自我指涉吗？"这句话是假的"，如果是真的那就是假的，如果是假的那就是真的，死循环。

卡尔纳普用的解法来自哥德尔1931年的不完备性定理证明。

哥德尔的核心技巧叫"算术化"：把符号和符号串编码成自然数，把句法规则编码成算术运算，这样关于语言的陈述就变成了关于数字的陈述。

具体来说，给每个符号分配一个编号，一个符号串的编码是各符号编号按某种方式组合得到的数字。"这个符号串是合法句子"这个句法命题，就变成了"这个数字满足某个算术条件"这个算术命题。

这个编码技巧的意义，远超哥德尔定理本身。

把符号操作编码成数字运算，就是"程序也是数据"这个思想的直接来源。

冯·诺依曼在1945年设计存储程序计算机架构时，程序和数据存在同一块内存里，程序可以读取、修改、生成程序。这个设计之所以可能，根子就在哥德尔的编码思想。卡尔纳普在这本书里把它用在句法理论上，让这个思想在逻辑学圈子里广泛传播。

今天的编译器把源代码（符号串）变成机器码（另一种符号串），解释器在运行时处理程序本身，元编程让程序生成程序，这些全都是同一个思想的不同实例。

## 数学基础之争的终结方式，预言了编程语言的多元生态

回到那场吵了几十年的数学基础之争。

卡尔纳普的解决方案不是裁判谁对谁错，而是宣布这场比赛本身设错了规则。

他在书里提出了"容忍原则"（Principle of Tolerance）：

在语言形式的选择上，我们拥有完全的自由。构成规则和变换规则都可以任意选定。不存在一种"正确的逻辑"需要被证明或捍卫。

形式主义、直觉主义、逻辑主义，都可以按自己的偏好构造语言系统。

真正值得问的问题只有一个：你选的这套规则，会导致什么后果，会不会产生矛盾？

这个立场在1934年是哲学上的激进主张。在今天，它是软件工程的日常共识。

Python、Rust、Haskell、Prolog，没有哪个编程语言是"正确的"。

动态类型和静态类型没有谁更真，函数式和命令式没有谁更对。

每一种语言都是一套规则选择，区别只在于这套选择导致的后果：表达能力、性能特征、错误检测能力、适用场景。

编程语言理论这个学科，研究的正是不同规则选择的句法后果。

类型系统、操作语义、指称语义，这些概念的框架，和卡尔纳普在这本书里建立的框架高度同构。

更直接的影响体现在逻辑编程上。

Prolog语言的设计，直接基于一阶逻辑的推导规则，程序就是一组逻辑子句，计算就是在这些子句上做推导。

这是卡尔纳普意义上的演算，被直接实现成了编程语言。

## 大语言模型在做什么，卡尔纳普1934年就把问题说清楚了

现在来到最有意思的地方。

GPT-4能写诗、能解题、能翻译、能写代码。

很多人觉得它"理解"了语言。也有很多人坚持认为它只是在做统计，根本不懂意义。

这场争论，卡尔纳普在九十年前就把它的结构画出来了。

他区分了两个层次。

句法（syntax）：符号的形式规则，符号怎么排列，怎么变换。

语义（semantics）：符号和外部世界的对应关系，符号"指向"什么。

卡尔纳普的整个体系建立在句法优先上。

他认为，逻辑关系、推导关系、分析性，这些都可以纯粹在句法层面定义，不需要诉诸语义。

大语言模型做的事情，从机制上看，是在做极其复杂的句法操作。

它在数以万亿计的文本上学习符号的共现模式、位置关系、上下文分布。

给定一个输入序列，它计算下一个符号的概率分布，选择最可能的输出。

它从来没有"看到"过苹果，没有"感受"过疼痛，没有"经历"过时间流逝。它只处理过描述这些东西的符号串。

但它生成的输出，在很多情况下表现得好像它理解了这些概念。

这正是卡尔纳普体系里最深的那个张力：如果句法规则足够复杂、足够丰富，它能不能涌现出语义？形式操作的极限，是不是就是意义本身？

卡尔纳普自己没有回答这个问题。

他的工作止步于建立句法体系，语义理论是后来塔斯基发展的另一条线。

但他把这个问题的边界画得足够清楚，清楚到九十年后AI领域还在沿着这条边界争论。

## 哲学里的"伪问题"，和今天AI对齐里的真问题

书的最后一部分，卡尔纳普做了一件让哲学家们很不高兴的事。

他区分了两种说话方式。

"实质模式"，比如"数字5是一个对象"，听起来像是在描述世界上真实存在的东西。

"形式模式"，比如"'5'是一个数词"，说的是语言本身的结构。

他的论断是：哲学史上大量的争论，是把形式模式的问题误当成实质模式的问题来讨论。

"时间是真实的吗"、"数学对象存在吗"、"意识是物质的吗"，这些问题在卡尔纳普看来，要么可以被翻译成关于语言结构的精确问题，要么就是没有意义的伪问题。

这个立场激进，也有争议。

但它的方法论内核，在今天的AI对齐讨论里意外地有用。

AI对齐领域有一个反复出现的困境：我们说要让AI"理解人类价值观"，但"理解"是什么意思？"价值观"是什么意思？这些词在日常语言里用起来没问题，但一旦要把它们变成可操作的技术目标，就会发现它们极度模糊。

卡尔纳普的方法论建议是：先把问题形式化。把"AI理解了什么"这个问题，翻译成关于系统行为的精确描述。 不是问"它有没有意识"，而是问"在哪些输入输出模式上，它的行为和我们期望的一致"。不是问"它懂不懂道德"，而是问"给定这些规则，它会产生什么推导结果"。

这不是回避问题，而是把问题变得可以被处理。

## 九十年前的那艘船，今天还在同一片海上

卡尔纳普在前言里写了一句话，读起来像是在说今天的AI：

> 逻辑这艘船第一次试图离开经典形式的陆地，是勇敢的尝试。但它被对"正确性"的追求所束缚。现在，那个障碍已经被克服，在我们面前是无边无际的可能性之海。

他说的是逻辑系统的多元可能性。但这句话用来描述今天的AI研究，同样贴切。

Transformer、扩散模型、强化学习，这些不同的架构选择，本质上就是不同的"规则系统"，对应着不同的"句法后果"。

没有哪个是唯一正确的，只有哪个在特定任务上表现更好。

卡尔纳普在1934年建立的那个框架，核心洞见只有一个：语言的本质是规则，规则可以机械执行，规则的选择决定系统的能力边界。

这句话，是图灵机的哲学前提，是编程语言理论的基础，也是今天每一个语言模型背后最深层的假设。

大语言模型到底有没有真正理解语言，这个问题还没有答案。

但要想把这个问题问清楚，绕不开卡尔纳普在九十年前画下的那条线：句法在哪里结束，语义从哪里开始。

© 2026

·

向阳乔木