3 คะแนน โดย GN⁺ 2024-07-13 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

เคยอยากสร้างภาษาโปรแกรมขึ้นมาเอง หรือสงสัยไหมว่าภาษาเหล่านั้นถูกออกแบบและสร้างขึ้นอย่างไร? ถ้าใช่ หนังสือเล่มนี้เหมาะสำหรับคุณ Crafting Interpreters ครอบคลุมทุกอย่างที่จำเป็นต่อการสร้างภาษาสคริปต์ที่สมบูรณ์และมีประสิทธิภาพ ตั้งแต่แนวคิดระดับสูงอย่างการแยกวิเคราะห์และความหมายของภาษา ไปจนถึงรายละเอียดอย่างการแทนค่าแบบไบต์โค้ดและการเก็บกวาดหน่วยความจำ สมองของคุณจะสว่างไสวไปด้วยไอเดียใหม่ ๆ และคุณจะได้ลงมือจริงจนมือเปื้อนและเป็นด้าน มันสนุกมากจริง ๆ

เริ่มตั้งแต่ main() แล้วค่อย ๆ สร้างภาษาที่มีไวยากรณ์หลากหลาย, dynamic typing, garbage collection, lexical scope, first-class functions, closures, classes และ inheritance ทุกอย่างถูกรวมอยู่ในโค้ดที่สะอาดและรวดเร็วเพียงไม่กี่พันบรรทัด และเพราะคุณจะเขียนทุกบรรทัดด้วยตัวเอง คุณจึงเข้าใจมันได้อย่างถ่องแท้

หนังสือมีให้เลือกในสี่รูปแบบที่ยอดเยี่ยม:

ฉบับพิมพ์

  • 640 หน้าพร้อมงานพิมพ์อักษรที่สวยงามและภาพประกอบวาดมือความละเอียดสูง
  • ทุกหน้าจัดวางตัวพิมพ์อย่างพิถีพิถันโดยผู้เขียน
  • มอบประสบการณ์การอ่านที่ดีที่สุด
  • Amazon.com | .ca | .uk | .au | .de | .fr | .es | .it | .jp
  • Barnes and Noble | Book Depository

อีบุ๊ก

  • CSS ที่ปรับแต่งอย่างรอบคอบให้เหมาะกับเครื่องอ่านอีบุ๊กและขนาดหน้าจอ
  • มี syntax highlighting แบบเต็มสีและไฮเปอร์ลิงก์แบบใช้งานได้จริง
  • Kindle Amazon.com | .uk | .ca | .au | .de | .in
  • .fr | .es | .it | .jp | .br | .mx | Apple Books
  • Play Books Google | Nook B&N | EPUB Smashwords

PDF

  • ถ่ายทอดการจัดวางแบบทำมือและภาพประกอบคมชัดของฉบับพิมพ์ได้อย่างสมบูรณ์
  • พกพาได้สะดวกกว่ามาก
  • ซื้อได้ที่ Payhip
  • ดาวน์โหลดตัวอย่างฟรีได้

เว็บ

  • ดีไซน์ responsive ที่ใส่ใจรายละเอียด ทำให้ดูดีตั้งแต่เดสก์ท็อปไปจนถึงโทรศัพท์มือถือ
  • รวมทุกบท เนื้อหาข้างเคียง และภาพประกอบ
  • อ่านหนังสือทั้งเล่มได้ฟรี
  • อ่านได้เลยตอนนี้

เกี่ยวกับ Robert Nystrom

  • เมื่อหลายปีก่อน ระหว่างลาพักเพื่อเลี้ยงดูลูก เขาได้ติดหลงใหลเรื่องภาษาโปรแกรม
  • หลังจากลองทำภาษางานอดิเรกหลายตัว เขาก็ก้าวเข้าสู่อาชีพด้านภาษาโปรแกรมอย่างจริงจัง
  • ปัจจุบันทำงานกับภาษา Dart ที่ Google
  • เคยพัฒนาเกมอยู่ 8 ปีที่ Electronic Arts
  • จากสิ่งที่ได้เรียนรู้ที่นั่น เขาเขียนหนังสือขายดี Game Programming Patterns
  • ดูข้อมูลเพิ่มเติมได้ทาง Twitter (@munificentbob), อีเมล (bob at โดเมนของเว็บไซต์นี้), บล็อก และเมลลิงลิสต์ความถี่ต่ำ

สรุปโดย GN⁺

  • Crafting Interpreters เป็นหนังสือสำคัญอย่างยิ่งสำหรับผู้ที่ต้องการสร้างภาษาโปรแกรมด้วยตนเอง
  • ครอบคลุมหัวข้อต่าง ๆ เช่น การแยกวิเคราะห์ ความหมายของภาษา การแทนค่าแบบไบต์โค้ด และการเก็บกวาดหน่วยความจำ
  • Robert Nystrom เขียนหนังสือเล่มนี้จากประสบการณ์ที่ได้รับจากการทำงานกับภาษา Dart
  • หนังสือมีทั้งฉบับพิมพ์ อีบุ๊ก PDF และเว็บ มอบประสบการณ์การอ่านได้หลากหลาย
  • เป็นแหล่งข้อมูลที่มีประโยชน์มากสำหรับผู้ที่สนใจการออกแบบและการพัฒนาภาษาโปรแกรม

1 ความคิดเห็น

 
GN⁺ 2024-07-13
ความคิดเห็นบน Hacker News
  • หนังสือเล่มนี้เหมาะเป็นขั้นที่สองหรือสามในการเรียนรู้คอมไพเลอร์ PL

    • ขั้นแรกคือเขียนอินเทอร์พรีเตอร์ด้วยตัวเองสำหรับภาษาง่าย ๆ
    • ขั้นที่สองคือเขียนมันใหม่อีกครั้งเพื่อลดความผิดพลาด
    • วิธีนี้ช่วยให้เข้าใจความแตกต่างที่ละเอียดอ่อนของหัวข้อนี้ได้
  • ตอนทำ Crumb ได้อ่าน Crafting Interpreters

    • ส่วนที่ว่าด้วยสโคปและตัวแปรโลคัลมีประโยชน์เป็นพิเศษ
    • ความสมดุลระหว่างการอธิบายการติดตั้งเชิงเทคนิคกับมุมมองเชิงแนวคิดช่วยได้มาก
    • เป็นตัวอย่างของงานเขียนเทคนิคที่สร้างแรงบันดาลใจ
  • สิ่งที่ดีที่สุดของหนังสือเล่มนี้คือมันพาเราเขียนอินเทอร์พรีเตอร์สองตัวสำหรับภาษาเดียวกัน

    • คุณจะได้เจอแนวคิดใหญ่ ๆ ในอินเทอร์พรีเตอร์ตัวแรก แล้วกลับมาจัดการมันอีกครั้งในตัวที่สองจนซึมซับได้
    • เป็นหนังสือที่ยอดเยี่ยมจริง ๆ
  • ถ้าพูดถึงแหล่งเรียนคอมไพเลอร์อื่น ๆ ผมสนุกกับการดู Immo Landwerth เขียนคอมไพเลอร์ด้วย C#

  • โปรแกรมเมอร์ส่วนใหญ่น่าจะควรอ่านหนังสือเล่มนี้สักครั้ง

    • จะช่วยให้เข้าใจว่าเกิดอะไรขึ้นภายในคอมไพเลอร์
    • เป็นคู่มือเชิงเทคนิคที่เขียนได้ดีมาก
    • ช่วยให้ซึมซับแนวคิดต่าง ๆ ได้
  • อยากรู้ว่ามีแหล่งเรียนดี ๆ สำหรับการสร้างภาษาสแตติกไทป์ที่มี parametric polymorphism และ basic type inference หรือไม่

  • ในฐานะคนที่เพิ่งเริ่มเข้าวงการโปรแกรมมิง อยากรู้ว่าควรเสพหนังสือแบบนี้อย่างไร

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

    • มันวางอยู่บนชั้นจนฝุ่นจับแล้ว
  • เพิ่งอ่านครึ่งหลังจบ

    • เป็นหนังสือที่ยอดเยี่ยม
    • แนะนำให้ลองทำโจทย์ท้าทายที่เสนอไว้ในแต่ละบทสักหนึ่งหรือสองข้อ
  • รู้สึกขอบคุณที่ความหลงใหลในการสร้างภาษาเป็นแค่ความสนใจชั่วคราว

    • มันเป็นงานปริมาณมหาศาล