อ่าน 10 นาที
ศิลปะแห่งการเขียนโปรแกรมคอมพิวเตอร์
The Art of Computer Programming ( TAOCP ) เป็น หนังสือวิชาการหลายเล่ม(เล่ม 1–7) ที่เขียนโดยนักวิทยาศาสตร์คอมพิวเตอร์ Donald Knuthซึ่งนำเสนอ อัลกอริทึม...
ศิลปะแห่งการเขียนโปรแกรมคอมพิวเตอร์
ศิลปะแห่งการเขียนโปรแกรมคอมพิวเตอร์ เล่ม 1: อัลกอริทึมพื้นฐาน | |
| ผู้เขียน | โดนัลด์ คนูธ |
|---|---|
| ภาษา | ภาษาอังกฤษ |
| ประเภท | หนังสือวิชาการที่ไม่ใช่นิยาย |
| สำนักพิมพ์ | แอดดิสัน-เวสลีย์ |
| วันที่เผยแพร่ | ปี 1968–ปัจจุบัน |
| สถานที่ตีพิมพ์ | สหรัฐอเมริกา |
| ประเภทสื่อ | ฉบับพิมพ์ ( ปกแข็ง ) |
| ISBN | 0-201-03801-3 |
| ระบบดิวอี้ | 519 |
| คลาส LC | QA76.75 |

The Art of Computer Programming ( TAOCP ) เป็น หนังสือวิชาการหลายเล่ม(เล่ม 1–7) ที่เขียนโดยนักวิทยาศาสตร์คอมพิวเตอร์ Donald Knuthซึ่งนำเสนอ อัลกอริทึม การเขียนโปรแกรมและการวิเคราะห์อัลกอริทึมเหล่านั้นณ ปี 2026 ประกอบด้วยเล่มที่ตีพิมพ์แล้ว 1, 2, 3, 4A และ 4B โดยคาดว่าจะมีการตีพิมพ์เล่มเพิ่มเติมในอนาคต เล่ม 1–5 มีจุดประสงค์เพื่อแสดงถึงแก่นหลักของการเขียนโปรแกรมคอมพิวเตอร์สำหรับเครื่องจักรแบบลำดับ ส่วนหัวข้อในเล่ม 6 และ 7 นั้นมีความสำคัญแต่มีความเฉพาะทางมากกว่า [ 1 ]
เมื่อ Knuth เริ่มโครงการในปี 1962 เดิมทีเขาตั้งใจจะให้เป็นหนังสือเล่มเดียวที่มี 12 บท สามเล่มแรกจากชุดที่คาดว่าจะมีทั้งหมด 7 เล่ม ได้รับการตีพิมพ์ในปี 1968, 1969 และ 1973 การทำงานอย่างจริงจังในเล่มที่ 4 เริ่มต้นในปี 1973 แต่ถูกระงับในปี 1977 เพื่อทำงานเกี่ยวกับการจัดพิมพ์ที่เกิดจากฉบับพิมพ์ครั้งที่สองของเล่มที่ 2 การเขียนต้นฉบับสุดท้ายของเล่ม 4A เริ่มต้นด้วยลายมือในปี 2001 และฉบับก่อนเล่มแรกทางออนไลน์ เล่ม 2A ปรากฏขึ้นในภายหลังในปี 2001 [ 2 ]เล่มที่ 4 ฉบับพิมพ์ครั้งแรกปรากฏในรูปแบบปกอ่อนในชื่อเล่มที่ 2 ในปี 2005 เล่ม 4A ฉบับปกแข็ง ซึ่งรวมเล่ม 4 เล่มที่ 0–4 ได้รับการตีพิมพ์ในปี 2011 เล่มที่ 4 เล่มที่ 6 (“Satisfiability”) ได้รับการเผยแพร่ในเดือนธันวาคม 2015 เล่มที่ 4 ตอนที่ 5 ("Mathematical Preliminaries Redux; Backtracking; Dancing Links") วางจำหน่ายในเดือนพฤศจิกายน 2019
เล่ม 4B ประกอบด้วยเนื้อหาที่พัฒนามาจากเล่ม 5 และ 6 [ 3 ]ต้นฉบับถูกส่งไปยังสำนักพิมพ์เมื่อวันที่ 1 สิงหาคม 2022 และเล่มนี้ได้รับการตีพิมพ์ในเดือนกันยายน 2022 [ 4 ]เล่ม 7 ("ความพึงพอใจภายใต้ข้อจำกัด") ซึ่งวางแผนไว้สำหรับเล่ม 4C เป็นหัวข้อของการบรรยายของ Knuth เมื่อวันที่ 3 สิงหาคม 2022 [ 5 ]และได้รับการตีพิมพ์เมื่อวันที่ 5 กุมภาพันธ์ 2025 [ 6 ]
ประวัติศาสตร์

หลังจากได้รับ ทุนการศึกษา Westinghouse Talent Searchแล้ว Knuth ได้เข้าเรียนที่ Case Institute of Technology (ปัจจุบันคือCase Western Reserve University ) ซึ่งผลการเรียนของเขานั้นโดดเด่นมากจนคณะอาจารย์ลงมติมอบปริญญาโทวิทยาศาสตร์ ให้แก่เขา หลังจากสำเร็จการศึกษาระดับปริญญาตรีในช่วงปิดเทอมฤดูร้อน Knuth ได้รับการว่าจ้างจากBurroughs Corporationให้เขียนคอมไพเลอร์ โดยได้รับค่าตอบแทนในช่วงฤดูร้อนมากกว่าที่ศาสตราจารย์เต็มเวลาได้รับตลอดทั้งปี[ 7 ]ความสำเร็จดังกล่าวทำให้ Knuth กลายเป็นหัวข้อสนทนาในหมู่นักศึกษาภาควิชาคณิตศาสตร์ ซึ่งรวมถึงRichard S. Vargaด้วย
ในเดือนมกราคม พ.ศ. 2505 ขณะที่เขาเป็นนักศึกษาปริญญาโทในภาควิชาคณิตศาสตร์ที่ Caltech นั้น Knuth ได้รับการติดต่อจากAddison-Wesleyให้เขียนหนังสือเกี่ยวกับการออกแบบคอมไพเลอร์ และเขาได้เสนอขอบเขตที่กว้างขึ้น เขาคิดรายชื่อชื่อบทต่างๆ ได้ถึงสิบสองบทในวันเดียวกันนั้น ในช่วงฤดูร้อนของปี พ.ศ. 2505 เขาทำงานเกี่ยวกับคอม ไพเลอร์ FORTRANสำหรับUNIVACโดยคิดว่าเขาได้ "ขายวิญญาณให้กับปีศาจ" เพื่อพัฒนาคอมไพเลอร์ FORTRAN [ 8 ] : 15 หลังจาก การพัฒนา ALGOLร่วมกับ Burroughs เขาทำหน้าที่เป็นที่ปรึกษาให้กับ Burroughs ตลอดช่วงปี พ.ศ. 2503 ถึง พ.ศ. 2511 ในขณะที่เขียนเล่มที่ 1 "Fundamental Algorithms"
ในช่วงเวลานั้น เขายังได้พัฒนาการวิเคราะห์ทางคณิตศาสตร์ของการตรวจสอบเชิงเส้นซึ่งทำให้เขามั่นใจที่จะนำเสนอเนื้อหาด้วยวิธีการเชิงปริมาณ หลังจากได้รับปริญญาเอกในเดือนมิถุนายน พ.ศ. 2506 เขาเริ่มทำงานเขียนต้นฉบับ ซึ่งเขาได้เขียนฉบับร่างแรกเสร็จในเดือนมิถุนายน พ.ศ. 25083,000หน้าที่เขียนด้วยลายมือ[ 9 ]เขาคิดว่าประมาณห้าหน้าที่เขียนด้วยลายมือจะเทียบเท่ากับหนึ่งหน้าที่พิมพ์ แต่สำนักพิมพ์ของเขากลับบอกว่าประมาณ1+เอกสารที่เขียนด้วยลายมือ 1/2หน้า ถูกแปลงเป็นเอกสารที่พิมพ์แล้ว 1 หน้า ซึ่งหมายความว่าเขามีเอกสารที่เขียนด้วยลายมือประมาณ 1/2หน้าเอกสารที่พิมพ์แล้วมีจำนวน 2,000หน้า ซึ่งใกล้เคียงกับขนาดของหนังสือสามเล่มแรกที่ตีพิมพ์
เล่มแรกของ "ศิลปะแห่งการเขียนโปรแกรมคอมพิวเตอร์" ชื่อ "อัลกอริธึมพื้นฐาน" ใช้เวลาในการเขียนถึงห้าปี ระหว่างปี 1963 ถึง 1968 ขณะที่เขาทำงานอยู่ที่ทั้ง Caltech และ Burroughs
คำอุทิศของ Knuth ในเล่มที่ 1 มีดังนี้:
หนังสือชุดนี้อุทิศให้แก่คอมพิวเตอร์ Type 650ที่เคยติดตั้งอยู่ที่สถาบันเทคโนโลยีเคสเพื่อเป็นการระลึกถึงค่ำคืนอันแสนสุขมากมาย[ a ]
ในคำนำ เขาขอบคุณภรรยาของเขา จิลล์ ก่อน จากนั้นขอบคุณเบอร์โรห์สสำหรับการใช้คอมพิวเตอร์ B220 และ B5500 ในการทดสอบโปรแกรมส่วนใหญ่ และขอบคุณ Caltech, มูลนิธิวิทยาศาสตร์แห่งชาติ และสำนักงานวิจัยกองทัพเรือ[ 10 ] : xii
ส่วนที่ 2.5 ของ "อัลกอริทึมพื้นฐาน" เกี่ยวกับการจัดสรรพื้นที่จัดเก็บแบบไดนามิกบางส่วนของส่วนนี้ถูกนำไปใช้ในแนวทางการจัดการหน่วยความจำของ Burroughs Knuth อ้างว่าได้รับเครดิตสำหรับ: "วิธีการ 'boundary-tag' ที่แนะนำในส่วนที่ 2.5 ได้รับการออกแบบโดยผู้เขียนในปี 1962 เพื่อใช้ในโปรแกรมควบคุมสำหรับคอมพิวเตอร์ B5000" [ 10 ] : 460
Knuth ได้รับการสนับสนุนจาก Richard S. Varga ซึ่งเป็นที่ปรึกษาทางวิทยาศาสตร์ของสำนักพิมพ์ Varga กำลังเยี่ยมชมOlga Taussky-ToddและJohn Toddที่Caltechด้วยการรับรองอย่างกระตือรือร้นของ Varga สำนักพิมพ์จึงยอมรับแผนการขยายของ Knuth ในเวอร์ชันที่ขยายแล้ว หนังสือจะได้รับการตีพิมพ์เป็นเจ็ดเล่ม แต่ละเล่มมีเพียงหนึ่งหรือสองบท[ 11 ]เนื่องจากการเติบโตของบทที่ 7 ซึ่งมีน้อยกว่า 100 หน้าของต้นฉบับปี 1965 ตามเล่ม 4A หน้า vi แผนสำหรับเล่ม 4 จึงได้ขยายออกไปเพื่อรวมเล่ม 4A, 4B, 4C, 4D และอาจจะมีมากกว่านั้น
ในปี 1976 คนูธได้จัดทำฉบับพิมพ์ครั้งที่สองของเล่มที่ 2 ซึ่งจำเป็นต้องจัดพิมพ์ใหม่ แต่รูปแบบตัวอักษรที่ใช้ในฉบับพิมพ์ครั้งแรก (เรียกว่าhot type ) นั้นหาได้ยากแล้ว ในปี 1977 เขาจึงตัดสินใจใช้เวลาสร้างรูปแบบตัวอักษรที่เหมาะสมกว่า แปดปีต่อมา เขากลับมาพร้อมกับT E Xซึ่งปัจจุบันใช้สำหรับทุกเล่ม
ลักษณะเด่นอีกประการหนึ่งของหนังสือชุดนี้คือ ระดับความยากของแบบฝึกหัดที่แตกต่างกัน โดยมีการให้คะแนนเป็นตัวเลขตั้งแต่ 0 ถึง 50 ซึ่ง 0 หมายถึงง่ายมาก และ 50 หมายถึงยังเป็นคำถามที่เปิดกว้างในการวิจัยร่วมสมัย
มีรางวัลสำหรับผู้ที่ค้นพบข้อผิดพลาด
การเสนอเช็ครางวัลที่เรียกว่า " เช็ครางวัลคนุธ " มูลค่า "หนึ่งดอลลาร์ใน ระบบ เลข ฐานสิบหก" (100 ดอลลาร์ใน ระบบเลข ฐานสิบหก เท่ากับ 2.56 ดอลลาร์ใน ระบบเลขฐานสิบ) สำหรับข้อผิดพลาดใด ๆ ที่พบ และการแก้ไขข้อผิดพลาดเหล่านั้นในการพิมพ์ครั้งต่อ ๆ ไป ได้มีส่วนช่วยให้ผลงานชิ้นนี้มีความสมบูรณ์และยังคงน่าเชื่อถืออยู่ แม้จะตีพิมพ์ครั้งแรกมานานแล้วก็ตาม
ภาษาแอสเซมบลีในหนังสือ
ตัวอย่างทั้งหมดในหนังสือใช้ภาษาสมมติที่เรียกว่า " ภาษาแอสเซมบลี MIX " (MIXAL) ซึ่งทำงานบน "คอมพิวเตอร์ในจินตนาการที่เรียกว่า 'MIX'" ซึ่งพัฒนาขึ้นเพื่อให้ทันกับคอมพิวเตอร์อื่นๆ ในช่วงทศวรรษ 1960 และ 1970 แม้ว่า Knuth ตั้งใจให้ MIX ผ่านการทดสอบของกาลเวลา แต่เขาได้กล่าวไว้ในฉบับที่สามของเล่มแรกว่ามัน "ล้าสมัยไปแล้ว" [ 12 ]ในช่วงทศวรรษ 1990 Knuth เริ่มพัฒนาMMIXซึ่งเป็นคอมพิวเตอร์สมัยใหม่ ที่ใช้ RISCซึ่ง Knuth อธิบายว่าเป็น "คอมพิวเตอร์ RISC สำหรับสหัสวรรษใหม่" [ 13 ]การเปลี่ยนจาก MIX เป็น MMIX เป็นโครงการขนาดใหญ่ที่ใช้เวลาหลายปี ซึ่ง Knuth ได้ขอความช่วยเหลือจากอาสาสมัคร[ 12 ] MMIX จะวางจำหน่ายเวอร์ชันเสถียรในปี 2011 [ 13 ] Knuth พิจารณาว่าการใช้ภาษาแอสเซมบลีมีความจำเป็นสำหรับความเร็วและการใช้หน่วยความจำของอัลกอริทึม
เกี่ยวกับที่มาของ MIX นั้น Knuth กล่าวว่ามันคล้ายกับคอมพิวเตอร์ใดๆ ที่มีอยู่แล้วในขณะนั้น “แต่บางทีอาจจะดีกว่า” [ 12 ]ชื่อMIXสามารถแสดงเป็น 1009 ในเลขโรมันได้ นอกจากนี้ Knuth ยังอธิบายว่าที่มาของ 1009 มาจากการนำคอมพิวเตอร์จริง 16 เครื่องที่เขาเห็นว่าคล้ายกับ MIX และสามารถจำลอง MIX ได้อย่างง่ายดาย เขานำส่วนที่เป็นตัวเลขของหมายเลขรุ่นของคอมพิวเตอร์เหล่านั้นมาหาค่าเฉลี่ยโดยให้น้ำหนักเท่ากัน:
⌊(360 + 650 + 709 + 7070 + U3 + SS80 + 1107 + 1604 + G20 + B220 + S2000 + 920 + 601 + H800 + PDP-4 + II) / 16⌋ = 1009
ซอฟต์แวร์เช่นGNU MIX Development Kit (MDK) มีอยู่เพื่อจำลองสถาปัตยกรรม MIX [ 14 ]
การตอบสนองเชิงวิพากษ์
Knuth ได้รับรางวัลTuring Award ประจำปี 1974 "สำหรับผลงานสำคัญของเขาในการวิเคราะห์อัลกอริทึม […] และโดยเฉพาะอย่างยิ่งสำหรับผลงานของเขาใน 'ศิลปะแห่งการเขียนโปรแกรมคอมพิวเตอร์' ผ่านหนังสือที่มีชื่อเสียงของเขาในชุดต่อเนื่องที่มีชื่อเดียวกันนี้" [ 15 ] American Scientistได้รวมผลงานนี้ไว้ใน "หนังสือประมาณ 100 เล่มที่กำหนดรูปแบบวิทยาศาสตร์ในศตวรรษ" ซึ่งหมายถึงศตวรรษที่ 20 [ 16 ]หน้าปกของฉบับที่สามของเล่มที่ 1 อ้าง คำพูดของ Bill Gatesว่า "ถ้าคุณคิดว่าคุณเป็นโปรแกรมเมอร์ที่ดีจริงๆ… อ่าน (Knuth) Art of Computer Programming … คุณควรส่งประวัติย่อมาให้ผมแน่นอนถ้าคุณอ่านจบทั้งเล่ม" [ 17 ] The New York Timesเรียกมันว่า "ตำราที่กำหนดมาตรฐานของวิชาชีพ" [ 18 ]
เล่ม
สมบูรณ์
- เล่ม 1 – อัลกอริทึมพื้นฐาน
- บทที่ 1 – แนวคิดพื้นฐาน[ 19 ]
- บทที่ 2 – โครงสร้าง ข้อมูล
- เล่ม 2 – อัลกอริทึมแบบกึ่งตัวเลข
- บทที่ 3 – ตัวเลขสุ่ม
- บทที่ 4 – เลขคณิต
- เล่ม 3 – การจัดเรียงและการค้นหา
- บทที่ 5 – การเรียงลำดับ
- บทที่ 6 – การค้นหา
- เล่ม 4A – อัลกอริทึม เชิงการจัดเรียง
- บทที่ 7 – การค้นหาเชิงการจัดเรียง (ตอนที่ 1)
- เล่ม 4B – อัลกอริทึม เชิงการจัดเรียง
- บทที่ 7 – การค้นหาเชิงการจัดเรียง (ตอนที่ 2)
วางแผนไว้
- เล่ม 4C, 4D, ... อัลกอริทึมเชิงการจัดเรียง (บทที่ 7 และ 8 เผยแพร่ในเล่มย่อยหลายเล่ม) [ 20 ]
- บทที่ 7 – การค้นหาเชิงการจัดเรียง (ต่อ) [ 21 ]
- บทที่ 8 – การเรียกซ้ำ
- เล่ม 5 – อัลกอริทึมเชิงไวยากรณ์
- บทที่ 9 – การสแกนคำศัพท์ (รวมถึงการค้นหาสตริงและการบีบอัดข้อมูล )
- บทที่ 10 – เทคนิคการแยกวิเคราะห์
- เล่มที่ 6 – ทฤษฎีภาษาที่ไม่ขึ้นกับบริบท[ 22 ]
- บทที่ 11 – ภาษาศาสตร์คณิตศาสตร์[ 23 ]
- เล่มที่ 7 – เทคนิค การคอมไพล์
- บทที่ 12 – การแปลภาษาโปรแกรม[ 23 ]
ฉบับภาษาอังกฤษ
ฉบับปัจจุบัน
ต่อไปนี้คือฉบับปัจจุบันเรียงตามลำดับหมายเลขเล่ม:
- หนังสือ ชุด "ศิลปะแห่งการเขียนโปรแกรมคอมพิวเตอร์ เล่ม 1-4B " (เมืองเรดดิง รัฐแมสซาชูเซตส์: แอดดิสัน-เวสลีย์, 2023), 3904 หน้าISBN 978-0-13-793510-9,0-13-793510-2
- เล่ม 1: อัลกอริทึมพื้นฐานฉบับพิมพ์ครั้งที่ 3 (เรดดิง รัฐแมสซาชูเซตส์: แอดดิสัน-เวสลีย์, 1997), xx+650 หน้าISBN 978-0-201-89683-1,0-201-89683-4ข้อผิดพลาด: [1] (ตั้งแต่ 2011-01-08), [2] (ตั้งแต่ 2022, การพิมพ์ ครั้งที่ 49 ) ส่วนเพิ่มเติม: [3] (2011)
- เล่ม 2: อัลกอริทึมเชิงกึ่งตัวเลข ฉบับพิมพ์ครั้งที่ 3 (เรดดิง รัฐแมสซาชูเซตส์: แอดดิสัน-เวสลีย์, 1997), xiv+762 หน้าISBN 978-0-201-89684-8,0-201-89684-2ข้อผิดพลาด: [4] (ตั้งแต่ 2011-01-08), [5] (ตั้งแต่ 2022, พิมพ์ครั้งที่ 45) ส่วนเพิ่มเติม: [6] (2011)
- เล่ม 3: การจัดเรียงและการค้นหาฉบับพิมพ์ครั้งที่สอง (เรดดิง รัฐแมสซาชูเซตส์: แอดดิสัน-เวสลีย์, 1998), xiv+780 หน้า+แผ่นพับISBN 978-0-201-89685-5,0-201-89685-0ข้อผิดพลาด: [7] (ตั้งแต่ 2011-01-08), [8] (ตั้งแต่ 2022, พิมพ์ครั้งที่ 45) ส่วนเพิ่มเติม: [9] (2011)
- เล่ม 4A: อัลกอริทึมเชิงการจัดเรียง, ตอนที่ 1ฉบับพิมพ์ครั้งแรก (อัปเปอร์ แซดเดิล ริเวอร์, นิวเจอร์ซีย์: แอดดิสัน-เวสลีย์, 2011, พิมพ์ครั้งที่ 26), xv+883 หน้าISBN 978-0-201-03804-0,0-201-03804-8ข้อผิดพลาด: [10] (ตั้งแต่ปี 2011), [11] (ตั้งแต่ปี 2022, พิมพ์ครั้งที่ 20)
- เล่ม 4B: อัลกอริทึมเชิงการจัดเรียง, ตอนที่ 2ฉบับพิมพ์ครั้งแรก (อัปเปอร์ แซดเดิล ริเวอร์, นิวเจอร์ซีย์: แอดดิสัน-เวสลีย์, 2023, พิมพ์ครั้งที่ 3), xviii+714 หน้าISBN 978-0-201-03806-4,0-201-03806-4ข้อผิดพลาด: [12] (ตั้งแต่ปี 2023 พิมพ์ครั้งที่ 1)
- เล่ม 1, ฉบับที่ 1: MMIX – คอมพิวเตอร์ RISC สำหรับสหัสวรรษใหม่ (Addison-Wesley, 14 กุมภาพันธ์ 2548), 144 หน้าISBN 0-201-85392-2ข้อผิดพลาด: [13] (ตั้งแต่ปี 2005 การพิมพ์ครั้งที่ 1) (จะอยู่ในฉบับที่สี่ของเล่มที่ 1)
- อาหารเสริม MMIXโดย Martin Ruckert (แอดดิสัน-เวสลีย์), 193หน้าไอเอสบีเอ็น 0-13-399231-4การแปลงโจทย์/โปรแกรม MIX ในเล่ม 1, 2 และ 3 ไปเป็น MMIX
- เล่ม 4, ตอนที่ 7: การแก้ปัญหาด้วยข้อจำกัด (Addison-Wesley, 5 กุมภาพันธ์ 2025), xiv+281 หน้าISBN 978-0-13-532824-8. ข้อผิดพลาด: [14] (2025-12-28)
ฉบับก่อนหน้า
เล่มครบชุด
หนังสือเหล่านี้ถูกแทนที่ด้วยฉบับพิมพ์ใหม่กว่า และเรียงลำดับตามวันที่พิมพ์
- เล่มที่ 1: อัลกอริทึมพื้นฐานฉบับพิมพ์ครั้งแรก ปี 1968 จำนวน xxi+634 หน้าISBN 0-201-03801-3[ 24 ]
- เล่ม 2: อัลกอริทึมเชิงกึ่งตัวเลขฉบับพิมพ์ครั้งแรก ปี 1969 จำนวน xi+624 หน้าISBN 0-201-03802-1[ 24 ]
- เล่ม 3: การจัดเรียงและการค้นหาฉบับพิมพ์ครั้งแรก ปี 1973, xi+723 หน้า+แผ่นพับ, ISBN 0-201-03803-X. ข้อผิดพลาด: [15] .
- เล่มที่ 1: อัลกอริทึมพื้นฐานฉบับพิมพ์ครั้งที่สอง ปี 1973 จำนวน xxi+634 หน้าISBN 0-201-03809-9. ข้อผิดพลาด: [16] .
- เล่ม 2: อัลกอริทึมเชิงกึ่งตัวเลข ฉบับพิมพ์ครั้งที่สอง พ.ศ. 2524 จำนวน xiii+688 หน้าISBN 0-201-03822-6. ข้อผิดพลาด: [17] .
- หนังสือชุด "ศิลปะแห่งการเขียนโปรแกรมคอมพิวเตอร์ เล่ม 1-3 " ฉบับพิมพ์ครั้งที่สอง (เมืองเรดดิง รัฐแมสซาชูเซตส์: แอดดิสัน-เวสลีย์, 1998) หน้าISBN 978-0-201-48541-7,0-201-48541-9
- หนังสือชุด "ศิลปะแห่งการเขียนโปรแกรมคอมพิวเตอร์ เล่ม 1-4A " ฉบับพิมพ์ครั้งที่ 3 (เมืองเรดดิง รัฐแมสซาชูเซตส์: แอดดิสัน-เวสลีย์, 2011) จำนวน 3168 หน้าISBN 978-0-321-75104-1,0-321-75104-3
กลุ่มเส้นใย
เล่มที่ 4 ส่วนที่ 0–4 ได้รับการแก้ไขและตีพิมพ์ใหม่ในชื่อเล่มที่ 4A
- เล่ม 4, ตอนที่ 0: บทนำเกี่ยวกับอัลกอริธึมเชิงการจัดเรียงและฟังก์ชันบูลีน (Addison-Wesley Professional, 28 เมษายน 2551) vi+240 หน้า, ISBN 0-321-53496-4. ข้อผิดพลาด: [18] (2011-01-01)
- เล่ม 4, ตอนที่ 1: เทคนิคและวิธีการทางบิตไวส์; แผนภาพการตัดสินใจแบบไบนารี (Addison-Wesley Professional, 27 มีนาคม 2009) viii+260 หน้า, ISBN 0-321-58050-8. ข้อผิดพลาด: [19] (2011-01-01)
- เล่ม 4, ตอนที่ 2: การสร้างทูเพิลและเพอร์มิวเทชันทั้งหมด (Addison-Wesley, 14 กุมภาพันธ์ 2548) v+127 หน้า, ISBN 0-201-85393-0. ข้อผิดพลาด: [20] (2011-01-01)
- เล่ม 4, ตอนที่ 3: การสร้างชุดค่าผสมและการแบ่งส่วนทั้งหมด (Addison-Wesley, 26 กรกฎาคม 2548) vi+150 หน้า, ISBN 0-201-85394-9. ข้อผิดพลาด: [21] (2011-01-01)
- เล่ม 4, ตอนที่ 4: การสร้างต้นไม้ทั้งหมด; ประวัติศาสตร์ของการสร้างแบบผสมผสาน (Addison-Wesley, 6 กุมภาพันธ์ 2549) vi+120 หน้า, ISBN 0-321-33570-8. ข้อผิดพลาด: [22] (2011-01-01)
เล่ม 4 ตอนที่ 5-6 ได้รับการแก้ไขและตีพิมพ์ใหม่ในชื่อเล่ม 4B
- เล่ม 4, ตอนที่ 5: คณิตศาสตร์เบื้องต้นฉบับปรับปรุง; การย้อนกลับ; การเชื่อมโยงแบบเต้นรำ (Addison-Wesley, 2019-11-22) xiii+382 หน้า, ISBN 978-0-13-467179-6. ข้อผิดพลาด: [23] (2020-03-27)
- เล่ม 4, ตอนที่ 6: ความพึงพอใจ (Addison-Wesley, 8 ธันวาคม 2015) xiii+310 หน้า, ISBN 978-0-13-439760-3. ข้อผิดพลาด: [24] (2020-03-26)
เส้นใยก่อน
เอกสารฉบับร่างก่อนฉบับหลักประกอบด้วยเนื้อหาที่กำลังพัฒนาสำหรับเอกสารฉบับหลักในอนาคต เอกสารเหล่านี้ถูกเผยแพร่ทางออนไลน์เป็นหลักเพื่อให้ผู้เชี่ยวชาญในสาขาสามารถตรวจสอบเนื้อหาก่อนที่จะเผยแพร่ไปยังกลุ่มผู้ชมที่กว้างขึ้น[ 25 ]
เล่ม 1
- ก่อนฉบับที่1: MMIXได้รับการแก้ไขและตีพิมพ์เป็นเล่มที่ 1 ฉบับที่ 1
เล่ม 4
- เอกสารชุดก่อนหน้า0A: บทนำสู่การค้นหาแบบผสมผสาน , 0B: พื้นฐานของบูลีนและ0C: การประเมินค่าบูลีนได้รับการแก้ไขและตีพิมพ์ใหม่เป็นเล่มที่ 4 ชุดที่ 0
- บทความก่อนหน้าชุดที่ 1A: เทคนิคและวิธีการทางบิตและ ชุด ที่ 1B: แผนภาพการตัดสินใจแบบไบนารีได้รับการแก้ไขและตีพิมพ์ใหม่เป็นเล่มที่ 4 ชุดที่ 1
- บทความก่อนหน้าชุดที่2A: การสร้างทูเพิล n ทั้งหมดและ2B: การสร้างการเรียงสับเปลี่ยนทั้งหมดได้รับการแก้ไขและตีพิมพ์เป็นเล่มที่ 4 ชุดที่ 2
- เอกสารชุดก่อน3A: การสร้างชุดค่าผสมทั้งหมดและ3B: การสร้างพาร์ติชันทั้งหมดได้รับการแก้ไขและตีพิมพ์เป็นเล่มที่ 4 ชุดที่ 3
- บทความก่อนหน้าชุดที่ 4A: การสร้างต้นไม้ทั้งหมดและ4B: ประวัติความเป็นมาของการสร้างแบบผสมผสานได้รับการแก้ไขและตีพิมพ์ใหม่เป็นเล่มที่ 4 ชุดที่ 4
- บทความก่อนหน้า5A: Preliminaries Redux , 5B: Introduction to Backtrackingและ5C: Dancing Linksได้รับการแก้ไขและตีพิมพ์ใหม่เป็นเล่มที่ 4 บทความที่ 5
- บทความก่อนตอนที่ 6A: ความพึงพอใจได้รับการแก้ไขและตีพิมพ์เป็นเล่มที่ 4 ตอนที่ 6
- บทความก่อนตอนที่7A: Constraint Satisfactionได้รับการแก้ไขและตีพิมพ์เป็นเล่มที่ 4 ตอนที่ 7
ส่วนที่เหลือของเอกสารฉบับร่างก่อนตีพิมพ์นั้น ประกอบด้วยเนื้อหาที่จะตีพิมพ์ในเอกสารฉบับต่อๆ ไปและเล่มต่อๆ ไป
- เล่ม 4, ส่วนก่อน 8A: เส้นทางและวัฏจักรของแฮมิลตัน(ไฟล์ PDF เวอร์ชันที่ไม่ได้รับการบำรุงรักษา)
- เล่ม 4, หมวด 8B: กลุ่มย่อย
- เล่ม 4, ก่อนตอนที่ 9B: ปริศนาสารพัดชนิด
- เล่ม 4, ส่วนก่อน 9C: การประมาณค่าใช้จ่ายในการย้อนกลับ
- เล่ม 4, ส่วนก่อน 12A: ส่วนประกอบและการสำรวจ(ฉบับ PDF ที่ไม่ได้รับการบำรุงรักษา)
- เล่ม 4, ส่วนก่อน 14A: การจับคู่แบบทวิภาค
- เล่ม 4, ส่วนก่อน 16A: บทนำสู่การเรียกซ้ำ
ดูเพิ่มเติม
ลิงก์ภายนอก
- ภาพรวมหัวข้อต่างๆ (หน้าเว็บส่วนตัวของ Knuth)
- ประกาศวางจำหน่ายเล่มที่ 1 ของ 'ศิลปะแห่งการเขียนโปรแกรมคอมพิวเตอร์'
- บทสัมภาษณ์ประวัติศาสตร์ปากเปล่ากับโดนัลด์ อี. คนูธที่สถาบันชาร์ลส์ แบ็บเบจมหาวิทยาลัยมินนิโซตา เมืองมินนิแอโพลิส ปี 2001 คนูธพูดคุยเกี่ยวกับสิทธิบัตรซอฟต์แวร์ การ เขียน โปรแกรมเชิงโครงสร้างการทำงานร่วมกัน และการพัฒนาTeX ของเขา บทสัมภาษณ์ประวัติศาสตร์ปากเปล่านี้ยังกล่าวถึงการเขียนหนังสือ " ศิลปะแห่งการเขียนโปรแกรมคอมพิวเตอร์"ด้วย
- "Robert W Floyd, In Memoriam" โดย Donald E. Knuth , 2003 - (เกี่ยวกับอิทธิพลของBob Floyd )
- TAoCPและอิทธิพลของมันต่อวิทยาการคอมพิวเตอร์ (Softpanorama)
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ศิลปะแห่งการเขียนโปรแกรมคอมพิวเตอร์
The Art of Computer Programming ( TAOCP ) เป็น หนังสือวิชาการหลายเล่ม(เล่ม 1–7) ที่เขียนโดยนักวิทยาศาสตร์คอมพิวเตอร์ Donald Knuthซึ่งนำเสนอ อัลกอริทึม...
ประวัติศาสตร์
หลังจากได้รับ ทุนการศึกษา Westinghouse Talent Search แล้ว Knuth ได้เข้าเรียนที่ Case Institute of Technology (ปัจจุบันคือ Case Western Reserve University ) ซึ่งผลการเรียนของเขานั้นโดดเด่นมากจนคณะอาจารย์ลงมติมอบปริญญา โทวิทยาศาสตร์ ให้แก่เขา หลังจากสำเร็จการ...
มีรางวัลสำหรับผู้ที่ค้นพบข้อผิดพลาด
การเสนอเช็ครางวัลที่เรียกว่า " เช็ครางวัลคนุธ " มูลค่า "หนึ่งดอลลาร์ใน ระบบ เลข ฐานสิบหก" (100 ดอลลาร์ใน ระบบเลข ฐานสิบหก เท่ากับ 2.
ภาษาแอสเซมบลีในหนังสือ
ตัวอย่างทั้งหมดในหนังสือใช้ภาษาสมมติที่เรียกว่า " ภาษาแอสเซมบลี MIX " (MIXAL) ซึ่งทำงานบน "คอมพิวเตอร์ในจินตนาการที่เรียกว่า 'MIX'" ซึ่งพัฒนาขึ้นเพื่อให้ทันกับคอมพิวเตอร์อื่นๆ ในช่วงทศวรรษ 1960 และ 1970 แม้ว่า Knuth ตั้งใจให้ MIX ผ่านการทดสอบของกาลเวลา...