4
ความซับซ้อนของเวลาของคอมไพเลอร์
ฉันสนใจเวลาที่ซับซ้อนของคอมไพเลอร์ เห็นได้ชัดว่านี่เป็นคำถามที่ซับซ้อนมากเนื่องจากมีคอมไพเลอร์ตัวเลือกคอมไพเลอร์และตัวแปรที่ต้องพิจารณาจำนวนมาก โดยเฉพาะฉันสนใจ LLVM แต่จะสนใจในความคิดใด ๆ ที่ผู้คนมีหรือสถานที่เพื่อเริ่มการวิจัย ดูเหมือนว่า google ค่อนข้างจะนำความสว่างมาให้ ฉันเดาว่าจะมีขั้นตอนการเพิ่มประสิทธิภาพบางอย่างที่อธิบายแทนได้ แต่มีผลกระทบเพียงเล็กน้อยต่อเวลาจริง เช่นเลขชี้กำลังเป็นเลขชี้กำลังเป็นอาร์กิวเมนต์ของฟังก์ชัน จากด้านบนของหัวฉันจะบอกว่าการสร้างต้นไม้ AST จะเป็นเส้นตรง รุ่น IR จะต้องก้าวผ่านต้นไม้ในขณะที่มองค่าในตารางที่เคยเติบโตดังนั้นหรือlog) การสร้างรหัสและการเชื่อมโยงจะเป็นการดำเนินการที่คล้ายกัน ดังนั้นฉันเดาว่าจะเป็นถ้าเราลบเลขยกกำลังของตัวแปรที่ไม่เติบโตตามจริงO ( n log n ) O ( n 2 )O(n2)O(n2)O(n^2)O(nlogn)O(nlogn)O(n\log n)O(n2)O(n2)O(n^2) ฉันอาจผิดอย่างสมบูรณ์แม้ว่า ไม่มีใครมีความคิดเกี่ยวกับมัน?
54
compilers