วันเสาร์ที่ 7 มิถุนายน พ.ศ. 2557

ทบทวน Compiler กับกลุ่มเพื่อน

       จากวันเสาร์ที่ 31/05/2014 ที่ผ่านมานั้น ผมกับน้องๆกลุ่มหนึ่งได้มาฝึกเขียน mini compiler กัน เนื้อหาหลักก็คือ

- เข้าใจการออกแบบ grammar
- สร้าง grammar ในส่วนการประกาศตัวแปรได้
- สร้าง grammar ในส่วนการคำนวณ expression ได้ ได้แก่ การเปรียบเทียบ, การบวกลบ การคูณและการหาร
- สามารถให้ลำดับความสำคัญระดับของ expression ข้างต้นด้วยหลักการ ATG
- นำ grammar มาเขียนเป็นโปรแกรม สามารถรายงาน error ได้ ตรวจสอบการประกาศชื่อตัวแปรซ้ำได้ในระดับการประกาศตัวแปร (ระดับฟังก์ชันนั้นทำไม่ทัน)

และส่วนที่ต้องทำความเข้าใจเพิ่มเติม (หากมีโอกาส) ได้แก่
- ออกแบบ grammar เพื่อสร้างฟังก์ชัน
- เพิ่มการ scan ฟังก์ชันในกรณีที่สามารถ call ฟังก์ชัน ณ ตำแหน่งใดๆก็ได้ใน source code
- เพิ่มการผ่าน argument ให้กับฟังก์ชัน
- เพิ่ม list เพื่อจัดเก็บตัวแปรที่ประกาศและเรียกใช้งาน ทั้ง global list และ local list
- เพิ่มคลาสที่เกี่ยวข้องกับการจัดเก็บ intermediate code และส่งต่อให้กับกระบวนการ Code Generator
- เพิ่มกระบวนการแปลง intermediate code เป็น target code (ภาษาเครื่องระดับ word ไม่ใช่เลขฐานสอง)

[ ดาวน์โหลด source file ทั้งหมดที่ได้ทำในวันเสาร์นั้น ]
*** หมายเหตุ ผมเขียนมันด้วย Microsoft Visual Studio Express 2013 for Windows Desktop ซึ่งเป็นตัวล่าสุด หากเพื่อนๆคนไหนใช้เวอร์ชันที่ต่ำกว่านี้ จะต้องสร้าง solution เองใหม่ แล้ว import ไฟล์ทั้งหมดเข้าไปเองนะครับ สวัสดีครับผม