List of Instructions of DeathTalk
See DeathTalk on centerclause.com for the big picture.
- dict://deathtalk/article
- dict://deathtalk/command
- dict://deathtalk/contract
- dict://deathtalk/debug
- dict://deathtalk/execution
- dict://deathtalk/jack
- dict://deathtalk/massive
- dict://deathtalk/rhythm
- dict://deathtalk/type
- dict://deathtalk/value
- resource://deathtalk/annotation
- resource://deathtalk/system
An instruction may require static or runtime data which is either Parameter, Perimeter or Diameter. A parameter is required in advanced. A perimeter is static which in XML is either an attribute or a pure TextNode. A diameter is generated by inferiors.
Rhythm introduces continuity of first order by requiring specific hierarchies of instructions. This holds dependent data together and increases readability.
DeathTalk is not a product it is a presentation. Exceptions are not documented.
The DeathTalk source comes with a folder "resource/dtx" that contains a basic example of each instruction apart from exe:extend Applications with rhythm are included.
General perimeters as attributes are read for every node.
Namespace | Name | Description |
---|
exe | name | A name that is refered to at execution to find a node. |
debug | name | A name that is put out at debugging. |
exe | rhythm | Enables or disables rhythm with "true" or "false". |
Keywords that skip instructions are not supported, which includes goto, continue, break, return. Such operations only control a single execution and thus do not determined a divided execution. Adjust conditions accordingly.
name: | attach | rhythm: | ARTICLE_OPERATOR | -> | ARTICLE | -> | VALUE |
|
law: | power(SECTION) | arity: | infinite |
Parameters | | type | description |
| |
article | from register |
Takes an article from register and attaches that article to the current stretch as if it is a classical scope before execution of inferior nodes. The article is detached after execution of inferior nodes and put back on register. This allows for more convenient editing. An article may be attached to several stretches in this way. The instruction fails if another article is already attached to the current stretch such that scopes nested in one stretch are not supported.
Write protection is a matter of a higher programming language. A basic write-protection is available with jack:const.
############
name: | attachNew | rhythm: | ARTICLE_OPERATOR | -> | ARTICLE | -> | VALUE |
|
law: | power(SECTION) | arity: | infinite |
Creates a new article and attaches that article to the current stretch as if it is a classical scope before execution of inferior nodes. The article is detached after execution of inferior nodes and placed on register. This allows for more convenient editing. The instruction fails if another article is already attached to the current stretch such that scopes nested in one stretch are not supported.
############
name: | bind | rhythm: |
|
law: | series[LITERAL,VALUE] | arity: | ignore |
Parameters | | type | description |
| |
article | attached to current stretch |
Diameters | | type | description |
| |
string | unique name |
| |
finite | some value |
Reads a name and a value. Binds the value by this name to the attached article. The Value remains in register for further operations which is a mere design decision. Remove a remaining Value with expression. This is a convenient operation that implies a given Article. See articleBindAs for an explicit operation.
############
name: | join | rhythm: | ARTICLE_JOIN_TYPE | -> | COMMAND | -> | SECTION | -> | PART |
|
law: | series[ARTICLE,TYPE] | arity: | ignore |
Diameters | | type | description |
| |
article | from register |
| |
type | from register |
Takes an article and a type from register. Joins the article with the type. Similar to a classical instance, though, all members are dynamic. A previous type is overwritten.
############
name: | new | rhythm: | ARTICLE_CONSTANT | -> | ARTICLE | -> | VALUE |
|
law: | series[] | arity: | ignore |
Puts a new empty Article in register.
############
name: | referArray | rhythm: | REFERENCE_ARRAY_DIRECT | -> | REFERENCE_ARRAY | -> | ARRAY | -> | VALUE |
|
law: | series[LITERAL] | arity: | ignore |
Parameters | | type | description |
| |
article | attached to current stretch |
Diameters | | type | description |
| |
string | unique name |
Reads a string from Register. Takes a reference by that string as name from the attached Article. Puts the type-safed reference in Register. This is a convenient operation that implies an Article attached to the current Outsource as parameter.
############
name: | referInt | rhythm: | REFERENCE_INT_DIRECT | -> | REFERENCE_INT | -> | INT | -> | NUMERAL | -> | VALUE |
|
law: | series[LITERAL] | arity: | ignore |
Parameters | | type | description |
| |
article | attached to current stretch |
Diameters | | type | description |
| |
string | unique name |
Reads a string from Register. Takes a reference by that string as name from the attached Article. Puts the type-safed reference in Register. This is a convenient operation that implies an Article attached to the current Outsource as parameter.
############
name: | referOutsource | rhythm: | REFERENCE_OUTSOURCE_STATIC | -> | REFERENCE_OUTSOURCE | -> | OUTSOURCE | -> | VALUE |
|
Parameters | | type | description |
| |
article | attached to current stretch |
Diameters | | type | description |
| |
string | unique name |
Reads a string from Register. Takes a reference by that string as name from the attached Article. Puts the type-safed reference in Register. This is a convenient operation that implies an Article attached to the current Outsource as parameter.
############
name: | referReal | rhythm: | REFERENCE_REAL_DIRECT | -> | REFERENCE_REAL | -> | REAL | -> | NUMERAL | -> | VALUE |
|
law: | series[LITERAL] | arity: | ignore |
Parameters | | type | description |
| |
article | attached to current stretch |
Diameters | | type | description |
| |
string | unique name |
Reads a string from Register. Takes a reference by that string as name from the attached Article. Puts the type-safed reference in Register. This is a convenient operation that implies an Article attached to the current Outsource as parameter.
############
name: | referString | rhythm: | REFERENCE_LITERAL_DIRECT | -> | REFERENCE_LITERAL | -> | LITERAL | -> | VALUE |
|
law: | series[LITERAL] | arity: | ignore |
Parameters | | type | description |
| |
article | attached to current stretch |
Diameters | | type | description |
| |
string | unique name |
Reads a string from Register. Takes a reference by that string as name from the attached Article. Puts the type-safed reference in Register. This is a convenient operation that implies an Article attached to the current Outsource as parameter.
############
name: | this | rhythm: | ARTICLE_THIS | -> | ARTICLE | -> | VALUE |
|
law: | series[] | arity: | ignore |
Parameters | | type | description |
| |
article | attached to current stretch |
Places a reference to the article that is attached to the current stretch on register. Fails in case that no article is attached.
############
name: | unbind | rhythm: |
|
law: | series[LITERAL] | arity: | ignore |
Read a name from register. Unbind a value by that name from the Article that is supposed to be attached to the current Outsource. Put the unbound value in register. Remove a remaining Value with expression. This is a convenient implicit operation. See articleUnbind for an explicit operation.
############
name: | expression | rhythm: |
|
law: | power(VALUE) | arity: | infinite |
An expression as logic is a not self-ending hierarchy of operations and operands. Therefore this word expression is a command that takes the remaining value from register.
############
name: | println | rhythm: |
|
law: | power(VALUE) | arity: | one |
Prints a single line to Console.
There is no support to print a non-breaking string since that is useless in massive multitasking. Build line with concat.
############
name: | sleepCycle100ms | rhythm: |
|
law: | power(VALUE) | arity: | one |
Takes an int from register that tells the number of 100ms to sleep for and puts currentThread to sleep accordingly.
A sleeping Thread states a problem in a race of Instructions and in exception handling. Therefore a Thread may only sleep for 100ms at a time. An according loop is implemented in Work.
############
name: | bind | rhythm: |
|
law: | series[LITERAL,VALUE] | arity: | ignore |
Parameters | | type | description |
| |
contract | current value in work |
Diameters | | type | description |
| |
string | a valid name |
| |
finite | arbitrary |
Takes a reference to a value after execution of all inferiors and binds it to the Contract of current Work. The Value remains in register for further operations which is a mere design decision. Remove a remaining Value with cmd:expression.
############
name: | bindTop | rhythm: |
|
law: | series[LITERAL] | arity: | ignore |
Takes a reference to a Value before execution of all inferiors and binds it to the Contract of current Work. This is a common case with values spilled by routines. This is a rare case of instruction where evaluation takes place in reverse order. The Value remains in register for further operations which is a mere design decision. Remove a remaining Value with expression.
############
name: | further | rhythm: |
|
law: | power(SECTION) | arity: | infinite |
Perimeters | required | namespace | name | description |
attribute | no | | access | private|protected|public|N |
Begin a nested contract before execution of inferiors. Proceed execution within this new contract. End that contract after execution of inferiors.
Access to the new contract is public by default. An access of private allows references only from within the same contract. An access of protected also allows references from nearest descended contracts. An access of a N allows references from descended contracts of up to and including that depth. Thus protected equals a depth of 1.
############
name: | referArticle | rhythm: | REFERENCE_ARTICLE_DIRECT | -> | REFERENCE_ARTICLE | -> | ARTICLE | -> | VALUE |
|
law: | series[LITERAL] | arity: | ignore |
Perimeters | required | namespace | name | description |
attribute | no | dict://deathtalk/contract | super | parent|N |
Take a name from register. Read the height from attribute super. The default height is zero which is the same Contract. The parental height is one. Put a reference to a value of given name from Contract of given height in register. The type of article is tested as safety.
############
name: | referInt | rhythm: | REFERENCE_INT_DIRECT | -> | REFERENCE_INT | -> | INT | -> | NUMERAL | -> | VALUE |
|
law: | series[LITERAL] | arity: | ignore |
Perimeters | required | namespace | name | description |
attribute | no | dict://deathtalk/contract | super | parent|N |
Take a name from register. Read the height from attribute super. The default height is zero which is the same Contract. The parental height is one. Put a reference to a value of given name from Contract of given height in register. The type of int is tested as safety.
############
name: | referOutsource | rhythm: | REFERENCE_OUTSOURCE_STATIC | -> | REFERENCE_OUTSOURCE | -> | OUTSOURCE | -> | VALUE |
|
Perimeters | required | namespace | name | description |
attribute | no | dict://deathtalk/contract | super | parent|N |
Take a name from register. Read the height from attribute super. The default height is zero which is the same Contract. The parental height is one. Put a reference to a value of given name from Contract of given height in register. The type of outsource is tested as safety.
############
name: | referReal | rhythm: | REFERENCE_REAL_DIRECT | -> | REFERENCE_REAL | -> | REAL | -> | NUMERAL | -> | VALUE |
|
law: | series[LITERAL] | arity: | ignore |
Perimeters | required | namespace | name | description |
attribute | no | dict://deathtalk/contract | super | parent|N |
Take a name from register. Read the height from attribute super. The default height is zero which is the same Contract. The parental height is one. Put a reference to a value of given name from Contract of given height in register. The type of real is tested as safety.
############
name: | referString | rhythm: | REFERENCE_LITERAL_DIRECT | -> | REFERENCE_LITERAL | -> | LITERAL | -> | VALUE |
|
law: | series[LITERAL] | arity: | ignore |
Perimeters | required | namespace | name | description |
attribute | no | dict://deathtalk/contract | super | parent|N |
Take a name from register. Read the height from attribute super. The default height is zero which is the same Contract. The parental height is one. Put a reference to a value of given name from Contract of given height in register. The type of string is tested as safety.
############
name: | unbind | rhythm: |
|
law: | series[LITERAL] | arity: | ignore |
Diameters | | type | description |
| |
string | unique name to value |
Read a name from register. Unbind a value by that name from current Contract and put the unbound value in register.
############
name: | stretchSelfId | rhythm: | INT_CONSTANT | -> | INT | -> | NUMERAL | -> | VALUE |
|
law: | series[] | arity: | ignore |
Pushes the id of self of Stretch of current Work as int onto register for debugging purposes.
############
name: | stretchSelfIdString | rhythm: | LITERAL_CONSTANT | -> | LITERAL | -> | VALUE |
|
law: | series[] | arity: | ignore |
Pushes the id of self of Stretch of current Work as string onto register for debugging purposes.
############
name: | tellGoods | rhythm: |
|
law: | power(VALUE) | arity: | zero |
Perimeters | required | namespace | name | description |
attribute | no | | label | arbitrary |
Tells Goods of current Work on console for debugging purpose. A label may be provided to find output in stream.
############
name: | typePath | rhythm: | LITERAL_CONSTANT | -> | LITERAL | -> | VALUE |
|
law: | series[] | arity: | ignore |
Pushes the absolute path of type of current Work onto register for debugging purposes.
############
name: | workName | rhythm: | LITERAL_CONSTANT | -> | LITERAL | -> | VALUE |
|
law: | series[] | arity: | ignore |
Parameters | | type | description |
| |
string | value set in current work |
Pushes a name or short description of current Work in register for debugging purposes.
############
name: | workNumber | rhythm: | INT_CONSTANT | -> | INT | -> | NUMERAL | -> | VALUE |
|
law: | series[] | arity: | ignore |
Parameters | | type | description |
| |
int | number of current work |
Pushes the running number of current Work onto register for debugging purposes.
############
name: | and | rhythm: | INFINITE_OPERATOR | -> | INFINITE | -> | VALUE |
|
law: | power(INFINITE) | arity: | two |
Diameters | | type | description |
| |
infinite | left value from hold |
| |
infinite | right value from hold |
Takes two infinite values from hold. Applies the AND operation. Puts the result on hold.
massive:and is an alternative implementation with concurrent execution.
############
name: | deathTalk | rhythm: |
|
law: | power(PART) | arity: | infinite |
Perimeters | required | namespace | name | description |
attribute | yes | xmlns | dict://deathtalk/execution | Part of Dictionary |
attribute | no | xmlns | dict://deathtalk/value | Part of Dictionary |
attribute | no | xmlns | dict://deathtalk/command | Part of Dictionary |
attribute | no | xmlns | resource://deathtalk/annotation | Part of Dictionary |
attribute | no | xmlns | resource://deathtalk/system | Part of Dictionary |
attribute | no | xmlns | dict://deathtalk/debug | Part of Dictionary |
attribute | no | xmlns | dict://deathtalk/article | Part of Dictionary |
attribute | no | xmlns | dict://deathtalk/type | Part of Dictionary |
attribute | no | xmlns | dict://deathtalk/contract | Part of Dictionary |
attribute | no | xmlns | dict://deathtalk/rhythm | Part of Dictionary |
attribute | no | xmlns | dict://deathtalk/jack | Part of Dictionary |
attribute | no | xmlns | dict://deathtalk/massive | Part of Dictionary |
attribute | no | dict://deathtalk/execution | capacity | maximum number of simultaneous threads |
attribute | no | dict://deathtalk/execution | rhythm | boolean to disable rhythm |
attribute | no | dict://deathtalk/debug | greet | boolean to enable greeting |
attribute | no | | name | name of application |
attribute | no | dict://deathtalk/contract | initial | access right to initial contract |
Root element of an DeathTalk XML.
############
name: | divide | rhythm: |
|
law: | power(SECTION) | arity: | infinite |
Perimeters | required | namespace | name | description |
attribute | no | dict://deathtalk/execution | name | label that identifies this node |
Divides execution. Each direct inferior node runs in its own work.
An optional label allows for referring to this node.
############
name: | exitOne | rhythm: |
|
law: | power(VALUE) | arity: | zero |
Executes System.exit(1).
############
name: | extend | rhythm: |
|
law: | power(PART) | arity: | infinite |
Parameters | | type | description |
| |
string | path to file |
Reads a string vom register as filename, reads file and extends the leaf node with according instructions. Returns the first inferior if any such that the extension is executed immediately. See extension on rhythm.
############
name: | externIndex | rhythm: | VOID_EXE_EXTERN_INDEX | -> | VOID |
|
law: | series[] | arity: | ignore |
Parameters | | type | description |
| |
int | index of insource |
Takes an int as parameter. Determines the insource by that index of the calling routine. Executes that insource. Values spill over works.
Requires according routine as environment. Fails if insource does not exist.
############
name: | externName | rhythm: | VOID_EXE_EXTERN_NAME | -> | VOID |
|
law: | series[] | arity: | ignore |
Parameters | | type | description |
| |
string | name of insource |
Takes a string as parameter. Determines the insource by that name of the calling routine. Executes that insource. Values spill over works.
Requires according routine as environment. Fails if insource does not exist.
############
name: | externSize | rhythm: | INT_CONSTANT | -> | INT | -> | NUMERAL | -> | VALUE |
|
law: | series[] | arity: | ignore |
Determines the number of insources of the calling routine. Puts an int as that number on register. Requires according routine as environment.
############
name: | ifThen | rhythm: | IF_THEN | -> | CONTROL | -> | SECTION | -> | PART |
|
law: | series[INFINITE,SECTION] | arity: | ignore |
Diameters | | type | description |
| |
infinite | to be produced by first inferior |
Executes first direct inferior node. Reads an infinity value from hold. If that value is infinite then executes second direct inferior node.
Nests allow for more decisions.
The number of direct inferior nodes has to be two. exe:superior allows for grouping nodes.
############
name: | ifThenElse | rhythm: | IF_THEN_ELSE | -> | CONTROL | -> | SECTION | -> | PART |
|
law: | series[INFINITE,SECTION,SECTION] | arity: | ignore |
Diameters | | type | description |
| |
infinite | to be produced by first inferior |
Executes first direct inferior node. Reads an infinity value from hold. If that value is infinite then executes second direct inferior node else executes third direct inferior node.
Nests allow for more decisions.
The number of direct inferior nodes has to be three. exe:superior allows for grouping nodes.
############
name: | infinity | rhythm: | INFINITE_CONSTANT | -> | INFINITE | -> | VALUE |
|
law: | series[] | arity: | ignore |
Perimeters | required | namespace | name | description |
attribute | no | | value | value of infinity as boolean |
Reads a perimeter from XML attribute. Builds infinity with Boolean.parseBoolean. Puts infinity value on hold. Java notation and exceptions apply.
############
name: | not | rhythm: | INFINITE_OPERATOR | -> | INFINITE | -> | VALUE |
|
law: | power(INFINITE) | arity: | one |
Diameters | | type | description |
| |
infinite | left value from hold |
| |
infinite | right value from hold |
Takes an infinite value from hold. Applies the NOT operation. Puts the result on hold. This produces a new value.
############
name: | number | rhythm: | INT_CONSTANT | -> | INT | -> | NUMERAL | -> | VALUE |
|
law: | series[] | arity: | ignore |
Perimeters | required | namespace | name | description |
attribute | yes | exe | name | label of a superior divisible node |
Takes a perimeter as name of a superior divisible node. Determines the unique number of the according work that leads to the current node. Puts that number as int on register.
############
name: | or | rhythm: | INFINITE_OPERATOR | -> | INFINITE | -> | VALUE |
|
law: | power(INFINITE) | arity: | two |
Diameters | | type | description |
| |
infinite | left value from hold |
| |
infinite | right value from hold |
Takes two infinite values from hold. Applies the OR operation. Puts the result on hold.
massive:or is an alternative implementation with concurrent execution.
############
Is a direct inferior of switch. Requires one direct inferior. The direct inferior is executed if all other direct inferiors of superior switch are no valid cases.
############
name: | println | rhythm: |
|
law: | power(VALUE) | arity: | one |
Diameters | | type | description |
| |
infinite | from hold |
Takes an infinity value from hold. Prints a description of that value.
############
name: | serial | rhythm: |
|
law: | power(SECTION) | arity: | infinite |
Sets the behaviour of execution from default concurrent to serial if not already set so.
############
name: | superior | rhythm: |
|
law: | power(SECTION) | arity: | infinite |
Contains inferiors. Either for a control that requires precisely one inferior or for improvent of readability.
############
name: | switch | rhythm: |
|
law: | power(SECTION) | arity: | infinite |
Parameters | | type | description |
| |
finite | to test against |
Takes a parameter to test against. Tests every direct inferior against that parameter. Executes the first valid direct inferior and returns.
############
name: | times | rhythm: |
|
law: | power(SECTION) | arity: | infinite |
Parameters | | type | description |
| |
int | factor |
Takes int as parameter. Multiplies execution by that parameter with separate works. Executes direct inferiors that many times.
############
name: | utter | rhythm: |
|
law: | series[VALUE] | arity: | ignore |
Diameters | | type | description |
| |
infinite | from hold |
Takes an infinity value from hold. Generates a string that describes the value. Puts that string on register.
############
Is a direct inferior of switch. Requires two direct inferiors. The first direct inferior is tested against. The second direct inferior is executed upon success.
############
name: | whileDo | rhythm: | WHILE_DO | -> | CONTROL | -> | SECTION | -> | PART |
|
law: | series[INFINITE,SECTION] | arity: | ignore |
Diameters | | type | description |
| |
infinite | to be produced by first inferior |
Executes first direct inferior node. Reads an infinity value from hold. If that value is infinite then executes second direct inferior node and then repeats execution.
The number of direct inferior nodes has to be two. exe:superior allows for grouping nodes.
############
name: | const | rhythm: |
|
law: | power(VALUE) | arity: | one |
Diameters | | type | description |
| |
finite | any |
Takes a finite value from register. Creates a const Jack for that value which prevents modifications. Puts Jack on register that behaves as a viewer.
Jacks are a matter of a higher programming language. A machine does not depend on Jacks. Therefore Jacks may not be fully implemented.
############
name: | add | rhythm: |
|
law: | power(VALUE) | arity: | two |
Diameters | | type | description |
| |
finite | operand |
| |
finite | operand |
Determines operands concurrently. Takes two finite values from register. Executes appropriate addition. Puts the result on register.
Only very few operators are implemented. value:add is an alternative serial operation.
############
name: | and | rhythm: | INFINITE_OPERATOR | -> | INFINITE | -> | VALUE |
|
law: | power(INFINITE) | arity: | two |
Diameters | | type | description |
| |
infinite | left value from hold |
| |
infinite | right value from hold |
Executes inferiors concurrently. Applies the AND operation. Takes infinite value from hold on return of an inferior. Returns if the result is determined and lets remaining run away. Puts the result on hold.
exe:and is an alternative implementation with serial execution.
############
name: | concat | rhythm: | LITERAL_OPERATOR | -> | LITERAL | -> | VALUE |
|
law: | power(LITERAL) | arity: | two |
Diameters | | type | description |
| |
finite | operand |
| |
finite | operand |
Executes inferiors concurrently. Takes two finite values from register. Executes appropriate concatenation. Puts the result on register.
Only very few operators are implemented. value:concat is an alternative serial operation.
############
name: | or | rhythm: | INFINITE_OPERATOR | -> | INFINITE | -> | VALUE |
|
law: | power(INFINITE) | arity: | two |
Diameters | | type | description |
| |
infinite | left value from hold |
| |
infinite | right value from hold |
Executes inferiors concurrently. Applies the OR operation. Takes infinite value from hold on return of an inferior. Returns if the result is determined and lets remaining run away. Puts the result on hold.
exe:and is an alternative implementation with serial execution.
############
name: | articleAccess | rhythm: | ARTICLE_ACCESS | -> | CONTROL | -> | SECTION | -> | PART |
|
law: | series[ARTICLE,ARTICLE_OPERATOR] | arity: | ignore |
Improves readability and allows for generation of Epilog.
############
name: | callName | rhythm: |
|
law: | series[LITERAL,ROUTINE] | arity: | ignore |
Improves readability and allows for generation of Epilog. The first inferior is supposed to be a name to a bound outsource.
############
name: | callValue | rhythm: |
|
law: | series[OUTSOURCE,ROUTINE] | arity: | ignore |
Improves readability and allows for generation of Epilog.
############
name: | extension | rhythm: | FILE_EXTENSION | -> | COMMAND | -> | SECTION | -> | PART |
|
law: | series[LITERAL,EXTENSION] | arity: | ignore |
Improves readability and allows for generation of Epilog. The string is supposedly a path to a file.
############
name: | externIndex | rhythm: | VOID_RHYTHM_EXTERN_INDEX | -> | VOID |
|
law: | series[INT,VOID_EXE_EXTERN_INDEX] | arity: | ignore |
Improves readability and allows for generation of Epilog. The first inferior is supposedly an index to an insource.
############
name: | externName | rhythm: | VOID_RHYTHM_EXTERN_NAME | -> | VOID |
|
law: | series[LITERAL,VOID_EXE_EXTERN_NAME] | arity: | ignore |
Improves readability and allows for generation of Epilog. The first inferior is supposedly a name to an insource.
############
name: | for | rhythm: | FOR | -> | CONTROL | -> | SECTION | -> | PART |
|
law: | series[INT,TIMES] | arity: | ignore |
Improves readability and allows for generation of Epilog. This only capsules exe:times. Only very few loops are supported anyway for simplicity of this presentation of normal computational logic.
############
name: | gettingArticle | rhythm: | SAFETY_ARTICLE_ROUTINE | -> | ARTICLE | -> | VALUE |
|
law: | series[VOID] | arity: | ignore |
Improves readability and allows for generation of Epilog. Casts void to article.
############
name: | gettingInt | rhythm: | SAFETY_INT_ROUTINE | -> | INT | -> | NUMERAL | -> | VALUE |
|
law: | series[VOID] | arity: | ignore |
Improves readability and allows for generation of Epilog. Casts void to int.
############
name: | gettingReal | rhythm: | SAFETY_REAL_ROUTINE | -> | REAL | -> | NUMERAL | -> | VALUE |
|
law: | series[VOID] | arity: | ignore |
Improves readability and allows for generation of Epilog. Casts void to real.
############
name: | gettingString | rhythm: | SAFETY_LITERAL_ROUTINE | -> | LITERAL | -> | VALUE |
|
law: | series[VOID] | arity: | ignore |
Improves readability and allows for generation of Epilog. Casts void to string.
############
name: | havingArticle | rhythm: | TO_ARTICLE | -> | ARTICLE | -> | VALUE |
|
law: | series[VALUE] | arity: | ignore |
Improves readability and allows for generation of Epilog. Type saves an article.
############
name: | havingInt | rhythm: | TO_INT | -> | INT | -> | NUMERAL | -> | VALUE |
|
law: | series[VALUE] | arity: | ignore |
Improves readability and allows for generation of Epilog. Type saves an int.
############
name: | havingString | rhythm: | TO_LITERAL | -> | LITERAL | -> | VALUE |
|
law: | series[VALUE] | arity: | ignore |
Improves readability and allows for generation of Epilog. Type saves a string.
############
name: | insource | rhythm: |
|
law: | series[VOID] | arity: | ignore |
Improves readability and allows for generation of Epilog. Casts void to Rhythm.SECTION. Behaves like a value in Epilog.
############
name: | let | rhythm: |
|
law: | series[VALUE] | arity: | ignore |
Improves readability and allows for generation of Epilog. Casts a value to a Rhythm.VOID.
############
name: | rereferArray | rhythm: | REFERENCE_ARRAY_INDIRECT | -> | REFERENCE_ARRAY | -> | ARRAY | -> | VALUE |
|
law: | series[VALUE,IMPRESSION] | arity: | ignore |
Diameters | | type | description |
| |
array | value |
Improves readability of indirect access and allows for generation of Epilog.
############
name: | rereferInt | rhythm: | REFERENCE_INT_INDIRECT | -> | REFERENCE_INT | -> | INT | -> | NUMERAL | -> | VALUE |
|
law: | series[VALUE,IMPRESSION] | arity: | ignore |
Diameters | | type | description |
| |
int | value |
Improves readability of indirect access and allows for generation of Epilog.
############
name: | rereferOutsource | rhythm: | REFERENCE_OUTSOURCE_DYNAMIC | -> | REFERENCE_OUTSOURCE | -> | OUTSOURCE | -> | VALUE |
|
law: | series[VALUE,IMPRESSION] | arity: | ignore |
Diameters | | type | description |
| |
outsource | value |
Improves readability of indirect access and allows for generation of Epilog.
############
name: | rereferReal | rhythm: | REFERENCE_REAL_INDIRECT | -> | REFERENCE_REAL | -> | REAL | -> | NUMERAL | -> | VALUE |
|
law: | series[VALUE,IMPRESSION] | arity: | ignore |
Diameters | | type | description |
| |
real | value |
Improves readability of indirect access and allows for generation of Epilog.
############
name: | rereferString | rhythm: | REFERENCE_LITERAL_INDIRECT | -> | REFERENCE_LITERAL | -> | LITERAL | -> | VALUE |
|
law: | series[VALUE,IMPRESSION] | arity: | ignore |
Diameters | | type | description |
| |
string | value |
Improves readability of indirect access and allows for generation of Epilog.
############
name: | top | rhythm: |
|
law: | power(VALUE) | arity: | zero |
Improves readability and allows for generation of Epilog. States that a value is already available on top of register. Which turns a parameter into a diameter.
############
name: | type | rhythm: | REFERENCE_TYPE_INDIRECT | -> | REFERENCE_TYPE | -> | TYPE | -> | VALUE |
|
law: | series[TYPE,TYPE_IMPRESSION] | arity: | ignore |
Improves readability and allows for generation of Epilog.
############
name: | typeScroll | rhythm: |
|
law: | power(REFERENCE_TYPE_DIRECT) | arity: | infinite |
Improves readability and allows for generation of Epilog.
############
name: | unvoid | rhythm: |
|
law: | series[VOID] | arity: | ignore |
Improves readability and allows for generation of Epilog. Casts void to Rhythm.SECTION. But behaves like void in Epilog.
############
name: | bindOutsource | rhythm: | BIND_OUTSOURCE | -> | COMMAND | -> | SECTION | -> | PART |
|
law: | series[LITERAL,OUTSOURCE] | arity: | ignore |
Parameters | | type | description |
| |
type | current type |
Diameters | | type | description |
| |
string | name |
| |
outsource | value |
Takes a string as key from register. Takes an outsource as value from register. Binds outsource by that name to current type.
############
name: | change | rhythm: |
|
law: | power(VALUE) | arity: | one |
Diameters | | type | description |
| |
type | value |
Takes type from register. Changes current type of work to that type.
############
name: | close | rhythm: |
|
law: | power(VALUE) | arity: | zero |
Parameters | | type | description |
| |
type | current value of work |
Takes the current type of work. Dereferences its superior type. Makes that superior type the current type of work. Fails on root type.
############
name: | current | rhythm: | TYPE_CONSTANT | -> | TYPE | -> | VALUE |
|
law: | series[] | arity: | ignore |
Parameters | | type | description |
| |
type | current value in work |
Takes a reference of the current type in current work. Puts that reference on register.
A type does not store its name.
############
name: | joinAddArticleArticle | rhythm: | TYPE_JOIN_BINARY_ARTICLE_ARTICLE | -> | TYPE_JOIN_BINARY | -> | COMMAND | -> | SECTION | -> | PART |
|
law: | series[TYPE,OUTSOURCE] | arity: | ignore |
Parameters | | type | description |
| |
type | of left operand |
Diameters | | type | description |
| |
type | of right operand |
| |
outsource | operator |
Acts on current type of work. Takes another type from register. Takes an outsource from register. Binds outsource as add-operator with current type as left and other type as right operand. Operator is executed implicitly with value:add or massive:add.
############
name: | joinMultiplyArticleReal | rhythm: | TYPE_JOIN_ARTICLE_STANDARD | -> | TYPE_JOIN_BINARY | -> | COMMAND | -> | SECTION | -> | PART |
|
law: | series[OUTSOURCE] | arity: | ignore |
Parameters | | type | description |
| |
type | of left operand |
Acts on current type of work. Takes outsource from register. Binds outsource as multiply-operator to current type. Operator is invoked implicitly with value:multiply.
############
name: | joinMultiplyRealArticle | rhythm: | TYPE_JOIN_STANDARD_ARTICLE | -> | TYPE_JOIN_BINARY | -> | COMMAND | -> | SECTION | -> | PART |
|
law: | series[OUTSOURCE] | arity: | ignore |
Parameters | | type | description |
| |
type | of right operand |
Diameters | | type | description |
| |
outsource | operator |
Acts on current type of work. Takes outsource from register. Binds outsource as multiply-operator to current type. Operator is invoked implicitly with value:multiply.
############
name: | joinUtter | rhythm: | TYPE_JOIN_UNARY_ARTICLE | -> | COMMAND | -> | SECTION | -> | PART |
|
law: | series[OUTSOURCE] | arity: | ignore |
Parameters | | type | description |
| |
type | of operand |
Diameters | | type | description |
| |
outsource | operator |
Acts on current type of work. Takes outsource from register. Binds outsource as utter-operator to current type.
############
name: | new | rhythm: | REFERENCE_TYPE_DIRECT_VARIABLE | -> | REFERENCE_TYPE_DIRECT | -> | REFERENCE_TYPE | -> | TYPE | -> | VALUE |
|
law: | series[LITERAL] | arity: | ignore |
Diameters | | type | description |
| |
string | name |
Takes a string as name from register. Creates type by that name as direct inferior of current type. Puts new type on register.
############
name: | open | rhythm: |
|
law: | power(VALUE) | arity: | one |
Diameters | | type | description |
| |
string | name |
Takes a string as name from register. Selects direct inferior type from current type by that name. Sets current type to that type.
############
name: | refer | rhythm: | REFERENCE_TYPE_DIRECT_VARIABLE | -> | REFERENCE_TYPE_DIRECT | -> | REFERENCE_TYPE | -> | TYPE | -> | VALUE |
|
law: | series[LITERAL] | arity: | ignore |
Diameters | | type | description |
| |
string | name |
Takes string as name from register. Takes a reference to the nested type of that name from the current type. Puts that reference on register.
############
name: | referOutsource | rhythm: | REFERENCE_OUTSOURCE_STATIC_RELATIVE | -> | REFERENCE_OUTSOURCE_STATIC | -> | REFERENCE_OUTSOURCE | -> | OUTSOURCE | -> | VALUE |
|
law: | series[LITERAL] | arity: | ignore |
Diameters | | type | description |
| |
string | name |
Takes string as name from register. Selects outsource by that name from current type. Puts reference to outsource on register.
############
name: | root | rhythm: | TYPE_CONSTANT | -> | TYPE | -> | VALUE |
|
law: | series[] | arity: | ignore |
Puts reference to root type on register.
############
name: | routine | rhythm: |
|
law: | power(SECTION) | arity: | infinite |
Parameters | | type | description |
| |
string | name |
Takes a string as name from register. Selects outsource from current type by that name. Executes that outsource. All direct inferior nodes are insources.
############
name: | select | rhythm: | REFERENCE_TYPE_DIRECT_VARIABLE | -> | REFERENCE_TYPE_DIRECT | -> | REFERENCE_TYPE | -> | TYPE | -> | VALUE |
|
law: | series[LITERAL] | arity: | ignore |
Diameters | | type | description |
| |
string | name of type |
Takes type from register. Takes name as string from register. Selects nested type by that name from type. Puts selected type on register.
############
name: | selectSuper | rhythm: | REFERENCE_TYPE_DIRECT_CONSTANT | -> | REFERENCE_TYPE_DIRECT | -> | REFERENCE_TYPE | -> | TYPE | -> | VALUE |
|
law: | series[] | arity: | ignore |
Selects direct superior type of current type as current type of work. Fails on root type.
############
name: | there | rhythm: |
|
law: | power(VALUE) | arity: | zero |
Parameters | | type | description |
| |
type | value |
Takes type from register as parameter. Sets current type.
############
name: | add | rhythm: |
|
law: | power(VALUE) | arity: | two |
Diameters | | type | description |
| |
finite | operand |
| |
finite | operand |
Takes two finite values from register. Executes appropriate addition. Puts the result on register.
Only very few operators are implemented. massive:add is an alternative concurrent operation.
############
name: | addAssign | rhythm: | NUMERAL_OPERATOR | -> | NUMERAL | -> | VALUE |
|
law: | power(NUMERAL) | arity: | two |
Diameters | | type | description |
| |
finite | operand |
| |
finite | operand |
Takes two finite values from register. Executes appropriate addition. Assigns result to first operand. Puts first operand back on register.
Only very few operators are implemented.
############
name: | arrayAt | rhythm: |
|
law: | series[INT] | arity: | ignore |
Parameters | | type | description |
| |
impression | like a path |
Diameters | | type | description |
| |
int | index |
Takes a parameter as impression. Takes a diameter as index. Expects an array contained in impression. Dereferences array at index. Impression is mutated accordingly. Puts impression back on register.
############
name: | arrayBindAt | rhythm: |
|
law: | series[ARRAY,INT,VALUE] | arity: | ignore |
Diameters | | type | description |
| |
array | array |
| |
int | index |
| |
finite | finite |
Takes an array from register. Takes an int as index from register. Takes a finite value from register. Binds value at index in array. Puts value back on register.
############
name: | arrayDeclaration | rhythm: | ARRAY_DECLARATION | -> | ARRAY | -> | VALUE |
|
law: | power(ARRAY_DIMENSION) | arity: | infinite |
Diameters | | type | description |
| |
dimension | sizes |
Creates a stack-value that contains a new array on register before execution of inferiors. Inferiors add dimensions to contained array. Puts fully declared array on register after execution of inferiors.
############
name: | arrayDefinition | rhythm: | ARRAY_DEFINITION | -> | ARRAY | -> | VALUE |
|
law: | power(ARRAY_ELEMENT) | arity: | infinite |
Diameters | | type | description |
| |
element | items |
Puts a special value on register that contains a new array before execution of inferiors. Inferiors add elements to array. Puts newly defined array on register after execution of inferiors.
############
name: | arrayDesign | rhythm: | ARRAY_DESIGN | -> | ARRAY | -> | VALUE |
|
law: | series[ARRAY,VALUE] | arity: | ignore |
Diameters | | type | description |
| |
array | nested array |
| |
finite | any |
Takes an array of any dimensions from register. Takes a finite value from register. Assigns a copy of that value to each leaf of the array. This supposes a copy constructor outsource for articles and a copy operator for arrays which are not implemented for simplicity of the presentation.
############
name: | arrayElement | rhythm: |
|
law: | series[VALUE] | arity: | ignore |
Parameters | | type | description |
| |
arrayDefinition | array |
Diameters | | type | description |
| |
finite | value |
Takes a special array definition value value:arrayDefinition from register. Takes a finite value from register. Appends value to array contained in special value. Puts special array definition value back on register.
############
name: | articleAt | rhythm: |
|
law: | series[LITERAL] | arity: | ignore |
Parameters | | type | description |
| |
impression | like a path |
Diameters | | type | description |
| |
string | key |
Takes a parameter as impression from register. Takes a string as key from register. Expects an article contained in impression. Dereferences article with key. Mutates impression accordingly. Puts impression back on register.
############
name: | articleBindAs | rhythm: | VALUE_ARTICLE_BIND_AS | -> | VALUE |
|
law: | series[ARTICLE,LITERAL,VALUE] | arity: | ignore |
Diameters | | type | description |
| |
article | scope |
| |
string | key |
| |
finite | value |
Binds value by key in article directly. Leaves value on register.
############
name: | articleUnbind | rhythm: | VALUE_ARTICLE_UNBIND | -> | VALUE |
|
law: | series[ARTICLE,LITERAL] | arity: | ignore |
Diameters | | type | description |
| |
article | scope |
| |
string | key |
Takes article from register. Takes string as key from register. Unbinds value by that key from article. Puts unbound value on register.
############
name: | assign | rhythm: |
|
law: | power(VALUE) | arity: | two |
Diameters | | type | description |
| |
finite | operand |
| |
finite | operand |
Takes two finite values from register. Executes appropriate assignment from second to first operand. Puts the first operand back on register.
Only very few operators are implemented.
############
name: | concat | rhythm: | LITERAL_OPERATOR | -> | LITERAL | -> | VALUE |
|
law: | power(LITERAL) | arity: | two |
Diameters | | type | description |
| |
finite | operand |
| |
finite | operand |
Takes two finite values from register. Executes appropriate concatenation. Puts the result on register.
Only very few operators are implemented. massive:concat is an alternative concurrent operation.
############
name: | dimension | rhythm: |
|
law: | series[INT] | arity: | ignore |
Diameters | | type | description |
| |
arrayDeclaration | array |
| |
int | size |
Takes an ArrayDeclarationFiniteValue from register. Takes an int from register. Increases the dimension of the array inside ArrayDeclarationFiniteValue. Puts back the ArrayDeclarationFiniteValue. All arrays are nested arrays in DeathTalk and as such graphs.
############
name: | divide | rhythm: |
|
law: | power(VALUE) | arity: | two |
Diameters | | type | description |
| |
finite | operand |
| |
finite | operand |
Takes two finite values from register. Executes appropriate division. Puts the result on register.
Only very few operators are implemented.
############
name: | divideAssign | rhythm: |
|
law: | power(VALUE) | arity: | two |
Diameters | | type | description |
| |
finite | operand |
| |
finite | operand |
Takes two finite values from register. Executes appropriate division. Assigns result to first operand. Puts first operand back on register.
Only very few operators are implemented.
############
name: | duplicate | rhythm: |
|
law: | power(VALUE) | arity: | zero |
Parameters | | type | description |
| |
finite | original |
Takes and leaves a reference to a finite value on register. Duplicates value. Puts copy on register. Meant only as work-around. Deep cloning is a matter of a higher programming language.
############
name: | equal | rhythm: | LOGICAL_OPERATOR | -> | INFINITE | -> | VALUE |
|
law: | power(VALUE) | arity: | two |
Diameters | | type | description |
| |
finite | operand |
| |
finite | operand |
Takes two finite values from register. Executes appropriate equal. Puts the result on hold.
Only very few operators are implemented.
############
name: | exchange | rhythm: |
|
law: | power(VALUE) | arity: | two |
Diameters | | type | description |
| |
finite | first operand |
| |
finite | second operand |
Takes to finite values from register. Sets and gets value thread-safe which is only meaningful on a reference to a binding.
############
name: | greaterEqual | rhythm: | LOGICAL_OPERATOR | -> | INFINITE | -> | VALUE |
|
law: | power(VALUE) | arity: | two |
Diameters | | type | description |
| |
finite | operand |
| |
finite | operand |
Takes two finite values from register. Executes appropriate greaterEqual. Puts the result on hold.
Only very few operators are implemented.
############
name: | greaterThan | rhythm: | LOGICAL_OPERATOR | -> | INFINITE | -> | VALUE |
|
law: | power(VALUE) | arity: | two |
Diameters | | type | description |
| |
finite | operand |
| |
finite | operand |
Takes two finite values from register. Executes appropriate greaterThan. Puts the result on hold.
Only very few operators are implemented.
############
name: | impression | rhythm: |
|
law: | power(MUTATION) | arity: | infinite |
Parameters | | type | description |
| |
finite | to be dereferenced |
Takes a finite value from register before execution of inferiors. Puts that value into a special impression value. Puts that special impression value on register. Inferiors dereference value contained in impression like value:arrayAt and value:articleAt. Takes impression after execution of all inferiors from register. Puts a reference that is now contained in impression on register.
############
name: | increment | rhythm: |
|
law: | power(VALUE) | arity: | one |
Diameters | | type | description |
| |
finite | operand |
Increments finite value on top of register.
############
name: | int | rhythm: | INT_CONSTANT | -> | INT | -> | NUMERAL | -> | VALUE |
|
law: | series[] | arity: | ignore |
Perimeters | required | namespace | name | description |
textnode | yes | | | string of int in Java notation |
Takes an XML textnode. Parses that text with Javas Integer.parseInt. Puts the int value on register. Java notation and exceptions apply.
############
name: | multiply | rhythm: |
|
law: | power(VALUE) | arity: | two |
Diameters | | type | description |
| |
finite | operand |
| |
finite | operand |
Takes two finite values from register. Executes appropriate multiplication. Puts result on register.
Only very few operators are implemented.
############
name: | multiplyAssign | rhythm: |
|
law: | power(VALUE) | arity: | two |
Diameters | | type | description |
| |
finite | operand |
| |
finite | operand |
Takes two finite values from register. Executes appropriate multiplication. Assigns result to first operand. Puts first operand back on register.
Only very few operators are implemented.
############
name: | null | rhythm: |
|
law: | series[] | arity: | ignore |
Puts a universal null on register.
############
name: | outsource | rhythm: | OUTSOURCE_DEFINITION | -> | OUTSOURCE | -> | VALUE |
|
law: | power(PART) | arity: | infinite |
Creates value that contains this node cycle. Puts value on register.
############
name: | real | rhythm: | REAL_CONSTANT | -> | REAL | -> | NUMERAL | -> | VALUE |
|
law: | series[] | arity: | ignore |
Perimeters | required | namespace | name | description |
textnode | yes | | | string of float in Java notation |
Takes an XML textnode. Parses that text with Javas Float.parseFloat. Puts the float value as real on register. Java notation and exceptions apply.
############
name: | repeat | rhythm: |
|
law: | power(VALUE) | arity: | zero |
Parameters | | type | description |
| |
finite | any |
Repeats the reference that is on top of register.
############
name: | routine | rhythm: |
|
law: | power(SECTION) | arity: | infinite |
Parameters | | type | description |
| |
outsource | to be called |
Takes a reference to an outsource from register. Executes that outsource bidirectionally.
This is a leaf node at execution. Every direct inferior node in source code is an insource that may be called back by index or by a given name.
############
name: | smallerEqual | rhythm: | LOGICAL_OPERATOR | -> | INFINITE | -> | VALUE |
|
law: | power(VALUE) | arity: | two |
Diameters | | type | description |
| |
finite | operand |
| |
finite | operand |
Takes two finite values from register. Executes appropriate smallerEqual aka lessEqual. Puts the result on hold.
Only very few operators are implemented.
############
name: | smallerThan | rhythm: | LOGICAL_OPERATOR | -> | INFINITE | -> | VALUE |
|
law: | power(VALUE) | arity: | two |
Diameters | | type | description |
| |
finite | operand |
| |
finite | operand |
Takes two finite values from register. Executes appropriate smallerThan aka lessThan. Puts the result on hold.
Only very few operators are implemented.
############
name: | string | rhythm: | LITERAL_CONSTANT | -> | LITERAL | -> | VALUE |
|
law: | series[] | arity: | ignore |
Perimeters | required | namespace | name | description |
textnode | yes | | | string in Java notation |
Takes an XML textnode. Puts the string value on register. Java notation and exceptions apply.
############
name: | subtract | rhythm: | NUMERAL_OPERATOR | -> | NUMERAL | -> | VALUE |
|
law: | power(NUMERAL) | arity: | two |
Diameters | | type | description |
| |
finite | operand |
| |
finite | operand |
Takes two finite values from register. Executes appropriate subtraction. Puts the result on register.
Only very few operators are implemented.
############
name: | toInt | rhythm: | TO_INT | -> | INT | -> | NUMERAL | -> | VALUE |
|
law: | series[VALUE] | arity: | ignore |
Diameters | | type | description |
| |
finite | any |
Takes a diameter from register. Calls toInt of that diameter. Puts the result on register.
Fails if an int can neither be cast nor parsed.
############
name: | typeReferOutsource | rhythm: | REFERENCE_OUTSOURCE_STATIC_ABSOLUTE | -> | REFERENCE_OUTSOURCE_STATIC | -> | REFERENCE_OUTSOURCE | -> | OUTSOURCE | -> | VALUE |
|
law: | series[TYPE,LITERAL] | arity: | ignore |
Diameters | | type | description |
| |
type | of |
| |
string | key |
Takes type from register. Takes string as key from register. Selects outsource by that key from type. Puts reference to outsource on register.
############
name: | utter | rhythm: |
|
law: | series[VALUE] | arity: | ignore |
Diameters | | type | description |
| |
finite | any |
Gives a literal representation of a value. Which usually is only descriptive and not definitive and thus the command is called utter.
############
Perimeters | required | namespace | name | description |
attribute | no | | on | down,right,up |
A primitive breakpoint at which a thread waits if run in debug mode. Execution stops. The focus is not set to the according position. The thread continues if interrupted with for example the debugger.
breakpoint stops only if at least one valid direction (down|right|up) is stated with attribute on. Separate directions with |.
############
DTX comments are collected by DtxReader, added to the NodeStuff of the next instruction and put out to the generated source. Comments cannot contain further XML elements.XML comments are not stored.
############
Used for documentation.
############
Used for documentation.
############
Used for documentation.
############
name: | random | rhythm: | REAL_OPERATOR | -> | REAL | -> | NUMERAL | -> | VALUE |
|
law: | power(REAL) | arity: | zero |
Pushes a random real number between 0 and, not including, 1 on the stack.
############