การพัฒนาโปรแกรมคอมพิวเตอร์ ผู้เขียนโปรแกรมหรือที่เรียกว่าโปรแกรมเมอร์นั้น จะเลือกใช้ภาษาให้เหมาะสมกับลักษณะงานและความถนัด ของผู้เขียนโปรแกรม โปรแกรมที่เขียนขึ้นหรือที่เรียกว่าโปรแกรมต้นฉบับ จึงมีลักษณะโครงสร้างของภาษาที่แตกต่างกันออกไป ในการทำงานของคอมพิวเตอร์นั้น คอมพิวเตอร์จะไม่สามารถเข้าใจภาษาที่ใกล้เคียงกับภาษามนุษย์ที่เรียกว่า ภาษาระดับสูง เนื่องจากคอมพิวเตอร์จะรับข้อมูลที่เป็นสัญญาณไฟฟ้าซึ่งแทนด้วยเลขฐานสอง (0 หรือ 1) หรือที่เรียกว่า ภาษาเครื่อง เท่านั้น ดังนั้นในการสั่งให้คอมพิวเตอร์ทำงาน จึงจำเป็นจะต้องมีตัวกลางที่ทำหน้าที่เสมือนเป็นนักแปลภาษา โปรแกรมที่นำมาใช้เรียกว่าโปรแกรมแปลภาษาคอมพิวเตอร์ ซึ่งจะทำหน้าที่แปลภาษาระดับสูงที่เป็นโปรแกรมต้นฉบับ ให้อยู่ในรูปของโปรแกรมเรียกใช้งานที่เครื่องคอมพิวเตอร์เข้าใจและสามารถทำงานได้ ตัวแปลภาษาสามารถแบ่งตามลักษณะการทำงานได้เป็น 3 ประเภท
1. คอมไพเลอร์ (Compiler)
เป็นตัวแปลภาษาระดับสูง เช่น ภาษาปาสคาล ภาษาโคบอลและภาษาฟอร์แทรกให้เป็นภาษาเครื่อง การทำงานจะใช้หลักการแปลโปรแกรมต้นฉบับ ทั้งโปรแกรมเรียกใช้งาน ซึ่งจะถูกบันทึกไว้ในลักษณะของแฟ้มข้อมูลหรือไฟล์ เมื่อต้องการเรียกใช้งานโปรแกรมก็สามารถเรียกจากไฟล์เรียกใช้งาน โดยไม่ต้องทำการแปลหรือคอมไพล์อีก ทำให้การทำงานเป็นไปอย่างรวดเร็ว ขณะที่คอมไพล์โปรแกรมต้นฉบับที่เขียนขึ้นด้วยภาษาระดับสูง คอมไพเลอร์จะตรวจสอบโครงสร้างไวยากรณ์ของคำสั่งและข้อมูลที่จะใช้ในการคำนวณ และเปรียบเทียบต่อจากนั้นคอมไพเลอร์จะสร้างรายการข้อผิดพลาดของโปรแกรม (Program listing) เพื่อใช้เก็บโปรแกรมต้นฉบับและคำสั่งที่เขียนไม่ถูกต้องตามกฏ หรือโครงสร้างของภาษานั้น ๆ ไฟล์นั้นมีประโยชน์ในการช่วยโปรแกรมเมอร์ในการแก้ไขโปรแกรม (debug)
ข้อดีของคอมไพเลอร์ คือ โปรแกรมออปเจ็คโค้ดที่ได้จะรวบรวมคำสั่งที่สำคัญในการรันโปรแกรม และได้โปรแกรมที่ทำงานเองได้ หรือ Execute Program ซึ่งสามารถทำงานได้ไม่จำกัด ไม่ต้องเสียเวลาในการแปลใหม่ทุกครั้ง ทำให้การทำงานของโปรแกรมเป็นไปอย่างรวดเร็ว จึงเป็นรูปแบบการแปลที่ได้รับความนิยมอย่างมาก
2. อินเตอร์พรีเตอร์ (interpreter)
เป็นตัวแปลระดับสูงเช่นเดียวกับคอมไพเลอร์แต่จะแปลพร้อมกับทำงานตามคำสั่งทีละคำสั่งตลอดไปทั้งโปรแกรม ทำให้การแก้ไขโปรแกรมกระทำได้ง่าย และรวดเร็ว การแปลโดยใช้อินเตอร์พรีเตอร์จะไม่สร้างโปรแกรมเรียกใช้งาน ดังนั้นจะต้องทำการแลใหม่ทุกครั้งที่มีการเรียกใช้งาน ตัวอย่างภาษาที่ใช้ตัวแปลอินเตอร์พรีเตอร์ เช่น ภาษาเบสิก (BASIC)
3. แอสเซมเบลอ (assembler)
เป็นตัวแปลภาษาแอสเซมบลี (assembly) ซึ่งเป็นภาษาระดับต่ำให้เป็นภาษาเครื่อง
ในปัจจุบัน มีหลักการแปลภาษาคอมพิวเตอร์แบบใหม่เกิดขึ้น คือ แปลจากซอร์สโค้ด ไปเป็นรหัสชั่วคราว หรืออินเทอมีเดียตโค้ด ( Intermediate Code) ซึ่งสามารถนำไปทำงานได้ด้วย การใช้โปรแกรมในการอ่าน และทำงานตามรหัสชั่วคราวนั้น โดยโปรแกรมนี้จะมีหลักการทำงาน คล้ายกับอินเทอพรีเตอร์ แต่จะทำงานได้เร็วกว่าเนื่องจากรหัสชั่วคราวจะใกล้เคียงกับภาษาเครื่องมาก มีข้อดีคือสามารถนำรหัสชั่วคราวนั้นไปใช้ได้กับทุก ๆ เครื่องมี่มีโปรแกรมตีความได้ทันที
ตัวอย่างโปรแกรมที่ใช้ตัวคอมไพเลอร์เป็นตัวแปล
ข้อมูลจาก:
http://www.thaigoodview.com/library/contest2552/type2/tech04/22/cit/3_3.html
http://www.elearning.msu.ac.th/opencourse/1201104/Unit_1/Unit_1_01_5.htm