disassemble

 

 

Overview

The disassemble function disassembles the Lambda {anLambda} into a string representing its Virtual Machine instructions, modifiers, and arguments. The disassemble function has optional arguments {start}, and {end} that specify the disassembly should begin and end from the specified displacement line numbers. The displacements are virtual machine displacements NOT source line numbers.

The optional argument {src:} specifies that the source statements should be displayed in before the Virtual Machine instructions.

The optional argument {short:} specifies that the source statements should be displayed in short format.

The optional argument {srcOnly:} specifies that ONLY the SOURCE statements should be displayed.

The disassemble function also operates in cooperation with the debug function. For correct operation, the target Analytic Information Server Lambda must have been compiled with the debugger mode on. The disassemble function will display the source and generated Virtual Machine instructions for any Lambda compiled with debug mode on. The {start} and {end} arguments, shown in these commands, are those generated from the disassemble function.

Usage

The disassemble function returns the Virtual Machine Lambda instructions, modifiers, and arguments and/or source statements.

 

Syntax


Expression:

(disassemble anLambda start end src: short: srcOnly:)


Arguments Name Type Description
Argument:anLambdaLambda The Lambda to be disassembled.
Argument:startInteger A starting displacement.
Argument:endInteger An ending displacement.
Argument:src:Symbol Optional argument. If present, the source statements will be displayed in front of the Virtual Machine instructions
Argument:short:Symbol Optional argument. If present, the disassembly will be displayed in short format.
Argument:srcOnly:Symbol Optional argument. If present, the source statements will be displayed only, NOT the Virtual Machine Instructions

Returns:

A string containing the virtual machine instructions with the source string (optional) of the Lambda argument.



 

Examples

Here are a number of links to Lambda coding examples which contain this instruction in various use cases.

 

Argument Types

Here are the links to the data types of the function arguments.

Lambda Boolean Symbol String

Here are also a number of links to functions having arguments with any of these data types.

++ += /= *=
-- -= abortTransaction addMethod
appendWriteln append apply argCount
argFetch attachLibrarian badd balance
bcompareEQ bcompareGE bcompareGT bcompareLE
bcompareLT bcompareNE bdiv beginTransaction
binaryInsert binaryNand binaryNor binaryNot
binaryNxor binarySearch bitwiseAnd bitwiseNand
bitwiseNor bitwiseNot bitwiseNxor bitwiseOr
bitwiseShiftLeft bitwiseShiftRight bitwiseXor bmod
bmul boolean callcc ccompareEQ
ccompareGE ccompareGT ccompareLE ccompareLT
ccompareNE cdr character checkPointTransaction
class clean clear closeLog
code commitTransaction compareEQ compareGE
compareGT compareLE compareLT compareNE
compare comparison compile compress
cons copy count date
day days360 debugBrowsableProcs debugDetective
debugEval debug defchild defclass
define(macro) define defmacro defmethod
deforphan defriend defun delete
detachLibrarian dimension disassemble display
downcase encode evalInSyncLocalContext eval
exportCsv exportSbf exportTab fdisplay
fileClose fileCopy fileDir fileDisplay
fileEraseDir fileErase fileExists fileMakeDir
fileOpen fileReadAll fileReadRecord fileRead
fileSizeOf fileWriteAll fileWrite filewriteln
findBlock find gc getGlobalValue
getSymbolTable globalBinding hashString hour
icompareEQ icompareGE icompareGT icompareLE
icompareLT icompareNE importCsv importSbf
importTab insert inside inspect
integer isAtom isBitVector isBoolean
isBound isByteVector isCharAlphabetic isCharAlphanumeric
isCharLowercase isCharName isCharNumeric isCharUppercase
isCharWhitespace isChar isCharacter isClass
isComplex isDate isDictionary isDirectory
isEqual isError isEven isExact
isFloatVector isIdentical isImmediate isInexact
isInside isIntegerVector isInteger isLambda
isMatrix isMember isMoney isNegative
isNull isNumberMatrix isNumberVector isNumber
isObjectVector isObject isOdd isPair
isPcodeVector isPositive isString isStructure
isSymbol isText isTransaction isType
isVector isZero julian lambda
left length lisp list
loadModule loadWorkspace lock logConsole
macroReplace makeLambda makeQuotedList makeQuotedSymbol
member methodsOf mid minute
money month morph myself
ncompareEQ ncompareGE ncompareGT ncompareLE
ncompareLT ncompareNE new number
offset onError openLog pair
parent parse pointer proplist
proprecord putprop qt quit
refLibrarian ref remProp remove
rename replace rept reset
right run saveImmediate saveModule
saveObject saveRepository saveWorkspace second
send setBlock setCar setCdr
setLastCdr set setf setq
sizeof sort sql stringCiEQ
stringCiGE stringCiGT stringCiLE stringCiLT
stringCiNE stringFill stringToBVector stringToVector
string submit substitute substringCiEQ
substringCiGE substringCiGT substringCiLE substringCiLT
substringCiNE substringEQ substringFill substringGE
substringGT substringLE substringLT substringNE
substring super svmRegression symbolToTypeCode
symbol systemCheck system text
time trim type uniqueInsert
unlock upcase vectorFill version
writelg writeln year

Analytic Information Server (AIS)

AIS Component Systems

  • Smartbase Engine
  • QT C++ Libraries
  • MySQL Relational Database
  • AIS Lisp Libraries
  • Rapid Analytic Demo IDE