ฉันกำลังออกแบบและกำลังคิดใหม่เกี่ยวกับภาษาโปรแกรมตีความระดับต่ำที่มีความคล้ายคลึงกับแอสเซมเบลอร์
ในไม่ช้าฉันก็เจอปัญหาการตัดสินใจของฟังก์ชัน/ลูป/โกโตส และคิดว่าในขณะที่ลูปเช่น while
และ for
จะเป็นระดับสูงเกินไปและไม่เหมาะ แต่ gotos จะเป็นระดับต่ำเกินไป ไม่สามารถบำรุงรักษาได้ และโดยทั่วไปจะชั่วร้ายอีกครั้ง ฟังก์ชันเช่นที่คุณรู้จักในภาษาส่วนใหญ่ที่มีค่าส่งคืนและอาร์กิวเมนต์ก็ไม่เหมาะสมกับแนวคิดของภาษาเช่นกัน
ดังนั้นฉันจึงพยายามหาบางสิ่งระหว่างฟังก์ชันกับ goto ที่สามารถทำได้
- การเรียกซ้ำ
- ลูปที่มีประสิทธิภาพ
หลังจากคิดอยู่พักหนึ่ง ฉันก็เกิดแนวคิดเรื่องรูทีนย่อยขึ้นมา:
- มีจุดเริ่มต้นและจุดสิ้นสุดเหมือนฟังก์ชัน
- พวกเขามีชื่อแต่ไม่มีข้อโต้แย้งเหมือนข้ามไป
- คุณสามารถเข้าไปที่หนึ่งด้วยการกระโดดและออกจากมันอีกครั้งก่อนที่จะลงท้ายด้วย
return
(ไม่คืนผลลัพธ์ใด ๆ เพียงหยุดรูทีนย่อยเท่านั้น) - จัดการเหมือนโค้ดปกติ -> ขอบเขตทั่วโลกเหมือนข้ามไป
ฉันก็เลยอยากจะรู้ว่า:
- แนวคิดข้างต้นดีหรือไม่? มีข้อดี (ข้อเสีย) อะไรบ้าง?
- จะมีการผสมผสานระหว่างฟังก์ชันและข้ามไปที่ดีกว่านี้หรือแม้แต่แนวคิดใหม่ทั้งหมดหรือไม่?