วันอังคารที่ 15 มีนาคม พ.ศ. 2554

คอมไพเลอร์ (compiler)

ตัวแปลโปรแกรม

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





รูปแสดงขั้นตอนการทำงานของตัวแปลโปรแกรม

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


ซอร์สโค้ด (source code)


 
ตัวอย่างซอร์สโค้ด ของ HTML ผสมกับ จาวาสคริปต์

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




ตรรกศาสตร์

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


ข้อมูลอ้างอิง  http://pirun.ku.ac.th/~b4913291/02_02.htm


2 ความคิดเห็น: