[ library(asm) | Reference Manual | Alphabetic Index ]
disasm(+PredSpec, ?WAMCode, +Module)
Disassemble an existing predicate PredSpec in the module Module to its WAM
abstract machine representation WAMCode.
- +PredSpec
- Atom/Integer.
- ?WAMCode
- Variable or a list of WAM instructions in the right format.
- +Module
- Atom
Description
Unifies WAMCode with the WAM instructions representing the abstract
machine code for the predicate specified by PredSpec (in Name/Arity
form) in module Module. The WAM code is in the form of a list, with each
element representing one WAM instruction. The format of the WAMCode is
the same as that used by asm/2,3 and pasm/4 to assemble a
predicate. Thus, the WAM code generated by disasm/2,3 can be used to
load the predicate into ECLiPSe without having to compile the source
Prolog form.
The library asm must be loaded to use diasm/3.
Currently disasm/3 cannot disassemble dynamic predicates.
If PredSpec is dynamic.
Fail Conditions
Fails if WAMCode is initially instantiated and does not unify with the WAM code generated by asm/1 for the predicate, or if PredSpec is dynamic.
Resatisfiable
No.
Exceptions
- (5) type error
- PredSpec or Module not in correct form.
- (60) referring to an undefined procedure
- PredSpec does not exist in module Module.
- (80) not a module
- Module is not an existing module.
See Also
disasm / 2, asm / 2, asm / 3, pasm / 4, wam / 1