ตัวแปลภาษามีสองแบบ (Interpreter and Compiler)
เมื่อเขียนโปรแกรมด้วยการสร้างรหัสต้นฉบับ (Source Code) เพื่อทำงานอย่างใดอย่างหนึ่ง ที่สามารถอ่านเข้าใจได้โดยโปรแกรมเมอร์ การจะทำให้โปรแกรมนั้นประมวลผลได้จำเป็นต้องผ่านการแปล ซึ่งการแปลภาษาคอมพิวเตอร์มี 2 แบบ คือ แบบอินเทอร์พรีเตอร์ (Interpreter) และแบบคอมไพเลอร์ (Compiler)
ภาษาจาวาถูกออกแบบให้แปลรหัสต้นฉบับเป็นไบท์โค้ดแบบคอมไพเลอร์ ซึ่งแปลทั้งโปรแกรมจนหมด และไม่พบข้อผิดพลาด ผลการแปลแฟ้มรหัสต้นฉบับที่มีสกุลเป็น .java จะได้แฟ้มผลลัพธ์ที่มีสกุลเป็น .class ซึ่งนำไปประมวลผลได้
แต่การแปลแบบอินเทอร์พรีเตอร์ จะไม่สร้างแฟ้ม .class แต่ประมวลผลทีละบรรทัด และทำงานที่ละบรรทัดตั้งแต่บรรทัดแรกไปถึงบรรทัดสุดท้าย หากบรรทัดใดผิดพลาดก็จะหยุดการทำงาน ต่างกับการแปลแบบคอมไพเลอร์ที่จะแปลทั้งโปรแกรม ถ้าพบบรรทัดใดผิดพลาดจะยกเลิกการทำงานทันที
ตัวอย่างการ
ตัวอย่าง 1.14 การเขียน แปล และประมวลผล
- ตัวอย่างแฟ้มรหัสต้นฉบับ สร้างขึ้นด้วย edit , notepad , editplus หรือ copy con
class x {
public static void main(String args[]) {
System.out.println(5);
}
}
- สร้างแฟ้มรหัสต้นฉบับ เช่น DOS> edit x.java
- แปลแฟ้มรหัสต้นฉบับ เช่น DOS> javac x.java
- ประมวลผลแฟ้มไบท์โค้ดเช่น DOS> java x