บทความ

แฮสเคลล์ เคอร์รี: บิดาแห่งตรรกศาสตร์เชิงผสมและที่มาของชื่อภาษาโปรแกรม Haskell

บทความโดย

83
แชร์บทความนี้

แฮสเคลล์ เคอร์รี: บิดาแห่งตรรกศาสตร์เชิงผสมและที่มาของชื่อภาษาโปรแกรม Haskell

ในวงการภาษาโปรแกรมเชิงฟังก์ชัน (functional programming) สมัยใหม่ มีชื่อนักคณิตศาสตร์ท่านหนึ่งที่ถูกนำไปตั้งเป็นชื่อภาษาโปรแกรมชื่อดังอย่าง Haskell นั่นคือ แฮสเคลล์ บรูกส์ เคอร์รี (Haskell Brooks Curry) นักตรรกวิทยาและนักคณิตศาสตร์ชาวอเมริกัน ผู้เสียชีวิตเมื่อวันที่ 1 กันยายน ค.ศ. 1982 ที่เมืองสเตทคอลเลจ รัฐเพนซิลเวเนีย (เป็นวันเดียวกับที่ลุดวิก บีเบอร์บาคเสียชีวิตในเยอรมนี)

ชีวิตช่วงต้นและเส้นทางวิชาการ

เคอร์รีเกิดเมื่อวันที่ 12 กันยายน ค.ศ. 1900 ที่เมืองมิลลิส รัฐแมสซาชูเซตส์ บิดาของเขา ซามูเอล ไซลัส เคอร์รี เป็นอธิการบดีของ School of Expression ในบอสตัน ซึ่งภายหลังกลายเป็นวิทยาลัยเคอร์รี (Curry College) เคอร์รีเข้าศึกษาที่มหาวิทยาลัยฮาร์วาร์ดโดยตั้งใจจะเรียนแพทย์ แต่หลังจากได้ลองเรียนวิชาคณิตศาสตร์ตามคำแนะนำของอาจารย์ที่ปรึกษาในปีแรก เขาก็ทำผลงานได้ดีมากจนเปลี่ยนเส้นทางมาศึกษาคณิตศาสตร์แทน

ในช่วงสงครามโลกครั้งที่ 1 เคอร์รีสมัครเข้าร่วมกองทัพเป็นสมาชิกของหน่วยฝึกนักศึกษาในกองทัพ หลังสงครามเขากลับมาศึกษาต่อและได้รับปริญญาเอกจากมหาวิทยาลัยเกิททิงเงิน ประเทศเยอรมนี ภายใต้การดูแลของดาวิด ฮิลแบร์ต (David Hilbert) นักคณิตศาสตร์ระดับตำนาน เคอร์รีทำงานเป็นศาสตราจารย์ที่มหาวิทยาลัยแห่งรัฐเพนซิลเวเนีย (Pennsylvania State University) เป็นเวลานาน และภายหลังยังดำรงตำแหน่งที่มหาวิทยาลัยอัมสเตอร์ดัมด้วย

ตรรกศาสตร์เชิงผสม: รากฐานของการคำนวณเชิงฟังก์ชัน

ผลงานที่สำคัญที่สุดของเคอร์รีคือการพัฒนาสาขาที่เรียกว่า ตรรกศาสตร์เชิงผสม (combinatory logic) ซึ่งเดิมมีแนวคิดเริ่มต้นมาจากงานของโมเสส เชินฟินเคิล (Moses Schönfinkel) แต่เคอร์รีเป็นผู้พัฒนาต่อยอดจนกลายเป็นระบบที่สมบูรณ์และมีอิทธิพลอย่างกว้างขวาง ตรรกศาสตร์เชิงผสมเป็นระบบทางคณิตศาสตร์ที่ใช้ “ตัวรวม” (combinators) แทนตัวแปรในการนิยามฟังก์ชัน โดยไม่จำเป็นต้องอ้างอิงถึงตัวแปรอย่างชัดเจนเลย

แนวคิดนี้เดิมทีมีเป้าหมายเพื่อเป็นรากฐานของระบบตรรกศาสตร์เชิงสัญลักษณ์แบบดั้งเดิม แต่ระบบต้นฉบับกลับพบว่ามีความขัดแย้งในตัวเอง (inconsistent) อย่างไรก็ตาม ส่วนที่ไม่ขัดแย้งของระบบนี้ในเวลาต่อมาได้กลายเป็นต้นแบบสำคัญของภาษาโปรแกรมเชิงฟังก์ชัน (functional programming languages) ซึ่งเป็นภาษาที่ยอมให้โปรแกรมสามารถนำไปประยุกต์ใช้และเปลี่ยนแปลงโปรแกรมอื่นๆ ได้ ระบบนี้มีความเทียบเท่าโดยพื้นฐานกับแคลคูลัสแลมบ์ดา (lambda calculus) ของอลอนโซ เชิร์ช (Alonzo Church)

การเชื่อมโยงตรรกะกับคอมพิวเตอร์: Curry-Howard Correspondence

หนึ่งในผลงานที่มีอิทธิพลอย่างลึกซึ้งต่อวิทยาการคอมพิวเตอร์สมัยใหม่คือแนวคิดที่ต่อมารู้จักกันในชื่อ ความสัมพันธ์เคอร์รี-ฮาวเวิร์ด (Curry–Howard correspondence) ซึ่งชี้ให้เห็นความเชื่อมโยงเชิงลึกระหว่าง “ข้อพิสูจน์ทางตรรกศาสตร์” กับ “โปรแกรมคอมพิวเตอร์” กล่าวคือ ประพจน์ทางตรรกะสามารถมองเป็นชนิดข้อมูล (types) ในภาษาโปรแกรม และการพิสูจน์ประพจน์นั้นก็เทียบเท่ากับการเขียนโปรแกรมที่มีชนิดข้อมูลตรงกัน แนวคิดนี้กลายเป็นรากฐานสำคัญของทฤษฎีชนิดข้อมูล (type theory) ในวิทยาการคอมพิวเตอร์ และมีอิทธิพลต่อการออกแบบภาษาโปรแกรมและระบบพิสูจน์ทฤษฎีบทอัตโนมัติในปัจจุบัน

นอกจากนี้ เคอร์รียังเป็นที่รู้จักจากแนวคิด “เคอร์รีอิง” (currying) ซึ่งเป็นเทคนิคการแปลงฟังก์ชันที่รับหลายอาร์กิวเมนต์ให้กลายเป็นลำดับของฟังก์ชันที่รับอาร์กิวเมนต์ทีละตัว เทคนิคนี้ถูกใช้กันอย่างแพร่หลายในภาษาโปรแกรมเชิงฟังก์ชันสมัยใหม่ และแม้แนวคิดนี้จะไม่ได้เป็นของเคอร์รีทั้งหมด แต่ก็ถูกตั้งชื่อเพื่อเป็นเกียรติแก่เขา

มรดกที่ยังคงมีชีวิตในชื่อภาษาโปรแกรม

ด้วยผลงานอันโดดเด่นด้านตรรกศาสตร์เชิงผสมที่เป็นรากฐานสำคัญของภาษาโปรแกรมเชิงฟังก์ชัน ชื่อของเคอร์รีจึงถูกนำไปตั้งเป็นชื่อภาษาโปรแกรมถึงสามภาษา ได้แก่ ภาษา Haskell ซึ่งเป็นภาษาโปรแกรมเชิงฟังก์ชันบริสุทธิ์ที่มีชื่อเสียงและยังคงใช้งานกันอย่างแพร่หลายในปัจจุบัน ภาษา Brook และภาษา Curry เอง ซึ่งเป็นเครื่องพิสูจน์ถึงอิทธิพลอันลึกซึ้งของงานวิจัยของเขาที่มีต่อวงการวิทยาการคอมพิวเตอร์

เคอร์รีเสียชีวิตเมื่อวันที่ 1 กันยายน ค.ศ. 1982 ที่เมืองสเตทคอลเลจ ด้วยวัย 81 ปี เขาทิ้งเอกสารทางวิชาการไว้ที่ห้องสมุดมหาวิทยาลัยแห่งรัฐเพนซิลเวเนีย และมรดกทางความคิดของเขายังคงมีชีวิตอยู่ในทุกครั้งที่โปรแกรมเมอร์เขียนโค้ดด้วยภาษาโปรแกรมเชิงฟังก์ชันในปัจจุบัน