|
|
|
𝑆 ; 𝐹 ; ( 𝑑 ) ( 𝑠 ) ( 𝑛 ) ( 𝑥 𝑦 ) 𝑆 ; 𝐹 ( if 𝑠 + 𝑛 > | 𝑆. 𝐹. 𝑦 ]] ∨ 𝑑 + 𝑛 > | 𝑆. 𝐹. 𝑥 ]] ) 𝑆 ; 𝐹 ; ( 𝑑 ) ( 𝑠 ) ( 0) ( 𝑥 𝑦 ) 𝑆 ; 𝐹 ; 𝜖 ( otherwise ) 𝑆 ; 𝐹 ; ( 𝑑 ) ( 𝑠 ) ( 𝑛 + 1) ( 𝑥 𝑦 ) 𝑆 ; 𝐹 ; ( 𝑑 ) ( 𝑠 ) ( 𝑦 ) ( 𝑥 ) 𝑑 + 1) ( 𝑠 + 1) ( 𝑛 ) ( 𝑥 𝑦 ) ( otherwise , if 𝑑 ≤ 𝑠 ) 𝑆 ; 𝐹 ; ( 𝑑 ) ( 𝑠 ) ( 𝑛 + 1) ( 𝑥 𝑦 ) 𝑆 ; 𝐹 ; ( 𝑑 + 𝑛 − 1) ( 𝑠 + 𝑛 − 1) ( 𝑦 ) ( 𝑥 ) 𝑑 ) ( 𝑠 ) ( 𝑛 ) ( 𝑥 𝑦 ) ( otherwise , if 𝑑 > 𝑠 ) 𝑥 𝑦 1. Let 𝐹 be the 2. Assert: due to 𝐹. 𝑥 ] exists. 3. Let ta be the 𝐹. 𝑥 ] . 4. Assert: due to 𝑆. ta ] exists. 5. Let tab be the 𝑆. ta ] . 6. Assert: due to 𝐹. 𝑦 ] exists. 7. Let ea be the 𝐹. 𝑦 ] . 8. Assert: due to 𝑆. ea ] exists. 9. Let elem be the 𝑆. ea ] . 10. Assert: due to , a value of is on the top of the stack. 11. Pop the value 𝑛 from the stack. 12. Assert: due to , a value of is on the top of the stack. 13. Pop the value 𝑠 from the stack. 14. Assert: due to , a value of is on the top of the stack. 15. Pop the value 𝑑 from the stack. 16. If 𝑠 + 𝑛 is larger than the length of elem or 𝑑 + 𝑛 is larger than the length of tab , then: a. Trap. 17. If 𝑛 = 0 , then: a. Return. 18. Let be the elem 𝑠 ] . 19. Push the value 𝑑 to the stack. 20. Push the value to the stack. 21. Execute the instruction 𝑥 . 22. Assert: due to the earlier check against the table size, 𝑑 + 1 < 2 32 . 23. Push the value ( 𝑑 + 1) to the stack. 24. Assert: due to the earlier check against the segment size, 𝑠 + 1 < 2 32 . 25. Push the value ( 𝑠 + 1) to the stack. 4.4. Instructions 103 |