Phase vs Pass ในคอมไพเลอร์
โดยทั่วไป คอมไพเลอร์คือโปรแกรมคอมพิวเตอร์ที่อ่านโปรแกรมที่เขียนด้วยภาษาหนึ่งซึ่งเรียกว่าภาษาต้นทางและแปลเป็นภาษาอื่นซึ่งเรียกว่าภาษาเป้าหมาย ตามเนื้อผ้า ภาษาต้นฉบับเป็นภาษาระดับสูง เช่น C++ และภาษาเป้าหมายเป็นภาษาระดับต่ำ เช่น ภาษาแอสเซมบลี ดังนั้นโดยทั่วไปแล้วคอมไพเลอร์สามารถเห็นได้ว่าเป็นนักแปลที่แปลจากภาษาหนึ่งเป็นอีกภาษาหนึ่ง Pass และ Phase เป็นคำสองคำที่มักใช้กับคอมไพเลอร์ จำนวนรอบของคอมไพเลอร์คือจำนวนครั้งที่ส่งผ่านซอร์ส (หรือรูปแบบการแสดงบางรูปแบบ)คอมไพเลอร์ถูกแบ่งออกเป็นส่วนๆ เพื่อความสะดวกในการก่อสร้าง เฟสมักใช้เพื่อเรียกส่วนอิสระเพียงส่วนเดียวของคอมไพเลอร์
Pass in a Compiler คืออะไร
วิธีมาตรฐานในการจำแนกคอมไพเลอร์คือจำนวน "ผ่าน" โดยปกติ การคอมไพล์เป็นกระบวนการที่ใช้ทรัพยากรค่อนข้างมาก และคอมพิวเตอร์ในขั้นต้นไม่มีหน่วยความจำเพียงพอที่จะเก็บโปรแกรมดังกล่าวที่ทำงานได้อย่างสมบูรณ์ เนื่องจากข้อจำกัดของทรัพยากรฮาร์ดแวร์ในคอมพิวเตอร์ยุคแรกๆ คอมไพเลอร์จึงถูกแบ่งออกเป็นโปรแกรมย่อยที่มีขนาดเล็กกว่าซึ่งทำงานบางส่วนโดยข้ามซอร์สโค้ด (ทำการ "ส่งผ่าน" เหนือซอร์สหรือรูปแบบอื่น) และทำการวิเคราะห์, การแปลงและงานแปลแยกจากกัน ดังนั้น คอมไพเลอร์จะถูกระบุเป็นคอมไพเลอร์แบบผ่านครั้งเดียวหรือหลายรอบ ทั้งนี้ขึ้นอยู่กับการจัดหมวดหมู่นี้
ตามชื่อที่แนะนำ คอมไพเลอร์แบบ one-pass คอมไพล์ในพาสเดียว มันง่ายกว่าในการเขียนคอมไพเลอร์แบบ one-pass และยังทำงานได้เร็วกว่าคอมไพเลอร์แบบมัลติพาสดังนั้น แม้ในเวลาที่คุณมีข้อ จำกัด ด้านทรัพยากร ภาษาต่างๆ ได้รับการออกแบบเพื่อให้สามารถคอมไพล์ได้ในครั้งเดียว (เช่น Pascal) ในทางกลับกัน คอมไพเลอร์แบบมัลติพาสทั่วไปประกอบด้วยขั้นตอนหลักหลายขั้นตอน ขั้นตอนแรกคือเครื่องสแกน (หรือที่เรียกว่าเครื่องวิเคราะห์คำศัพท์) สแกนเนอร์อ่านโปรแกรมและแปลงเป็นสตริงของโทเค็น ขั้นตอนที่สองคือ parser มันแปลงสตริงของโทเค็นเป็นแผนผังการแยกวิเคราะห์ (หรือแผนผังไวยากรณ์นามธรรม) ซึ่งรวบรวมโครงสร้างวากยสัมพันธ์ของโปรแกรม ขั้นต่อไปคือการตีความความหมายของโครงสร้างวากยสัมพันธ์ ขั้นตอนการเพิ่มประสิทธิภาพโค้ดและขั้นตอนการสร้างโค้ดขั้นสุดท้ายเป็นไปตามนี้
เฟสในคอมไพเลอร์คืออะไร
คำว่าสร้างคอมไพเลอร์มักจะเกิดขึ้นเมื่อคุณพูดถึงการสร้างคอมไพเลอร์ ในขั้นต้น คอมไพเลอร์คือซอฟต์แวร์ชิ้นเดียวแบบเสาหินทุกชิ้นที่เขียนขึ้นโดยบุคคลเพียงคนเดียวสำหรับการรวบรวมภาษาที่เรียบง่าย แต่เมื่อซอร์สโค้ดของภาษาที่จะแปลมีความซับซ้อนและมีขนาดใหญ่ คอมไพเลอร์ก็ถูกแบ่งออกเป็นหลายขั้นตอน (ค่อนข้างอิสระ)ข้อดีของการมีเฟสต่างกันคือการพัฒนาคอมไพเลอร์สามารถแจกจ่ายให้กับทีมนักพัฒนาได้ นอกจากนี้ ยังปรับปรุงโมดูลาร์และนำกลับมาใช้ใหม่โดยอนุญาตให้แทนที่เฟสด้วยเฟสที่ปรับปรุงแล้วหรือเฟสเพิ่มเติม (เช่น การปรับให้เหมาะสมเพิ่มเติม) เพื่อเพิ่มคอมไพเลอร์ กระบวนการแบ่งการคอมไพล์เป็นเฟสได้รับการแนะนำโดย PQCC (โครงการคอมไพเลอร์คุณภาพการผลิต-คอมไพเลอร์) ที่มหาวิทยาลัยคาร์เนกีเมลอน พวกเขาแนะนำเงื่อนไขส่วนหน้า ส่วนกลาง และส่วนหลัง คอมไพเลอร์ส่วนใหญ่มีอย่างน้อยสองเฟส แต่โดยปกติแล้ว แบ็กเอนด์และฟรอนต์เอนด์จะห่อหุ้มเฟสเหล่านี้
Phase และ Pass ในคอมไพเลอร์ต่างกันอย่างไร
Phase และ Pass เป็นคำสองคำที่ใช้ในพื้นที่ของคอมไพเลอร์ รหัสผ่านคือครั้งเดียวที่คอมไพเลอร์ส่งผ่าน (ผ่าน) ซอร์สโค้ดหรือการแสดงข้อมูลอื่นๆ โดยทั่วไปแล้ว คอมไพเลอร์ส่วนใหญ่จะมีอย่างน้อยสองเฟสที่เรียกว่า front end และ back end ในขณะที่อาจเป็น one-pass หรือ multi-passเฟสใช้เพื่อจำแนกคอมไพเลอร์ตามการก่อสร้าง ในขณะที่พาสใช้เพื่อจำแนกคอมไพเลอร์ตามวิธีการใช้งาน