QSMM assembler programs are the means of:
The use of assembler programs relies heavily on instruction meta-classes, instruction classes, and instruction class sets registered for a multinode model. The name of an instruction meta-class and the text parameters of an instruction class derived from the instruction meta-class identify assembler instructions belonging to this instruction class in assembler programs. Such assembler instructions fall into the category of user instructions with custom names. The other two categories of assembler instructions are built-in and mixed-type instructions with standard names.
A handle of
qsmm_prg_t type refers to a memory representation of an assembler program.
This memory representation is convertible to an assembler program text and vice versa.
Information on assembler instructions is accessible by their indices in the memory representation.
Disassembling a node is converting its state model to an assembler program. Assembling a node is converting an assembler program to a probability profile for the state model of this node. A special mode of assembling a node is storing its assembler program as a template for a subsequent disassembling. In this case, a learned disassembled program is a template assembler program with learned probabilities replacing profile probabilities specified in the template assembler program.
An assembler program can contain probability variables along with their initial values specifying profile probabilities.
A probability variable can be a controlled probability variable or an output probability variable.
The instruction class set of a node specifies a set of allowed names of controlled probability variables.
Changing the value of a controlled probability variable of a node results in changing one or more profile probabilities for the state model of this node.
Output probability variables are the means of fetching specific probabilities from a learned state model of a node.
Output probabilities arrays hand over learned probabilities for the
case branches of
choice instruction blocks.
Cloning a probability profile is helpful if multiple nodes have the same probability profile. It is faster to clone a probability profile from a node to other nodes than to assemble all those nodes using the same assembler program. A special cloning mode is deferred cloning a probability profile. This mode can decrease memory consumption by a multinode model.
Unloading the probability profile of a node additionally clears the learned state model of this node and breaks its correspondence with a node providing a source probability profile cloned in deferred mode.
The assembler preprocessor can preprocess an assembler program text before parsing it. The preprocessor provides capabilities for including other assembler source files in a preprocessed source file, defining and expanding basic macros, and generating unique location labels to produce a correct assembler program when expanding the same macro multiple times.
|• Basic Datatypes for Assembler Programs|
|• Assembler Program Syntax|
|• Assembler Instructions|
|• Disassembling a Node|
|• Inspecting an Assembler Program|
|• Printing an Assembler Program|
|• Parsing an Assembler Program|
|• Loading a Parsed Program into a Node|
|• Using Probability Variables|
|• Cloning the Probability Profile|
|• Memory Efficient Cloning the Probability Profile|
|• Unloading the Probability Profile|
|• Using the Assembler Preprocessor|
|• Example of Working with an Assembler Program|