C++ Compiler คืออะไร

TLDR; Compiler คือโปรแกรมแปลงภาษาโคด ให้เป็นภาษาเครื่องที่ CPU เข้าใจ

Compiler คือโปรแกรมคอมพิวเตอร์ มันแปลภาษาการเขียนโปรแกรมระดับสูง (C, C++) เป็น binary execution สำหรับ CPU เฉพาะ.

image

เพราะ CPU จริงๆแล้วคือ logic circuit การที่จะให้มันทำคำสั้งให้เข้าใจต้องกำหนดว่า ถ้าไฟ 4 เส้นแรกเป็น 0011 ให้เอาไฟ 4 เส้นหลังไปทำค่าอะไรต่อ ตัว bit ที่เป็นคำสั้งเพราะเรียกว่า operation code มีตั้งแต่ add, jump, shift, check และอื่นๆ.

ภาษา assembly ก็เอา operation code ตรงนี้แหละมาเขียนเป็นชื่อ function ให้เข้าใจง่าย.

แล้วต่อมาก็มีภาษา c ที่ก็แปลงกลับเป็น assembly แล้วก็แปลงกลับเป็น instruction set (operation code + params) แล้วแปลงกลับไปเป็นฟ้าหลายๆเส้นให้ logic gate ทำงาน

image

CPU = logic gate

image

CPU ส่วนมากแค่อ่านคำสั้ง กับแก้ memory

image

ตัวอย่าง assembly instruction ที่มีทั้ง operation code และ params, ด้านขวาเป็น memory (register)

image

instruction เหมือนกัน แต่เขียนในรูปสมการ math

image

ตัวอย่าง instruction ที่มองเป็น binary จริงๆ