คอมไพเลอร์คืออะไร หรือ จะทำให้คอมพิวเตอร์เข้าใจว่าคุณต้องการอะไรจากมัน?

สารบัญ:

คอมไพเลอร์คืออะไร หรือ จะทำให้คอมพิวเตอร์เข้าใจว่าคุณต้องการอะไรจากมัน?
คอมไพเลอร์คืออะไร หรือ จะทำให้คอมพิวเตอร์เข้าใจว่าคุณต้องการอะไรจากมัน?

วีดีโอ: คอมไพเลอร์คืออะไร หรือ จะทำให้คอมพิวเตอร์เข้าใจว่าคุณต้องการอะไรจากมัน?

วีดีโอ: คอมไพเลอร์คืออะไร หรือ จะทำให้คอมพิวเตอร์เข้าใจว่าคุณต้องการอะไรจากมัน?
วีดีโอ: Compiler Testing จะเข้าใจคอมพิวเตอร์ได้อย่างไร?​ กับ คุณอัมรินทร์​ เผ่าสวัสดิ์ | Tech Monday EP.57 2024, อาจ
Anonim

ขั้นตอนสุดท้ายของการสร้างโปรแกรมคือการแปลอัลกอริธึมที่เขียนในภาษาการเขียนโปรแกรมภาษาใดภาษาหนึ่ง (C/C++, Pascal ฯลฯ) เป็นภาษาเครื่องระดับต่ำ เนื่องจากการทำงานใดๆ ก็ตาม คอมพิวเตอร์จำเป็นต้องได้รับคำสั่งในภาษาที่พวกเขาเข้าใจ ใกล้เคียงกับไบนารี และทำงานด้วยโครงสร้างข้อมูลดั้งเดิม (บิต ไบต์ หรือคำ) กระบวนการแปลคำสั่งเฉพาะโดเมนของภาษาระดับสูงเป็นรหัสไบนารี่เรียกว่าการแปล มีวิธีการแปลสองวิธี - การรวบรวมและการตีความ

คอมไพเลอร์คือ
คอมไพเลอร์คือ

คอมไพเลอร์ - มันคืออะไร

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

คอมไพเลอร์และล่าม - ความเหมือนและความแตกต่าง

ล่ามเป็นเครื่องมือที่เช่นเดียวกับคอมไพเลอร์ที่ออกแบบมาเพื่อแปลซอร์สโค้ดเป็นรหัสเครื่อง อย่างไรก็ตาม ไม่เหมือนกับคอมไพเลอร์ ล่ามจะทำงานทุกครั้งกับโปรแกรมและดำเนินการแปลทีละบรรทัด

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

การจำแนกคอมไพเลอร์

คอมไพเลอร์เป็นโปรแกรม
คอมไพเลอร์เป็นโปรแกรม

คอมไพเลอร์ถูกจำแนกตามคุณสมบัติที่เกี่ยวข้องกับขอบเขตการใช้งานจริงเป็นหลัก

Vectorizing คอมไพเลอร์เป็นยูทิลิตี้ที่แปลซอร์สโค้ดเป็นอ็อบเจกต์โค้ดและได้รับการดัดแปลงสำหรับคอมพิวเตอร์ที่ติดตั้งโปรเซสเซอร์เวคเตอร์

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

คอมไพเลอร์ส่วนเพิ่มคือตัวประมวลผลภาษาที่แปลใหม่แยกส่วนย่อยของซอร์สโค้ดและเพิ่มเข้าไป อย่างไรก็ตาม จะหลีกเลี่ยงการคอมไพล์แอปพลิเคชันใหม่ทั้งหมด

คอมไพเลอร์แปลความหมาย (ก้าว) เป็นยูทิลิตี้ที่ดำเนินการรวบรวมอิสระของแต่ละคำสั่งหรือคำสั่งของซอร์สโค้ดระดับสูงตามลำดับ

คอมไพเลอร์ของคอมไพเลอร์คือนักแปลที่ยอมรับคำอธิบายที่เป็นทางการสำหรับภาษาการเขียนโปรแกรมและสร้างคอมไพเลอร์สำหรับภาษาใดก็ได้อย่างอิสระ

คอมไพเลอร์และล่าม
คอมไพเลอร์และล่าม

ดีบักคอมไพเลอร์ช่วยให้คุณค้นหาและแก้ไขข้อผิดพลาดทางไวยากรณ์บางประเภทที่เกิดขึ้นเมื่อเขียนซอร์สโค้ด

คอมไพเลอร์แบบมีถิ่นที่อยู่ตรงบริเวณถาวรใน RAM ดังนั้นจึงใช้ซ้ำได้กับงานที่หลากหลาย

คอมไพเลอร์แบบคอมไพเลอร์เองเขียนในภาษาเดียวกับคำแปล

คอมไพเลอร์สากลมีพื้นฐานมาจากคำอธิบายอย่างเป็นทางการของพารามิเตอร์ทางความหมายและวากยสัมพันธ์ของภาษาที่ป้อน ส่วนประกอบหลักของยูทิลิตี้ดังกล่าว ได้แก่ ตัวโหลดหลัก วากยสัมพันธ์ และความหมาย

อุปกรณ์คอมไพเลอร์

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

ภาษาโปรแกรมและวิธีการแปล

คอมไพเลอร์ภาษา
คอมไพเลอร์ภาษา

แม้ว่าโปรแกรมที่เขียนในภาษาโปรแกรมใด ๆ ก็สามารถคอมไพล์และตีความได้ แต่ภาษาระดับสูงจำนวนมากกลับมีแนวโน้มที่จะใช้วิธีการแปลแบบใดแบบหนึ่งหรือแบบอื่น ดังนั้น ภาษาซีจึงถูกออกแบบสำหรับการคอมไพล์ และ Java - สำหรับการตีความโปรแกรมที่เขียนขึ้น กำลังพัฒนาคอมไพเลอร์ C นั้นค่อนข้างง่าย ต้องขอบคุณระดับที่ค่อนข้างต่ำและองค์ประกอบโครงสร้างจำนวนน้อย

ข้อดีและข้อเสียของคอมไพเลอร์และล่าม แอปพลิเคชั่น

โปรดทราบว่าแอปพลิเคชันที่คอมไพล์แล้วจะเร็วกว่าที่แปล แต่ในขณะเดียวกัน รหัสเครื่องที่ได้รับจากการคอมไพล์ก็ขึ้นอยู่กับแพลตฟอร์มฮาร์ดแวร์ ดังนั้น โปรแกรมที่เขียนและคอมไพล์สำหรับ Windows จะไม่ทำงาน เช่น ใน Linux ดังนั้นในกรณีของแอปพลิเคชั่นอินเทอร์เน็ตเมื่อไม่สามารถพูดล่วงหน้าได้ว่าสภาพแวดล้อมใดจะทำงาน พวกเขาใช้การตีความหรือ bytecode (ในกรณีนี้โปรแกรมต้นทางจะถูกแปลงเป็นรูปแบบกลางที่สามารถดำเนินการกับฮาร์ดแวร์ต่างๆ แพลตฟอร์ม).

แนะนำ: