ก่อนหน้านี้ ผมเคยแนะนำ GWEB ซึ่งเป็นเครื่องมือสำหรับเพลิดเพลินกับการเขียนโปรแกรมเชิงวรรณกรรมด้วยภาษา Go ผ่านบทความ GWEB: เครื่องมือเขียนโปรแกรมเชิงวรรณกรรมสำหรับภาษา Go ตอนนั้นยังสามารถเขียนโปรแกรมได้เฉพาะภาษาอังกฤษ และยังใช้ภาษาเกาหลีไม่ได้ แต่ตอนนี้ได้ปรับปรุงฟีเจอร์ให้สามารถใช้งานเป็นภาษาเกาหลีได้ด้วยแล้ว

พร้อมกับงานครั้งนี้ ผมยังได้เขียนตัวอย่าง GWEB ขึ้นมาเองจำนวนมาก เพื่อทดสอบตัว GWEB และแก้บั๊กไปด้วย
ในกระบวนการนี้ ผมได้สัมผัสถึงความสนุกบริสุทธิ์ของการเขียนโปรแกรม จากการนำโปรแกรมง่าย ๆ ที่รู้จักดีอยู่แล้ว โดยเฉพาะโจทย์แนว coding test มาเขียนใหม่ในรูปแบบการเขียนโปรแกรมเชิงวรรณกรรม นับเป็นช่วงเวลาที่ทำให้พอเข้าใจได้บ้างว่าทำไมศาสตราจารย์ Donald Knuth จึงสนับสนุน Literate Programming อย่างจริงจัง และยังคงทำเช่นนั้นมาจนถึงตอนนี้

ต่อไปนี้คือรายการโปรแกรมที่เขียนด้วย GWEB

โดยเฉพาะสองรายการสุดท้าย cht และ cdq-dc เป็นเนื้อหาเกี่ยวกับ Convex Hull Trick และ CDQ Divide and Conquer ซึ่งผู้ที่ศึกษา PS ควรต้องเรียนรู้ ในสองรายการนี้ ผมตั้งใจใส่ไฟล์ PDF ไว้ด้วย ต่างจากตัวอย่างอื่น ๆ เพื่อให้คนที่ไม่คุ้นเคยกับ TeX ก็สามารถลองสัมผัสการเขียนโปรแกรมเชิงวรรณกรรมได้ แม้จะไม่คุ้นเคยกับภาษาโปรแกรม Go ผมก็แนะนำให้ผู้ที่ศึกษาการเขียนโปรแกรมลองอ่านดู

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

ขอบคุณครับ

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น