วันเสาร์ที่ 12 มกราคม พ.ศ. 2562

ตัวแปลภาษาคอมพิวเตอร์




  ตัวแปลภาษาโปรแกรมคอมพิวเตอร์ เป็นโปรแกรมที่ใช้ในการแปลความหมายของคำสั่งในภาษาคอมพิวเตอร์ชนิดต่าง ๆ ไปเป็นภาษาเครื่อง ซึ่งเป็นภาษาที่คอมพิวเตอร์เข้าใจและทำงานตามคำสั่งได้ โดยโปรแกรมที่เขียนจะเป็นโปรแกรมต้นฉบับหรือซอร์สโค้ด (source code) ซึ่งโปรแกรมเมอร์เขียนคำสั่งตามหลักการออกแบบโปรแกรม และจำเป็นต้องใช้ตัวแปลภาษาคอมพิวเตอร์เพื่อตรวจสอบไวยากรณ์ของภาษาว่าเขียนถูกต้องหรือไม่ และทดสอบผลลัพธ์ว่าเป็นอย่างไร ซึ่งภาษาคอมพิวเตอร์ชนิดต่าง ๆ จะมีตัวแปลภาษาของตนเองโดยเฉพาะ โปรแกรมที่แปลจากโปรแกรมต้นฉบับแล้วจะเรียกว่าออบเจ็คโค้ด (object code) ซึ่งเป็นภาษาเครื่องที่ประกอบด้วย รหัสคำสั่งที่คอมพิวเตอร์สามารถเข้าใจและนำไปปฏิบัติได้ต่อไป


ตัวแปลภาษาคอมพิวเตอร์มีการใช้งานสำหรับการแปลภาษาคอมพิวเตอร์ชนิดต่างๆแบ่งออกเป็น 3 ประเภท
      1. แอสเซมเบลอร์  (assembler) เป็นตัวแปลภาษาแอสเซมบลีซึ่งเป็นภาษาระดับต่ำ ให้เป็นภาษาเครื่อง

2. อินเทอร์พรีเตอร์  (interpreter) เป็นตัวแปลภาษาคอมพิวเตอร์ระดับสูงไปเป็นภาษาเครื่อง โดยใช้หลักการแปลคำสั่งครั้งละ 1 คำสั่งให้เป็นภาษาเครื่อง แล้วนำคำสั่งที่เป็นภาษาเครื่องนั้นไปทำการประมวลผล และแสดงผลลัพธ์ทันทีหากไม่พบข้อผิดพลาด หลังจากนั้นจะแปลคำสั่งถัดไปเรื่อยๆจนกว่าจะจบโปรแกรม ในระหว่างการแปลคำสั่ง ถ้าหากพบข้อผิดพลาดทางไวยากรณ์ของภาษา โปรแกรมอินเทอร์พรีเตอร์ก็จะหยุดการทำงานพร้อมแจ้งข้อผิดพลาดให้ทำการแก้ไขซึ่งทำได้ง่ายและรวดเร็ว แต่ออบเจ็คโค้ดที่ได้จากการแปลคำสั่งโดยใช้อินเทอพรีเตอร์นั้นไม่สามารถเก็บไว้ใช้ใหม่ได้ จะต้องแปลโปรแกรมใหม่ทุกครั้งที่ต้องการใช้งาน ทำให้โปรแกรม ทำงานได้ค่อนข้างช้า


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


  ในปัจจุบัน มีหลักการแปลภาษาคอมพิวเตอร์แบบใหม่เกิดขึ้น คือ แปลจากซอร์สโค้ด ไปเป็นรหัสชั่วคราว หรืออินเทอมีเดียโค้ด (Intermediate code) ซึ่งสามารถนำไปทำงานได้ด้วย การใช้โปรแกรมในการอ่าน และทำงานตามรหัสชั่วคราวนั้น โดยโปรแกรมนี้จะมีหลักการทำงานเหมือนกับอินเทอพรีเตอร์ แต่จะทำงานได้เร็วกว่าเนื่องจากรหัสชั่วคราวจะใกล้เคียงกับภาษาเครื่องมาก มีข้อดีคือสามารถนำรหัสชั่วคราวนั้นไปใช้ได้กับทุกๆ เครื่องที่มีโปรแกรมแปลภาษาได้ทันที 



ไม่มีความคิดเห็น:

แสดงความคิดเห็น