วิธีการเขียน Lisp Interpreter

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

Peter Norvig ได้เขียนคู่มือที่มีชื่อเสียงในหัวข้อนี้เมื่อปี 2010 หลักการของการออกแบบ interpreter นั้นไม่เปลี่ยนแปลง คุณจะได้เรียนรู้วิธีที่โค้ดเปลี่ยนไปเป็นการทำงานจริง

Interpreter มีขั้นตอนหลัก 3 ขั้นตอน:

  • Lexical Analysis: คุณจะแยกโค้ดดิบออกเป็น tokens ซึ่งเป็นชิ้นส่วนเล็กๆ เช่น คำและสัญลักษณ์
  • Syntactic Analysis: คุณจะเปลี่ยน tokens ให้กลายเป็น tree ซึ่ง tree นี้จะแสดงโครงสร้างของโค้ด
  • Evaluation: คุณจะไล่ตาม tree เพื่อดำเนินการตามคำสั่งและรับผลลัพธ์

Lisp ทำให้เรื่องนี้เป็นเรื่องง่าย โดยใช้ S-expressions ซึ่งหมายความว่าทุกอย่างคือ list ที่อยู่ภายในวงเล็บ โดยปกติแล้วรายการแรกจะเป็นฟังก์ชัน และรายการที่เหลือจะเป็น arguments

ในการเริ่มต้น คุณจะเปลี่ยนโค้ดอย่าง (+ 10 (* 2 5)) ให้กลายเป็น tokens

tokens ของคุณจะมีลักษณะดังนี้: '(', '+', '10', '(', '*', '2', '5', ')', ')'

การศึกษากลไกหลักเหล่านี้จะเปลี่ยนวิธีที่คุณใช้เครื่องมือต่างๆ ในทุกๆ วัน

แหล่งที่มา: https://dev.to/kelvin_kariuki_20f4bec616/developer-take-on-how-to-write-a-lisp-interpreter-in-python-2010-22ca