3
ทางเลือกใดในการใช้สแต็กเพื่อแสดงความหมายของการเรียกใช้ฟังก์ชัน?
เราทุกคนรู้และชื่นชอบที่การเรียกใช้ฟังก์ชันมักจะใช้งานโดยใช้ stack มีเฟรม, ที่อยู่ผู้ส่ง, พารามิเตอร์, ล็อตทั้งหมด อย่างไรก็ตามสแต็กเป็นรายละเอียดการใช้งาน: การเรียกประชุมอาจทำสิ่งต่าง ๆ (เช่น x86 fastcall ใช้ (ลงทะเบียน), MIPS และผู้ติดตามใช้หน้าต่างลงทะเบียนและอื่น ๆ ) และการเพิ่มประสิทธิภาพสามารถทำได้แม้กระทั่งสิ่งอื่น ๆ การเพิ่มประสิทธิภาพการโทรหาง .. ) แน่นอนว่าการมีคำสั่งกองซ้อนที่สะดวกในหลาย ๆ เครื่อง (VMs เช่น JVM และ CLR แต่ยังมีเครื่องจริงเช่น x86 ด้วย PUSH / POP เป็นต้น) ทำให้สะดวกในการใช้งานสำหรับการเรียกใช้ฟังก์ชั่น แต่ในบางกรณีก็เป็นไปได้ เพื่อตั้งโปรแกรมในลักษณะที่ไม่จำเป็นต้องใช้ call stack (ฉันกำลังคิดเกี่ยวกับสไตล์การส่งผ่านต่อเนื่องที่นี่หรือนักแสดงในระบบส่งข้อความ) ดังนั้นฉันเริ่มสงสัยว่า: เป็นไปได้หรือไม่ที่จะใช้ semantics call function โดยไม่มี …