Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

เฟสที่ 3: การแปลง AST

ขั้นตอนนี้เริ่มจากการเก็บเมตาดาต้าเกี่ยวกับแต่ละโพรบผ่านการท่อง AST ด้วย MetadataCollector ตัวเก็บนี้ติดตามข้อมูลต่อไปนี้ (รายการนี้อาจขยายเพิ่มในอนาคต):

  • ฟังก์ชันไลบรารีของผู้ใช้ที่ถูกเรียกใช้จริงในสคริปต์
  • ฟังก์ชันที่ผูกไว้ (bound functions) ที่ถูกเรียกใช้จริงในสคริปต์
  • ชนิดข้อมูลแต่ละชนิดที่ต้องถูกระบายตอน report
  • สตริงที่จำเป็นต้องมีเพื่อให้สคริปต์ทำงานได้
  • ว่าโพรบใดมีสถานะที่ต้องเริ่มต้นหรือไม่

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

เมื่อทำการเขียนไบต์โค้ดใหม่ AST ที่เป็นผลจากขั้นตอนเก็บเมตาดาต้าจะถูกแปลงให้เป็น SimpleAst