เพื่อนๆชาวรามคำแหงที่เรียนสาย วิทย์-คอม ทุกคนคงทราบดีว่าท้ายสุดแล้วเราจะต้องเขียน Compiler ขึ้นมาหนึ่งโปรแกรมสำหรับหนึ่งภาษาโปรแกรม โดยเพื่อนๆต้องประดิษฐ์ภาษาโปรแกรมนั้นเอง
ทำไมต้องเป็น Complier ?
- เพราะมันเป็นศาสตร์ประยุกต์สุดท้ายที่เพื่อนๆจะต้องนำเอาทักษะและความรู้ด้านภาษาโปรแกรมมาใช้ทั้งหมด
- และศาสตร์ประยุกต์นี้ใกล้ตัวเรามากที่สุด (สาขานี้เราเขียนโปรแกรมมาตลอด ใช้ Compiler อยู่เป็นนิจ)
แล้วเหตุใดผมจึงเลือกภาษาจาวา ?
- นั้นเพราะตัวภาษาช่วยลดความยุ่งยากการใช้ Pointer ในภาษาซี (ถ้าเราจำเป็นต้องใช้ แต่การศึกษา Pointer ก็ไม่ยากเย็นนักหรอก)
- ขณะนี้ผมเองพึ่งเริ่มศึกษาภาษาจาวา เลยอยากประยุตก์ภาษาจาวาให้เกิด Project สักชิ้นหนึ่ง (ที่ไม่ใหญ่โตมากนัก)
จาวาเป็น Object Oriented Programming (OOP) นั่นหมายความว่าเราจะต้องเขียน
- คลาส (Class)
- คุณลักษณะของคลาส (เรียกว่า Attribute)
- และพฤติกรรมของคลาส (เรียกว่า Method)
หากเพื่อนคนไหนกำลังศึกษาจาวาอยู่เหมือนกับผม เราควรมาเรียนรู้พร้อมกันครับ
กระบวนการของ Compiler เริ่มจาก
-> อ่าน Source Code
-> แบ่งแต่ละ Word ใน Source Code เป็น Array of Char เพื่อสะดวกต่อการตัดคำ เรียกกระบวนการนี้ว่า Lexical
-> จากกระบวนการ Lexical ผลลัพธ์จะต้องได้ Symbol Table และ Token Stream ทั้งสองนี้เป็นโครงสร้างข้อมูลที่อาจเป็น Array List หรือ Linked List หรืออื่นๆก็ได้
-> นำ Symbol Table และ Token Stream ส่งให้กับกระบวนการ Parser ซึ่งกระบวนการนี้ทำหน้าที่ตรวจสอบ Syntax และ Semantic ของภาษาที่เราได้ออกแบบไว้ เราเรียกภาษาที่ออกแบบนี้ว่า Grammar
-> ท้ายสุด Parser จะให้ Intermediate Code เป็นผลลัพธ์ เราจะนำ Intermediate Code นี้ส่งให้กระบวนการ Code Generator และให้มันแปลหรือแสดงออกมาเป็นภาษาสมมติ เช่น Assemble, ภาษาเครื่อง หรือภาษาใดๆตามต้องการ (ทั้งทำงานได้จริง หรือไม่ได้ สุดแล้วแต่ว่าแปลออกมาเป็นโด้ดภาษาอะไร)
จากกระบวนการทั้งหมด สรุปได้ว่าเราใช้ภาษาระดับสูงเขียน Compiler เพื่อจำลองและศึกษากระบวนการแปลความหมาย Source Code ให้เป็น ภาษาเป้าหมาย ใดๆนั่นเองครับ
อ่านเนื้อหาที่เกี่ยวข้อง ถัดไป
ไม่มีความคิดเห็น:
แสดงความคิดเห็น