← English articles English · technology · advanced · 180 words · ~1 min
Compilers: From Source Code to Machine Code
คอมไพเลอร์: จากซอร์สโค้ดสู่คำสั่งเครื่อง
Compilers: From Source Code to Machine Code
A compiler translates high-level source code into optimized machine code through multiple analysis and transformation passes.
Sign in to save texts and track what you've read.
. คอมไพเลอร์คือโปรแกรมที่แปลซอร์สโค้ดที่เขียนด้วยภาษาระดับสูงให้เป็นคำสั่งเครื่องที่โปรเซสเซอร์สามารถประมวลผลได้โดยตรง
, . การแปลเกิดขึ้นในหลายเฟสที่ชัดเจน โดยแต่ละเฟสรับผิดชอบการวิเคราะห์หรือการแปลงที่เฉพาะเจาะจง
, . ส่วนหน้า (front end) แยกวิเคราะห์ข้อความซอร์สให้เป็น abstract syntax tree จากนั้นตรวจสอบประเภทและแปลง AST เป็น intermediate representation เช่น LLVM IR
, . intermediate representation นั้นไม่ขึ้นกับภาษา ซึ่งเป็นเหตุผลที่ภาษาต่าง ๆ หลายภาษาสามารถใช้ตัวเพิ่มประสิทธิภาพ LLVM เดียวกันได้
: ; ; . ส่วนกลาง (middle end) ใช้ชุดของ optimization pass ได้แก่ dead code elimination ที่ลบคำสั่งซึ่งไม่มีการใช้ผลลัพธ์ inlining ที่แทนที่การเรียกใช้ฟังก์ชันด้วยเนื้อหาของฟังก์ชันนั้นเพื่อลด overhead และ loop vectorization ที่เขียนลูปแบบ scalar ใหม่เป็นการดำเนินการ SIMD
— — , . ส่วนหลัง (back end) ทำการจัดสรรรีจิสเตอร์ — กำหนด virtual register ให้กับรีจิสเตอร์จริงที่มีจำกัดของ ISA เป้าหมาย — จากนั้นส่งออกคำสั่งเครื่องจริง โดยจัดการ instruction scheduling เพื่อลดการหยุดชะงักของไปป์ไลน์
; . คอมไพเลอร์ยุคใหม่มีโครงสร้างเป็นส่วนประกอบของเครื่องมือที่นำกลับมาใช้ใหม่ได้ ทั้ง LLVM และ GCC รองรับภาษาต้นทางและสถาปัตยกรรมเป้าหมายหลายสิบรายการโดยใช้โครงสร้างพื้นฐานของตัวเพิ่มประสิทธิภาพร่วมกัน
colour key NounVerbAdjectiveAdverbPronounParticleConjunctionDeterminer