next up previous contents
Next: The error manager Up: main Previous: Non-negative numbers   Contents

The instruction base

The complete list of instructions that are currently defined is:

  1. Do-nothing instruction:
    1. NO_OP
  2. Push instructions:
    1. PUSH_I
    2. PUSH_O
    3. PUSH_R
    4. PUSH_OFFSET_I
    5. PUSH_OFFSET_O
    6. PUSH_OFFSET_R
    7. PUSH_TUPLE
    8. PUSH_SET_I
    9. PUSH_SET_R
    10. PUSH_SET_O
    11. PUSH_INT_RNG
    12. PUSH_REAL_RNG
    13. PUSH_CLOSURE
    14. PUSH_NEW_OBJECT
  3. Subroutine instructions:
    1. APPLY
    2. APPLY_HOM_I
    3. APPLY_HOM_R
    4. APPLY_HOM_O
    5. APPLY_IP_HOM_I
    6. APPLY_IP_HOM_R
    7. APPLY_IP_HOM_O
    8. APPLY_COLL_I
    9. APPLY_COLL_R
    10. APPLY_COLL_O
    11. APPLY_COLL_HOM_I
    12. APPLY_COLL_HOM_R
    13. APPLY_COLL_HOM_O
    14. APPLY_IP_COLL_HOM_I
    15. APPLY_IP_COLL_HOM_R
    16. APPLY_IP_COLL_HOM_O
    17. CALL
    18. END
    19. RETURN_I
    20. RETURN_R
    21. RETURN_O
    22. NL_RETURN_I
    23. NL_RETURN_R
    24. NL_RETURN_O
  4. Pop instructions:
    1. POP_I
    2. POP_O
    3. POP_R
  5. Relocatable instructions:
    1. JUMP
    2. JUMP_ON_FALSE
    3. JUMP_ON_TRUE
  6. Conversion instructions:
    1. I_TO_O
    2. I_TO_R
    3. O_TO_I
    4. O_TO_R
    5. R_TO_I
    6. R_TO_O
    7. ARRAY_TO_MAP_I
    8. ARRAY_TO_MAP_R
    9. ARRAY_TO_MAP_O
    10. MAP_TO_ARRAY_O
    11. CHECK_ARRAY_SIZE
    12. RECONCILE_INDEXABLES
    13. ARRAY_INITIALIZE
    14. SHUFFLE_MAP_I
    15. SHUFFLE_MAP_R
    16. SHUFFLE_MAP_O
  7. Assignment instructions:
    1. SET_GLOBAL
    2. SET_OFFSET_I
    3. SET_OFFSET_O
    4. SET_OFFSET_R
  8. Tuple component instructions:
    1. GET_TUPLE_I
    2. GET_TUPLE_R
    3. GET_TUPLE_O
    4. SET_TUPLE_I
    5. SET_TUPLE_R
    6. SET_TUPLE_O
  9. Array/Map allocation instructions:
    1. PUSH_ARRAY_I
    2. PUSH_ARRAY_R
    3. PUSH_ARRAY_O
    4. PUSH_MAP_I
    5. PUSH_MAP_R
    6. PUSH_MAP_O
    7. MAKE_ARRAY_I
    8. MAKE_ARRAY_R
    9. MAKE_ARRAY_O
    10. MAKE_MAP_I
    11. MAKE_MAP_R
    12. MAKE_MAP_O
    13. FILL_ARRAY_IA
    14. FILL_ARRAY_IM
    15. FILL_ARRAY_OA
    16. FILL_ARRAY_OM
    17. FILL_ARRAY_RA
    18. FILL_ARRAY_RM
    19. FILL_MAP_IA
    20. FILL_MAP_IM
    21. FILL_MAP_OA
    22. FILL_MAP_OM
    23. FILL_MAP_RA
    24. FILL_MAP_RM
  10. Array/Map slot instructions:
    1. GET_ARRAY_I
    2. GET_INT_INDEXED_MAP_I
    3. GET_INT_INDEXED_MAP_O
    4. GET_INT_INDEXED_MAP_R
    5. GET_MAP_I
    6. GET_ARRAY_O
    7. GET_MAP_O
    8. GET_ARRAY_R
    9. GET_MAP_R
    10. SET_ARRAY_I
    11. SET_INT_INDEXED_MAP_I
    12. SET_INT_INDEXED_MAP_O
    13. SET_INT_INDEXED_MAP_R
    14. SET_MAP_I
    15. SET_ARRAY_O
    16. SET_MAP_O
    17. SET_ARRAY_R
    18. SET_MAP_R
  11. Field instructions:
    1. GET_FIELD_I
    2. GET_FIELD_O
    3. GET_FIELD_R
    4. SET_FIELD_I
    5. SET_FIELD_O
    6. SET_FIELD_R
  12. Built-in operations:
    1. Arithmetic operations:
      1. ADD_II
      2. ADD_IR
      3. ADD_RI
      4. ADD_RR
      5. SUB_II
      6. SUB_IR
      7. SUB_RI
      8. SUB_RR
      9. MINUS_I
      10. MINUS_R
      11. MUL_II
      12. MUL_IR
      13. MUL_RI
      14. MUL_RR
      15. DIV_II
      16. DIV_IR
      17. DIV_RI
      18. DIV_RR
      19. MODULUS
      20. MIN_II
      21. MIN_IR
      22. MIN_RI
      23. MIN_RR
      24. MAX_II
      25. MAX_IR
      26. MAX_RI
      27. MAX_RR
      28. ABS_I_RI
      29. ABS_R
      30. SQRT
      31. POWER
    2. Arithmetic relations:
      1. EQU_II
      2. EQU_OO
      3. EQU_RR
      4. NEQ_II
      5. NEQ_OO
      6. NEQ_RR
      7. GTE_II
      8. GTE_IR
      9. GTE_RI
      10. GTE_RR
      11. GRT_II
      12. GRT_IR
      13. GRT_RI
      14. GRT_RR
      15. LTE_II
      16. LTE_IR
      17. LTE_RI
      18. LTE_RR
      19. LST_II
      20. LST_IR
      21. LST_RI
      22. LST_RR
    3. Boolean operations:
      1. NOT
    4. Map and Size operations:
      1. MAP_SIZE
      2. ARRAY_SIZE
      3. INDEXABLE_SIZE
      4. GET_INDEXABLE
    5. Container operations:
      1. BELONGS_I
      2. BELONGS_O
      3. BELONGS_R
    6. Set operations:
      1. SET_COPY
      2. MAKE_SET_I
      3. MAKE_SET_O
      4. MAKE_SET_R
      5. SET_DIFF
      6. SET_SYM_DIFF
      7. INTER
      8. UNION
      9. D_SET_DIFF
      10. D_SET_SYM_DIFF
      11. D_INTER
      12. D_UNION
    7. Set relations:
      1. SUBSET
    8. Set element operations:
      1. SET_ADD_I
      2. SET_ADD_R
      3. SET_ADD_O
      4. SET_RMV_I
      5. SET_RMV_R
      6. SET_RMV_O
      7. FIRST_I
      8. FIRST_O
      9. FIRST_R
      10. LAST_I
      11. LAST_O
      12. LAST_R
      13. NEXT_I
      14. NEXT_C_I
      15. NEXT_O
      16. NEXT_C_O
      17. NEXT_R
      18. NEXT_C_R
      19. ORD_I
      20. ORD_O
      21. ORD_R
      22. PREV_I
      23. PREV_C_I
      24. PREV_O
      25. PREV_C_O
      26. PREV_R
      27. PREV_C_R
    9. Range operations:
      1. INT_RNG_UB
      2. INT_RNG_LB
      3. REAL_RNG_UB
      4. REAL_RNG_LB
    10. String operations:
      1. STRCON
    11. I/O operations:
      1. WRITE_I
      2. WRITE_O
      3. WRITE_R
  13. Dummy instructions:
    1. DUMMY_EQU
    2. DUMMY_NEQ
    3. DUMMY_AND
    4. DUMMY_OR
    5. DUMMY_STRCON
    6. DUMMY_WRITE
    7. DUMMY_SIZE
    8. DUMMY_SET_ADD
    9. DUMMY_SET_RMV
    10. DUMMY_BELONGS
    11. DUMMY_ORD
    12. DUMMY_FIRST
    13. DUMMY_LAST
    14. DUMMY_NEXT
    15. DUMMY_NEXT_C
    16. DUMMY_PREV
    17. DUMMY_PREV_C


next up previous contents
Next: The error manager Up: main Previous: Non-negative numbers   Contents
Hassan Ait Kaci 2002-05-26