05 · Philosophy of Language
05 · ปรัชญาภาษา
This chapter sits in Part I, the Court of Philosophy — the fifth hearing, where philosophy asks the machine what its code, and our own speech, actually mean.
การไต่สวนครั้งที่ 5 ในภาค I ศาลปรัชญา — ปรัชญาถามเครื่องจักรตรงๆ ว่าโค้ดของมัน และคำพูดของเราเอง แปลว่าอะไรกันแน่
How does code mean — and how do we?
โค้ดมีความหมายได้อย่างไร — แล้วเราล่ะ
On 17 June 2016, an anonymous attacker called a function named splitDAO inside The DAO, a decentralized investment fund that had raised over $150 million in ether from thousands of contributors that spring. The function was supposed to let a member withdraw their share and then update the fund's internal ledger — but it updated the ledger after sending the funds, not before, so the attacker called it again from inside the same transaction, before the balance had changed, and kept calling it in a tight recursive loop. By the time the loop stopped, roughly 3.6 million ether — around $50 million by the day's reporting — had drained into an account the attacker controlled (Chainlink, "Reentrancy Attacks and The DAO Hack Explained"). Nothing the attacker did violated a single line of the contract's code. Every call matched every rule exactly.
ทุกการเรียกใช้ตรงกับทุกกฎเป๊ะ และไม่มีสิ่งใดที่ผู้โจมตีทำละเมิดโค้ดของสัญญาแม้แต่บรรทัดเดียว วันที่ 17 มิถุนายน 2016 ผู้โจมตีนิรนามคนหนึ่งเรียกฟังก์ชันชื่อ splitDAO ใน The DAO กองทุนลงทุนแบบกระจายศูนย์ที่ระดมอีเธอร์ได้กว่า 150 ล้านดอลลาร์จากผู้ร่วมลงทุนหลายพันคนในฤดูใบไม้ผลิปีนั้น ฟังก์ชันนี้มีไว้ให้สมาชิกถอนส่วนแบ่งของตัวเอง เสร็จแล้วจึงแก้บันทึกภายในของกองทุน แต่มันแก้บันทึก หลังจาก ส่งเงินออกไป ไม่ใช่ก่อน ผู้โจมตีจึงเรียกฟังก์ชันเดิมซ้ำจากในธุรกรรมเดียวกัน ตอนที่ยอดคงเหลือยังไม่ขยับ และเรียกซ้ำวนเป็นลูปเรียกตัวเอง (recursive loop) ถี่ยิบ กว่าลูปจะหยุด อีเธอร์ราว 3.6 ล้านหน่วย — ราว 50 ล้านดอลลาร์ตามรายงานวันนั้น — ไหลเข้าบัญชีที่ผู้โจมตีคุมอยู่ (Chainlink, "Reentrancy Attacks and The DAO Hack Explained")
Ethereum's community split over what had just happened. One faction invoked the movement's own slogan, "code is law" — a contract's terms are whatever its bytecode executes, and a transaction that follows the code to the letter cannot be theft, whatever a plain-English reading of the fund's purpose would say. The other faction held that a contract has a purpose beyond its literal text, and on 20 July 2016, at block 1,920,000, the majority forked the entire Ethereum blockchain to reverse the theft — the holdout minority who kept the original chain became Ethereum Classic (The Block, "The DAO Hack at 10"). Both camps were looking at identical bytes of source code. They disagreed about what those bytes meant.
ทั้งสองฝ่ายมองไบต์ชุดเดียวกันเป๊ะๆ ของซอร์สโค้ด แล้วอ่านความหมายไม่ตรงกัน ชุมชน Ethereum แตกเป็นสองฝ่ายทันทีเรื่องสิ่งที่เพิ่งเกิดขึ้น ฝ่ายแรกยกคำขวัญของขบวนการเองขึ้นมา — "โค้ดคือกฎหมาย (code is law)" — เงื่อนไขของสัญญาคือสิ่งที่ bytecode ของมันสั่งทำงาน เท่านั้น ธุรกรรมที่เดินตามโค้ดตรงตัวย่อมไม่ใช่การขโมย ต่อให้อ่านความมุ่งหมายของกองทุนเป็นภาษาอังกฤษธรรมดาแล้วได้คำตอบตรงข้ามก็ตาม ฝ่ายที่สองถือว่าสัญญามีความมุ่งหมายอยู่เหนือตัวอักษร วันที่ 20 กรกฎาคม 2016 ที่บล็อกที่ 1,920,000 เสียงข้างมากฟอร์กบล็อกเชน Ethereum ทั้งสายเพื่อพลิกการขโมยนั้นกลับ ฝ่ายข้างน้อยที่ยืนกรานอยู่กับสายเดิมกลายเป็น Ethereum Classic (The Block, "The DAO Hack at 10")
That disagreement is philosophy of language's oldest question, arriving through customs with a shipping label that says computer science. Fifty-five years earlier, Ludwig Wittgenstein had already named the trap waiting for anyone who thinks a written rule settles its own application: "This was our paradox: no course of action could be determined by a rule, because any course of action can be made out to accord with the rule" (Philosophical Investigations §201, 1953). Saul Kripke's reading of the passage sharpens this into a skeptical challenge: nothing in a rule's text, and nothing in your past training on it, logically forces one continuation over any other of the infinitely many that "accord" with it (Kripke, Wittgenstein on Rules and Private Language, 1982). Computing built an entire discipline, formal semantics, on the bet that code was the one place this problem could finally be closed. The DAO is the place the bet came due: the reentrancy loop accorded perfectly with the contract's literal rules, and whether it violated the rule depended on an interpretation the bare text could not supply.
ข้อขัดแย้งนั้นคือคำถามเก่าแก่ที่สุดของปรัชญาภาษา เดินผ่านด่านศุลกากรมาพร้อมป้ายส่งของที่เขียนว่าวิทยาการคอมพิวเตอร์ (computer science) ห้าสิบห้าปีก่อนหน้านั้น Ludwig Wittgenstein ตั้งชื่อกับดักที่รอใครก็ตามที่เชื่อว่ากฎที่เขียนไว้ตัดสินการใช้งานของตัวเองได้ไว้แล้ว — "นี่คือปฏิทรรศน์ของเรา ไม่มีแนวทางปฏิบัติใดที่กฎจะกำหนดได้ เพราะแนวทางปฏิบัติใดก็ตามก็ทำให้ดูสอดคล้องกับกฎได้เสมอ" ("This was our paradox: no course of action could be determined by a rule, because any course of action can be made out to accord with the rule") (Philosophical Investigations §201, 1953) Saul Kripke อ่านข้อความนี้แล้วลับให้คมขึ้นเป็นข้อท้าทายเชิงสงสัยนิยม — ไม่มีอะไรในตัวบทของกฎ และไม่มีอะไรในการฝึกฝนที่ผ่านมาของคุณกับมัน บังคับทางตรรกะให้เลือกความต่อเนื่องแบบหนึ่งเหนืออีกแบบ จากความเป็นไปได้นับไม่ถ้วนที่ "สอดคล้อง (accord)" กับกฎเท่าๆ กัน (Kripke, Wittgenstein on Rules and Private Language, 1982) วงการคอมพิวเตอร์สร้างสาขาวิชาขึ้นมาทั้งสาขา คือความหมายเชิงรูปนัย (formal semantics) บนการพนันว่าโค้ดคือที่แห่งเดียวที่ปิดปัญหานี้ได้จริง The DAO คือวันที่การพนันนั้นถึงกำหนดจ่าย ลูปการเรียกซ้ำเข้าไปใหม่ (reentrancy) สอดคล้องกับกฎตามตัวอักษรของสัญญาอย่างสมบูรณ์ ส่วนคำถามว่ามันละเมิด กฎ หรือไม่ ขึ้นกับการตีความที่ตัวบทเปล่าๆ ให้ไม่ได้
Formal semantics offers two rival answers to "what does this program mean," and both were built to escape exactly Wittgenstein's problem by fixing meaning so completely that no ambiguity survives. Operational semantics, in the tradition Gordon Plotkin formalized in his 1981 Aarhus lecture notes "A Structural Approach to Operational Semantics" (Plotkin, DAIMI FN-19, Aarhus University, 1981), defines a program's meaning as the sequence of machine states it produces — meaning as a trace, checkable by simulation. Denotational semantics, which Christopher Strachey and Dana Scott built at Oxford's Programming Research Group, instead assigns each program a mathematical object directly, typically a function from inputs to outputs, and handles the hard case — a loop, a recursive call — by finding the least fixed point of that function over a structured space called a domain (Scott & Strachey, "Toward a Mathematical Semantics for Computer Languages," PRG-6, 1971). Both approaches genuinely succeed at their stated job: they make what happens fully determinate. Neither one touches Wittgenstein's actual question, which was never about the machine's next state — it was about whether the state the machine reaches is the one the rule was for. That gap is exactly where the Ethereum fork fell.
ความหมายเชิงรูปนัย (formal semantics) ทำสำเร็จตามที่ประกาศไว้ แต่ตอบคนละคำถามกับที่ปรัชญาตั้งไว้ มันเสนอคำตอบคู่แข่งกันสองแบบต่อคำถาม "โปรแกรมนี้มีความหมายว่าอะไร" และสร้างทั้งสองแบบขึ้นมาเพื่อหนีปัญหาของ Wittgenstein โดยตรง ด้วยการตรึงความหมายแน่นจนไม่มีความกำกวมเหลือรอด ความหมายเชิงปฏิบัติการ (operational semantics) ตามประเพณีที่ Gordon Plotkin ทำให้เป็นรูปนัยในเอกสารประกอบการบรรยายที่ Aarhus ปี 1981 เรื่อง "A Structural Approach to Operational Semantics" (Plotkin, DAIMI FN-19, Aarhus University, 1981) นิยามความหมายของโปรแกรมเป็นลำดับสถานะของเครื่องที่มันสร้างขึ้น — ความหมายในฐานะร่องรอย (trace) ที่ตรวจได้ด้วยการจำลอง ความหมายเชิงนัยชี้ (denotational semantics) ที่ Christopher Strachey กับ Dana Scott สร้างที่ Programming Research Group ของ Oxford ทำอีกทาง คือจับวัตถุทางคณิตศาสตร์ใส่ให้แต่ละโปรแกรมตรงๆ โดยมากเป็นฟังก์ชันจากอินพุตไปเอาต์พุต และรับมือกรณียาก — ลูป การเรียกฟังก์ชันตัวเอง — ด้วยการหาจุดตรึงน้อยที่สุด (fixed point) ของฟังก์ชันนั้นเหนือพื้นที่มีโครงสร้างที่เรียกว่าโดเมน (domain) (Scott & Strachey, "Toward a Mathematical Semantics for Computer Languages," PRG-6, 1971) ทั้งคู่ทำให้ สิ่งที่เกิดขึ้น ชัดเจนแน่นอนเต็มที่จริง แต่ไม่มีใครแตะคำถามของ Wittgenstein เลย คำถามนั้นไม่เคยเป็นเรื่องสถานะถัดไปของเครื่อง มันเป็นเรื่องว่าสถานะที่เครื่องไปถึงคือสถานะที่กฎมี ไว้เพื่อ หรือเปล่า ช่องว่างนั้นคือจุดที่การฟอร์ก Ethereum ตกลงไปพอดี
Protocols answer a different question about meaning: not what a message describes, but what it does. J. L. Austin's How to Do Things with Words — delivered as the William James Lectures at Harvard in 1955, published posthumously in 1962 after his death at 48 — named these performatives: utterances that are the act, not a report of it, valid only when "felicity conditions" hold, the right speaker, the right circumstance, the right procedure in the right order (SEP, "Speech Acts"). A commit does not describe a change to a repository; it is the change. A cryptographic signature does not report that you consented; producing it is the consenting. A TCP handshake does not describe an agreement to talk; completing it opens the channel. Protocol designers were enforcing felicity conditions mechanically — a malformed handshake simply fails, the way an insincere promise fails to bind — before Austin's vocabulary for it had even reached computing.
โพรโทคอลตอบคำถามคนละข้อเรื่องความหมาย ไม่ใช่ว่าข้อความบรรยายอะไร แต่ว่ามันทำอะไร J. L. Austin ใน How to Do Things with Words — บรรยายในชุด William James Lectures ที่ Harvard ปี 1955 พิมพ์ในปี 1962 หลังเขาเสียชีวิตด้วยวัย 48 ปี — เรียกสิ่งเหล่านี้ว่าประพจน์เชิงกระทำ (performative) ถ้อยแถลงที่ตัวมันคือการกระทำ ไม่ใช่รายงานการกระทำ และใช้ได้ต่อเมื่อ "เงื่อนไขความสำเร็จของวัจนกรรม (felicity condition)" เป็นจริง คือผู้พูดถูกคน สถานการณ์ถูกจังหวะ ขั้นตอนถูกลำดับ (SEP, "Speech Acts") การ commit ไม่ได้บรรยายการเปลี่ยนแปลงในที่เก็บ (repository) มันคือการเปลี่ยนแปลงนั้น ลายเซ็นเข้ารหัส (cryptographic signature) ไม่ได้รายงานว่าคุณยินยอม การสร้างมันขึ้นมาคือการยินยอม การจับมือ TCP (TCP handshake) ไม่ได้บรรยายข้อตกลงที่จะคุยกัน การทำให้มันสำเร็จคือการเปิดช่องสัญญาณ ผู้ออกแบบโพรโทคอลบังคับใช้เงื่อนไขความสำเร็จของวัจนกรรมด้วยกลไกมาก่อนที่คำศัพท์ของ Austin จะเดินทางมาถึงวงการคอมพิวเตอร์ด้วยซ้ำ — การจับมือที่ผิดรูปแบบก็ล้มเหลวไปเฉยๆ แบบเดียวกับคำสัญญาที่ไม่จริงใจล้มเหลวในการผูกมัด
Meaning at the level of whole sentences split into two research programs computing has now run as a fifty-year experiment. Richard Montague's "The Proper Treatment of Quantification in Ordinary English" (1973, universally cited as PTQ) tried to give English the compositional rigor Frege had given arithmetic: every syntactic rule paired with a semantic rule, a sentence's meaning built strictly from its parts via intensional logic (SEP, "Montague Semantics"). Its rival needed no logical form at all. J. R. Firth's 1957 line — a word is known "by the company it keeps" — built on Zellig Harris's distributional hypothesis to found distributional semantics: a word's meaning just is the statistical shape of its neighboring words. Tomáš Mikolov and colleagues made that idea computationally cheap in 2013 with word2vec, and every large language model since has inherited the bet whole (Mikolov et al., "Efficient Estimation of Word Representations in Vector Space," arXiv:1301.3781, 2013). For four decades computing funded Montague's structure-first program; the last decade switched almost entirely to Firth's context-first one — and the switch produced fluent machines built on a theory of meaning with no place in it for a proposition.
ความหมายระดับประโยคทั้งประโยคแตกเป็นสองสายโปรแกรมวิจัย และวงการคอมพิวเตอร์ทดลองทั้งสองสายมาแล้วห้าสิบปี งาน "The Proper Treatment of Quantification in Ordinary English" ของ Richard Montague (1973 ที่ทุกคนอ้างในชื่อย่อ PTQ) พยายามมอบความเข้มงวดเชิงประกอบ (compositionality) ให้ภาษาอังกฤษ แบบที่ Frege มอบให้เลขคณิต — ทุกกฎวากยสัมพันธ์จับคู่กับกฎความหมายหนึ่งข้อ ความหมายของประโยคก่อขึ้นจากส่วนประกอบอย่างเคร่งครัดผ่านตรรกะเชิงเจตนา (intensional logic) (SEP, "Montague Semantics") คู่แข่งของมันไม่ต้องใช้รูปแบบตรรกะ (logical form) เลย ประโยคของ J. R. Firth ปี 1957 ที่ว่าเรารู้จักคำหนึ่ง "จากพวกที่มันคบหา" ต่อยอดสมมติฐานเชิงการกระจาย (distributional hypothesis) ของ Zellig Harris จนตั้งเป็นความหมายเชิงการกระจาย (distributional semantics) — ความหมายของคำก็คือรูปทรงเชิงสถิติของคำข้างเคียง เท่านั้นเอง Tomáš Mikolov และคณะทำให้ไอเดียนี้คำนวณได้ในราคาถูกเมื่อปี 2013 ด้วย word2vec และโมเดลภาษาขนาดใหญ่ (large language model) ทุกตัวนับจากนั้นรับพนันก้อนนี้ไว้เต็มๆ (Mikolov et al., "Efficient Estimation of Word Representations in Vector Space," arXiv:1301.3781, 2013) สี่ทศวรรษ เงินวิจัยไหลไปทางโครงสร้างมาก่อนของ Montague ทศวรรษล่าสุดย้ายไปทางบริบทมาก่อนของ Firth เกือบทั้งหมด และการย้ายครั้งนั้นให้เครื่องจักรที่พูดคล่อง บนทฤษฎีความหมายที่ไม่เหลือที่ว่างให้ประพจน์ (proposition) เลยสักนิด
Which is the test an LLM actually runs on philosophy of language, and the verdict splits. Wittgenstein's later view — "the meaning of a word is its use in the language" (Philosophical Investigations §43) — looks vindicated by a model that has never touched a referent and still produces sentences no fluent speaker would flag as wrong. But Stevan Harnad named the missing piece in 1990, before any of this was built: a system that manipulates symbols by their shapes and their relations to other symbols alone, never anchored to what the symbols are about, is stuck trying to learn Chinese from a Chinese–Chinese dictionary — perfect internal coherence, zero contact with the world (Harnad, "The Symbol Grounding Problem," Physica D 42, 1990). The large language model is the best evidence a pure use-theory of meaning has ever been handed, and the clearest working model of exactly what grounding critics warned an ungrounded use-theory would look like.
โมเดลภาษาขนาดใหญ่ (LLM) คือบททดสอบจริงที่ปรัชญาภาษาต้องเจอ และคำตัดสินแตกเป็นสองทาง มุมมองยุคหลังของ Wittgenstein — "ความหมายของคำหนึ่งคือการใช้งานของมันในภาษา" (Philosophical Investigations §43) — ดูได้รับการยืนยัน เพราะโมเดลที่ไม่เคยแตะสิ่งอ้างอิง (referent) สักครั้งยังผลิตประโยคที่ไม่มีเจ้าของภาษาคนไหนทักว่าผิด แต่ Stevan Harnad ตั้งชื่อชิ้นส่วนที่ขาดหายไปตั้งแต่ปี 1990 ก่อนของพวกนี้ถูกสร้างขึ้นด้วยซ้ำ — ระบบที่ขยับสัญลักษณ์ด้วยรูปร่างของมันและความสัมพันธ์กับสัญลักษณ์อื่นเท่านั้น ไม่เคยยึดโยงกับสิ่งที่สัญลักษณ์พูดถึง ก็เหมือนติดอยู่กับการเรียนภาษาจีนจากพจนานุกรมจีน–จีน สอดคล้องกันในตัวเองอย่างสมบูรณ์ ไม่แตะโลกจริงเลยสักนิด (Harnad, "The Symbol Grounding Problem," Physica D 42, 1990) โมเดลภาษาขนาดใหญ่จึงเป็นทั้งหลักฐานที่ดีที่สุดที่ทฤษฎีความหมายจากการใช้ (use theory of meaning) แบบบริสุทธิ์เคยได้รับ และเป็นแบบจำลองใช้งานได้ที่ชัดที่สุดของสิ่งที่นักวิจารณ์เรื่องการยึดโยง (grounding) เตือนไว้ว่าทฤษฎีความหมายจากการใช้ที่ไม่ยึดโยงจะหน้าตาเป็นอย่างไร
Connections
เชื่อมโยง
Chapter 01 supplies the logical apparatus — Frege's quantifiers — that both Montague and denotational semantics depend on. Chapter 02 returns to the type/token question this chapter only brushes: is a smart contract's deployed bytecode the same thing as its Solidity source? Chapter 04 runs the same grounding argument through the Chinese Room, and chapter 13 tests it against machines trained on nothing but text. Chapter 12 shows what happens when "the code says what it means" is pushed furthest — a proof assistant, where the rules really do settle every case.
บทที่ 01 ให้กลไกเชิงตรรกะที่ทั้ง Montague และความหมายเชิงนัยชี้ (denotational semantics) พึ่งพา — ตัวบ่งปริมาณ (quantifier) ของ Frege บทที่ 02 กลับไปหาปัญหาชนิด/ตัวอย่างจริง (type/token) ที่บทนี้แตะเพียงผิวเผิน — bytecode ที่ deploy จริงของ smart contract เป็นสิ่งเดียวกับซอร์ส Solidity ของมันหรือไม่ บทที่ 04 เดินข้อโต้แย้งเรื่องการยึดโยง (grounding) ชุดเดียวกันนี้ผ่านห้องจีน (Chinese Room) บทที่ 13 เอามันไปทดสอบกับเครื่องจักรที่ฝึกจากข้อความล้วนๆ บทที่ 12 แสดงปลายทางของ "โค้ดบอกความหมายของตัวมันเอง" เมื่อถูกผลักไปจนสุด — proof assistant ที่กฎตัดสินทุกกรณีได้จริง
Open questions
คำถามที่ยังเปิดอยู่
If formal semantics can specify a program's behavior completely and still leave open what the program was for, has it solved Wittgenstein's problem, or only changed which question gets answered? Did distributional semantics win because it is a better theory of meaning, or because it is the theory computers could finally afford to run at scale? And if an ungrounded system passes every behavioral test of understanding, what work is "grounding" still doing, beyond naming a discomfort?
ถ้าความหมายเชิงรูปนัย (formal semantics) ระบุพฤติกรรมของโปรแกรมได้ครบถ้วน แต่ยังทิ้งคำถามค้างไว้ว่าโปรแกรมนั้นมี ไว้เพื่อ อะไร มันแก้ปัญหาของ Wittgenstein ได้จริง หรือแค่เปลี่ยนคำถามที่ตอบ ความหมายเชิงการกระจาย (distributional semantics) ชนะเพราะเป็นทฤษฎีความหมายที่ดีกว่า หรือเพราะเป็นทฤษฎีที่คอมพิวเตอร์รันไหวในสเกลใหญ่เสียที และถ้าระบบที่ไม่ยึดโยงผ่านบททดสอบเชิงพฤติกรรมของความเข้าใจได้ทุกข้อ "การยึดโยง (grounding)" ยังทำงานอะไรอยู่ นอกจากตั้งชื่อให้ความรู้สึกไม่สบายใจ
Go deeper
อ่านต่อ
- Ludwig Wittgenstein, Philosophical Investigations, trans. G. E. M. Anscombe, Blackwell, 1953 — §§138–242 is the rule-following argument this chapter borrows.
- Richard Montague, "The Proper Treatment of Quantification in Ordinary English," in Approaches to Natural Language, ed. Hintikka, Moravcsik & Suppes, Reidel, 1973, pp. 221–242 (PTQ), read against Tomáš Mikolov, Kai Chen, Greg Corrado & Jeffrey Dean, "Efficient Estimation of Word Representations in Vector Space," arXiv:1301.3781, 2013 — the two theories of meaning computing actually tried, forty years apart.
- Stanford Encyclopedia of Philosophy, "Montague Semantics" — the standing account of where formal and natural-language semantics meet.
- Ludwig Wittgenstein, Philosophical Investigations, trans. G. E. M. Anscombe, Blackwell, 1953 — §§138–242 คือข้อโต้แย้งเรื่องการทำตามกฎ (rule-following) ที่บทนี้หยิบยืมมาใช้
- Richard Montague, "The Proper Treatment of Quantification in Ordinary English," in Approaches to Natural Language, ed. Hintikka, Moravcsik & Suppes, Reidel, 1973, pp. 221–242 (PTQ), read against Tomáš Mikolov, Kai Chen, Greg Corrado & Jeffrey Dean, "Efficient Estimation of Word Representations in Vector Space," arXiv:1301.3781, 2013 — สองทฤษฎีความหมายที่วงการคอมพิวเตอร์ลองใช้จริง ห่างกันสี่สิบปี
- Stanford Encyclopedia of Philosophy, "Montague Semantics" — บันทึกหลักเรื่องจุดที่ความหมายเชิงรูปนัยกับความหมายภาษาธรรมชาติมาบรรจบกัน