writtttttttttting
This commit is contained in:
14
src/main.tex
14
src/main.tex
@@ -296,11 +296,11 @@ Instructions in \lambdammm VM are 32bit tagged-union data that has up to 3 opera
|
|||||||
|
|
||||||
The VM of \lambdammm is a register machine like the Lua VM(after version 5, although the VM has no real register but the register number simply means the offset index of call stack from the base pointer at the point of execution of the VM). The first operand of most instructions is the register number in which to store the result of the calculation.
|
The VM of \lambdammm is a register machine like the Lua VM(after version 5, although the VM has no real register but the register number simply means the offset index of call stack from the base pointer at the point of execution of the VM). The first operand of most instructions is the register number in which to store the result of the calculation.
|
||||||
|
|
||||||
|
|
||||||
The list of instructions is shown in Fig.\ref{fig:instruction} (basic arithmetic operations are partly omitted). The notation for the instruction follows the Lua VM paper \cite[p.13]{ierusalimschy2005}. From left to right, the name of operation, a list of operands, and pseudo-code of the operation. When using each of the three operands as unsigned 8 bits, they are denoted as \texttt{A B C}. When used with a signed integer, prefix \texttt{s} is added, and when the two operand fields are used as one 16 bits, an suffix \texttt{x} is added. For example, when B and C are merged and treated as signed 16 bits, they are denoted as \texttt{sBx}.
|
The list of instructions is shown in Fig.\ref{fig:instruction} (basic arithmetic operations are partly omitted). The notation for the instruction follows the Lua VM paper \cite[p.13]{ierusalimschy2005}. From left to right, the name of operation, a list of operands, and pseudo-code of the operation. When using each of the three operands as unsigned 8 bits, they are denoted as \texttt{A B C}. When used with a signed integer, prefix \texttt{s} is added, and when the two operand fields are used as one 16 bits, an suffix \texttt{x} is added. For example, when B and C are merged and treated as signed 16 bits, they are denoted as \texttt{sBx}.
|
||||||
|
|
||||||
In pseudo-code describing an functionality, \texttt{R(A)} means that data is moved in and out through the register (call stack) according to the numerical value of the operand \texttt{A}. \texttt{K(A)} means that it retrieves the \texttt{A}-th number in the static variable field of the compiled programm. \texttt{U(A)} means that referring \texttt{A}-th Upvalue of the current function.
|
In pseudo-code describing an functionality, \texttt{R(A)} means that data is moved in and out through the register (call stack) according to the numerical value of the operand \texttt{A}. \texttt{K(A)} means that it retrieves the \texttt{A}-th number in the static variable field of the compiled programm. \texttt{U(A)} means that referring \texttt{A}-th Upvalue of the current function.
|
||||||
|
|
||||||
|
In addition to Lua's Upvalue operation, 3 operations related to internal state variables over time, \texttt{GETSTATE}, \texttt{SETSTATE}, \texttt{SHIFTSTATE} are added.
|
||||||
|
|
||||||
\begin{figure*}[ht]
|
\begin{figure*}[ht]
|
||||||
\tt
|
\tt
|
||||||
@@ -310,13 +310,15 @@ MOVE & A B & R(A) := R(B) \\
|
|||||||
MOVECONST & A B & R(A) := K(B) \\
|
MOVECONST & A B & R(A) := K(B) \\
|
||||||
GETUPVALUE & A B & R(A) := U(B) \\
|
GETUPVALUE & A B & R(A) := U(B) \\
|
||||||
SETUPVALUE & A B & U(B) := R(A) \\
|
SETUPVALUE & A B & U(B) := R(A) \\
|
||||||
GETSTATE & A & R(A) := *SPtr \\
|
GETSTATE & A & R(A) := SPtr[SPos] \\
|
||||||
SETSTATE & A & *Sptr := R(A) \\
|
SETSTATE & A & Sptr[SPos] := R(A) \\
|
||||||
SHIFTSTATE & sAx & Sptr += sAx \\
|
SHIFTSTATE & sAx & SPos += sAx \\
|
||||||
JMP & sAx & PC +=sAx \\
|
JMP & sAx & PC +=sAx \\
|
||||||
JMPIFNEG & A sBx & if (R(A)<0) then PC += sBx \\
|
JMPIFNEG & A sBx & if (R(A)<0) then PC += sBx \\
|
||||||
CALL & A B C & \\
|
CALL & A B C & R(A), ... ,R(A+C-2) := program.functions[R(A)](R(A+1),...,R(A+B-1)) \\
|
||||||
CALLCLS & A B C & \\
|
CALLCLS & A B C & Sptr := vm.closures[R(A)].Sptr; \\
|
||||||
|
\ & \ & R(A), ... ,R(A+C-2) := vm.closures[R(A)].fnproto(R(A+1),...,R(A+B-1)); \\
|
||||||
|
\ & \ & Sptr := global\_sptr \\
|
||||||
RETURN & A B & return R(A), R(A+1)...,R(A+B-2) \\
|
RETURN & A B & return R(A), R(A+1)...,R(A+B-2) \\
|
||||||
ADDF & A B C & R(A) := R(B) as float + R(C) as float\\
|
ADDF & A B C & R(A) := R(B) as float + R(C) as float\\
|
||||||
SUBF & A B C & R(A) := R(B) as float - R(C) as float\\
|
SUBF & A B C & R(A) := R(B) as float - R(C) as float\\
|
||||||
|
|||||||
631
src/vmmodel.svg
Normal file
631
src/vmmodel.svg
Normal file
@@ -0,0 +1,631 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="210mm"
|
||||||
|
height="297mm"
|
||||||
|
viewBox="0 0 210 297"
|
||||||
|
version="1.1"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="vmmodel.svg"
|
||||||
|
inkscape:version="1.3 (0e150ed, 2023-07-21)"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
inkscape:zoom="0.93529095"
|
||||||
|
inkscape:cx="252.3279"
|
||||||
|
inkscape:cy="219.18313"
|
||||||
|
inkscape:window-width="1440"
|
||||||
|
inkscape:window-height="783"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="25"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="g29" />
|
||||||
|
<defs
|
||||||
|
id="defs1">
|
||||||
|
<rect
|
||||||
|
x="346.97484"
|
||||||
|
y="153.98464"
|
||||||
|
width="29.6908"
|
||||||
|
height="20.084953"
|
||||||
|
id="rect32" />
|
||||||
|
<rect
|
||||||
|
x="37.223607"
|
||||||
|
y="23.781749"
|
||||||
|
width="113.7388"
|
||||||
|
height="18.611803"
|
||||||
|
id="rect2" />
|
||||||
|
<rect
|
||||||
|
x="37.223607"
|
||||||
|
y="23.781749"
|
||||||
|
width="113.7388"
|
||||||
|
height="18.611803"
|
||||||
|
id="rect4" />
|
||||||
|
<rect
|
||||||
|
x="37.223607"
|
||||||
|
y="23.781749"
|
||||||
|
width="113.7388"
|
||||||
|
height="18.611803"
|
||||||
|
id="rect6" />
|
||||||
|
<rect
|
||||||
|
x="37.223607"
|
||||||
|
y="23.781749"
|
||||||
|
width="113.7388"
|
||||||
|
height="18.611803"
|
||||||
|
id="rect12" />
|
||||||
|
<rect
|
||||||
|
x="37.223607"
|
||||||
|
y="23.781749"
|
||||||
|
width="113.7388"
|
||||||
|
height="18.611803"
|
||||||
|
id="rect13" />
|
||||||
|
<rect
|
||||||
|
x="37.223607"
|
||||||
|
y="23.781749"
|
||||||
|
width="113.7388"
|
||||||
|
height="18.611803"
|
||||||
|
id="rect14" />
|
||||||
|
<rect
|
||||||
|
x="37.223607"
|
||||||
|
y="23.781749"
|
||||||
|
width="113.7388"
|
||||||
|
height="18.611803"
|
||||||
|
id="rect16" />
|
||||||
|
<rect
|
||||||
|
x="37.223607"
|
||||||
|
y="23.781749"
|
||||||
|
width="126.40656"
|
||||||
|
height="19.466474"
|
||||||
|
id="rect18" />
|
||||||
|
<rect
|
||||||
|
x="37.223607"
|
||||||
|
y="23.781749"
|
||||||
|
width="118.86683"
|
||||||
|
height="19.466474"
|
||||||
|
id="rect19" />
|
||||||
|
<rect
|
||||||
|
x="37.223607"
|
||||||
|
y="23.781749"
|
||||||
|
width="113.7388"
|
||||||
|
height="18.611803"
|
||||||
|
id="rect24" />
|
||||||
|
<rect
|
||||||
|
x="37.223607"
|
||||||
|
y="23.781749"
|
||||||
|
width="126.40656"
|
||||||
|
height="19.466474"
|
||||||
|
id="rect31" />
|
||||||
|
<rect
|
||||||
|
x="37.223606"
|
||||||
|
y="23.78175"
|
||||||
|
width="113.7388"
|
||||||
|
height="18.611803"
|
||||||
|
id="rect14-1" />
|
||||||
|
<rect
|
||||||
|
x="37.223607"
|
||||||
|
y="23.781749"
|
||||||
|
width="113.7388"
|
||||||
|
height="18.611803"
|
||||||
|
id="rect41" />
|
||||||
|
<rect
|
||||||
|
x="37.223607"
|
||||||
|
y="23.781749"
|
||||||
|
width="113.7388"
|
||||||
|
height="18.611803"
|
||||||
|
id="rect43" />
|
||||||
|
<rect
|
||||||
|
x="37.223607"
|
||||||
|
y="23.781749"
|
||||||
|
width="113.7388"
|
||||||
|
height="18.611803"
|
||||||
|
id="rect45" />
|
||||||
|
<rect
|
||||||
|
x="37.223607"
|
||||||
|
y="23.781749"
|
||||||
|
width="113.7388"
|
||||||
|
height="18.611803"
|
||||||
|
id="rect47" />
|
||||||
|
<rect
|
||||||
|
x="37.223607"
|
||||||
|
y="23.781749"
|
||||||
|
width="113.7388"
|
||||||
|
height="18.611803"
|
||||||
|
id="rect49" />
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1">
|
||||||
|
<g
|
||||||
|
id="g29">
|
||||||
|
<rect
|
||||||
|
style="fill-opacity:0;stroke:#000000;stroke-width:0.181273;stroke-opacity:1"
|
||||||
|
id="rect1"
|
||||||
|
width="78.900948"
|
||||||
|
height="98.852478"
|
||||||
|
x="11.984065"
|
||||||
|
y="14.528127" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,2.3570541,3.8569977)"
|
||||||
|
id="text1"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;word-spacing:0px;white-space:pre;shape-inside:url(#rect2);fill:#000000;fill-opacity:1;fill-rule:nonzero"><tspan
|
||||||
|
x="37.222656"
|
||||||
|
y="36.34345"
|
||||||
|
id="tspan2">Virtual Machine</tspan></text>
|
||||||
|
<g
|
||||||
|
id="g28">
|
||||||
|
<rect
|
||||||
|
style="fill-opacity:0;stroke:#000000;stroke-width:0.238248;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect3"
|
||||||
|
width="35.489555"
|
||||||
|
height="6.4485202"
|
||||||
|
x="13.816225"
|
||||||
|
y="16.740997" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,5.9738008,11.661556)"
|
||||||
|
id="text3"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;word-spacing:0px;white-space:pre;shape-inside:url(#rect4);fill:#000000;fill-opacity:1;fill-rule:nonzero"><tspan
|
||||||
|
x="37.222656"
|
||||||
|
y="36.34345"
|
||||||
|
id="tspan3">Program Counter</tspan></text>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g26">
|
||||||
|
<rect
|
||||||
|
style="fill-opacity:0;stroke:#000000;stroke-width:0.238248;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect10"
|
||||||
|
width="35.489555"
|
||||||
|
height="6.4485202"
|
||||||
|
x="13.816225"
|
||||||
|
y="74.628067" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,5.9738008,69.374792)"
|
||||||
|
id="text11"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;word-spacing:0px;white-space:pre;shape-inside:url(#rect12);fill:#000000;fill-opacity:1;fill-rule:nonzero"><tspan
|
||||||
|
x="37.222656"
|
||||||
|
y="36.34345"
|
||||||
|
id="tspan4">State_Ptr</tspan></text>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g27"
|
||||||
|
transform="translate(0,20.829203)">
|
||||||
|
<rect
|
||||||
|
style="fill-opacity:0;stroke:#000000;stroke-width:0.238248;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect11"
|
||||||
|
width="35.489555"
|
||||||
|
height="6.4485202"
|
||||||
|
x="13.816225"
|
||||||
|
y="83.841324" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,5.9738008,78.761885)"
|
||||||
|
id="text12"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;word-spacing:0px;white-space:pre;shape-inside:url(#rect13);fill:#000000;fill-opacity:1;fill-rule:nonzero"><tspan
|
||||||
|
x="37.222656"
|
||||||
|
y="36.34345"
|
||||||
|
id="tspan5">Audio Driver</tspan></text>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g25">
|
||||||
|
<rect
|
||||||
|
style="fill-opacity:0;stroke:#000000;stroke-width:0.264951;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect5"
|
||||||
|
width="35.236588"
|
||||||
|
height="49.041969"
|
||||||
|
x="14.029625"
|
||||||
|
y="23.997538" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,5.9738008,19.085404)"
|
||||||
|
id="text6"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;word-spacing:0px;white-space:pre;shape-inside:url(#rect6);fill:#000000;fill-opacity:1;fill-rule:nonzero"><tspan
|
||||||
|
x="37.222656"
|
||||||
|
y="36.34345"
|
||||||
|
id="tspan6">Call Stack</tspan></text>
|
||||||
|
<g
|
||||||
|
id="g7">
|
||||||
|
<rect
|
||||||
|
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke-width:0.1;stroke-dasharray:none;stroke:#000000;stroke-opacity:1"
|
||||||
|
id="rect7"
|
||||||
|
width="30.647167"
|
||||||
|
height="4.3781672"
|
||||||
|
x="16.180182"
|
||||||
|
y="30.266457" />
|
||||||
|
<use
|
||||||
|
x="0"
|
||||||
|
y="0"
|
||||||
|
xlink:href="#rect7"
|
||||||
|
id="use7"
|
||||||
|
transform="translate(0,5.01592)" />
|
||||||
|
<use
|
||||||
|
x="0"
|
||||||
|
y="0"
|
||||||
|
xlink:href="#rect7"
|
||||||
|
id="use8"
|
||||||
|
transform="translate(0,10.07562)" />
|
||||||
|
<use
|
||||||
|
x="0"
|
||||||
|
y="0"
|
||||||
|
xlink:href="#rect7"
|
||||||
|
id="use9"
|
||||||
|
transform="translate(-0.08389833,15.251516)" />
|
||||||
|
<use
|
||||||
|
x="0"
|
||||||
|
y="0"
|
||||||
|
xlink:href="#rect7"
|
||||||
|
id="use10"
|
||||||
|
transform="translate(-0.08389833,20.311216)" />
|
||||||
|
</g>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,6.1655345,50.913263)"
|
||||||
|
id="text13"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;word-spacing:0px;white-space:pre;shape-inside:url(#rect14);fill:#000000;fill-opacity:1;fill-rule:nonzero"
|
||||||
|
x="4.4466538"
|
||||||
|
y="0"><tspan
|
||||||
|
x="88.53279"
|
||||||
|
y="36.34345"
|
||||||
|
id="tspan7">...</tspan></text>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g40"
|
||||||
|
transform="translate(0,14.674112)">
|
||||||
|
<rect
|
||||||
|
style="fill-opacity:0;stroke:#000000;stroke-width:0.238248;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect40"
|
||||||
|
width="35.489555"
|
||||||
|
height="6.4485202"
|
||||||
|
x="13.816225"
|
||||||
|
y="74.628067" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,5.9738008,69.374792)"
|
||||||
|
id="text40"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;word-spacing:0px;white-space:pre;shape-inside:url(#rect41);fill:#000000;fill-opacity:1;fill-rule:nonzero"><tspan
|
||||||
|
x="37.222656"
|
||||||
|
y="36.34345"
|
||||||
|
id="tspan8">Global States</tspan></text>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g42"
|
||||||
|
transform="translate(0,14.796184)">
|
||||||
|
<rect
|
||||||
|
style="fill-opacity:0;stroke:#000000;stroke-width:0.238248;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect42"
|
||||||
|
width="35.489555"
|
||||||
|
height="6.389369"
|
||||||
|
x="13.816225"
|
||||||
|
y="82.236244" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,5.9738008,76.982966)"
|
||||||
|
id="text42"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;word-spacing:0px;white-space:pre;shape-inside:url(#rect43);fill:#000000;fill-opacity:1;fill-rule:nonzero"><tspan
|
||||||
|
x="37.222656"
|
||||||
|
y="36.34345"
|
||||||
|
id="tspan9">Closure Storage</tspan></text>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g44"
|
||||||
|
transform="translate(38.590832,22.070762)">
|
||||||
|
<rect
|
||||||
|
style="fill-opacity:0;stroke:#000000;stroke-width:0.238248;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect44"
|
||||||
|
width="35.489555"
|
||||||
|
height="23.929771"
|
||||||
|
x="13.816225"
|
||||||
|
y="64.695839" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,5.9738008,69.374792)"
|
||||||
|
id="text44"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;word-spacing:0px;white-space:pre;shape-inside:url(#rect45);fill:#000000;fill-opacity:1;fill-rule:nonzero"><tspan
|
||||||
|
x="37.222656"
|
||||||
|
y="36.34345"
|
||||||
|
id="tspan10">Closure Storage</tspan></text>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g46"
|
||||||
|
transform="translate(0,7.3328913)">
|
||||||
|
<rect
|
||||||
|
style="fill-opacity:0;stroke:#000000;stroke-width:0.238248;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect46"
|
||||||
|
width="35.489555"
|
||||||
|
height="6.4485202"
|
||||||
|
x="13.816225"
|
||||||
|
y="74.628067" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,5.9738008,69.374792)"
|
||||||
|
id="text46"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;word-spacing:0px;white-space:pre;shape-inside:url(#rect47);fill:#000000;fill-opacity:1;fill-rule:nonzero"><tspan
|
||||||
|
x="37.222656"
|
||||||
|
y="36.34345"
|
||||||
|
id="tspan11">State Position</tspan></text>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g48"
|
||||||
|
transform="translate(38.590832,-47.454835)">
|
||||||
|
<rect
|
||||||
|
style="fill-opacity:0;stroke:#000000;stroke-width:0.238248;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect48"
|
||||||
|
width="35.489555"
|
||||||
|
height="68.648582"
|
||||||
|
x="13.816225"
|
||||||
|
y="64.175438" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.265;stroke-dasharray:0.265, 0.265;stroke-dashoffset:0"
|
||||||
|
d="M 49.332461,89.337821 52.40263,16.73876"
|
||||||
|
id="path50"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.265;stroke-dasharray:0.265, 0.265;stroke-dashoffset:0"
|
||||||
|
d="M 49.284364,95.532054 52.418467,85.339121"
|
||||||
|
id="path51"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.265;stroke-dasharray:0.265, 0.265;stroke-dashoffset:0"
|
||||||
|
d="m 49.384886,103.57377 3.021213,7.14924"
|
||||||
|
id="path52"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.265;stroke-dasharray:0.265, 0.265;stroke-dashoffset:0"
|
||||||
|
d="m 49.357043,97.289527 3.047736,-10.50488"
|
||||||
|
id="path53"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g43"
|
||||||
|
transform="translate(49.050909)">
|
||||||
|
<rect
|
||||||
|
style="fill-opacity:0;stroke:#000000;stroke-width:0.161687;stroke-opacity:1"
|
||||||
|
id="rect15"
|
||||||
|
width="39.322144"
|
||||||
|
height="78.605812"
|
||||||
|
x="76.421799"
|
||||||
|
y="14.518333" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,67.030715,3.8569977)"
|
||||||
|
id="text15"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;word-spacing:0px;white-space:pre;shape-inside:url(#rect16);fill:#000000;fill-opacity:1;fill-rule:nonzero"><tspan
|
||||||
|
x="37.222656"
|
||||||
|
y="36.34345"
|
||||||
|
id="tspan12">Program</tspan></text>
|
||||||
|
<rect
|
||||||
|
style="fill-opacity:0;stroke:#000000;stroke-width:0.264951;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect17"
|
||||||
|
width="35.236588"
|
||||||
|
height="49.041969"
|
||||||
|
x="78.477158"
|
||||||
|
y="34.238575" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,69.978022,28.64669)"
|
||||||
|
id="text17"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;word-spacing:0px;white-space:pre;shape-inside:url(#rect18);fill:#000000;fill-opacity:1;fill-rule:nonzero"><tspan
|
||||||
|
x="37.222656"
|
||||||
|
y="36.34345"
|
||||||
|
id="tspan13">Function Prototype0</tspan></text>
|
||||||
|
<g
|
||||||
|
id="g30">
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,69.978022,10.259078)"
|
||||||
|
id="text18"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;word-spacing:0px;white-space:pre;shape-inside:url(#rect19);fill:#000000;fill-opacity:1;fill-rule:nonzero"><tspan
|
||||||
|
x="37.222656"
|
||||||
|
y="36.34345"
|
||||||
|
id="tspan14">Static Variables</tspan></text>
|
||||||
|
<rect
|
||||||
|
style="fill-opacity:0;stroke:#000000;stroke-width:0.157291;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect20"
|
||||||
|
width="35.344246"
|
||||||
|
height="17.231428"
|
||||||
|
x="78.644989"
|
||||||
|
y="16.009102" />
|
||||||
|
<g
|
||||||
|
id="g24"
|
||||||
|
transform="translate(64.723019,-9.7527837)">
|
||||||
|
<rect
|
||||||
|
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.1;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect21"
|
||||||
|
width="30.647167"
|
||||||
|
height="4.3781672"
|
||||||
|
x="16.180182"
|
||||||
|
y="30.266457" />
|
||||||
|
<use
|
||||||
|
x="0"
|
||||||
|
y="0"
|
||||||
|
xlink:href="#rect7"
|
||||||
|
id="use21"
|
||||||
|
transform="translate(0,5.01592)" />
|
||||||
|
</g>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,71.110208,22.09822)"
|
||||||
|
id="text24"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;word-spacing:0px;white-space:pre;shape-inside:url(#rect24);fill:#000000;fill-opacity:1;fill-rule:nonzero"
|
||||||
|
x="4.4466538"
|
||||||
|
y="0"><tspan
|
||||||
|
x="88.53279"
|
||||||
|
y="36.34345"
|
||||||
|
id="tspan15">...</tspan></text>
|
||||||
|
</g>
|
||||||
|
<rect
|
||||||
|
style="fill-opacity:0;stroke:#000000;stroke-width:0.104119;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect30"
|
||||||
|
width="35.397419"
|
||||||
|
height="7.5390997"
|
||||||
|
x="78.840042"
|
||||||
|
y="84.695305" />
|
||||||
|
<g
|
||||||
|
id="g7-3"
|
||||||
|
transform="translate(64.796386,10.163913)">
|
||||||
|
<g
|
||||||
|
id="g37">
|
||||||
|
<g
|
||||||
|
id="g33"
|
||||||
|
sodipodi:insensitive="true">
|
||||||
|
<rect
|
||||||
|
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.0498031;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect7-1"
|
||||||
|
width="7.5153742"
|
||||||
|
height="4.4283643"
|
||||||
|
x="16.155083"
|
||||||
|
y="30.241358"
|
||||||
|
inkscape:label="rect7-1" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52777px;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:nonzero"
|
||||||
|
x="84.64122"
|
||||||
|
y="43.899445"
|
||||||
|
id="text33"
|
||||||
|
transform="translate(-64.796386,-10.163913)"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan33"
|
||||||
|
style="fill:#000000;fill-opacity:1"
|
||||||
|
x="84.64122"
|
||||||
|
y="43.899445">OP</tspan></text>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g34"
|
||||||
|
transform="translate(7.5476246)">
|
||||||
|
<rect
|
||||||
|
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.0498031;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect33"
|
||||||
|
width="7.5153742"
|
||||||
|
height="4.4283643"
|
||||||
|
x="16.155083"
|
||||||
|
y="30.241358"
|
||||||
|
inkscape:label="rect7-1" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52777px;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:nonzero"
|
||||||
|
x="84.64122"
|
||||||
|
y="43.899445"
|
||||||
|
id="text34"
|
||||||
|
transform="translate(-64.796386,-10.163913)"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan34"
|
||||||
|
x="84.64122"
|
||||||
|
y="43.899445">A</tspan></text>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g35"
|
||||||
|
transform="translate(15.095249)">
|
||||||
|
<rect
|
||||||
|
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.0498031;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect34"
|
||||||
|
width="7.5153742"
|
||||||
|
height="4.4283643"
|
||||||
|
x="16.155083"
|
||||||
|
y="30.241358"
|
||||||
|
inkscape:label="rect7-1" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52777px;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:nonzero"
|
||||||
|
x="84.64122"
|
||||||
|
y="43.899445"
|
||||||
|
id="text35"
|
||||||
|
transform="translate(-64.796386,-10.163913)"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan35"
|
||||||
|
x="84.64122"
|
||||||
|
y="43.899445">B</tspan></text>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g36"
|
||||||
|
transform="translate(22.642874)">
|
||||||
|
<rect
|
||||||
|
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.0498031;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect35"
|
||||||
|
width="7.5153742"
|
||||||
|
height="4.4283643"
|
||||||
|
x="16.155083"
|
||||||
|
y="30.241358"
|
||||||
|
inkscape:label="rect7-1" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52777px;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;fill-rule:nonzero"
|
||||||
|
x="84.64122"
|
||||||
|
y="43.899445"
|
||||||
|
id="text36"
|
||||||
|
transform="translate(-64.796386,-10.163913)"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan36"
|
||||||
|
x="84.64122"
|
||||||
|
y="43.899445">C</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<use
|
||||||
|
x="0"
|
||||||
|
y="0"
|
||||||
|
xlink:href="#g37"
|
||||||
|
id="use37"
|
||||||
|
transform="translate(0,4.4756926)" />
|
||||||
|
<use
|
||||||
|
x="0"
|
||||||
|
y="0"
|
||||||
|
xlink:href="#g37"
|
||||||
|
id="use38"
|
||||||
|
transform="translate(0,8.9513852)" />
|
||||||
|
<use
|
||||||
|
x="0"
|
||||||
|
y="0"
|
||||||
|
xlink:href="#g37"
|
||||||
|
id="use39"
|
||||||
|
transform="translate(0,13.383989)" />
|
||||||
|
<use
|
||||||
|
x="0"
|
||||||
|
y="0"
|
||||||
|
xlink:href="#g37"
|
||||||
|
id="use40"
|
||||||
|
transform="translate(0,17.859682)" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g31">
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,71.779973,81.141678)"
|
||||||
|
id="text13-0"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;word-spacing:0px;white-space:pre;shape-inside:url(#rect14-1);fill:#000000;fill-opacity:1;fill-rule:nonzero"
|
||||||
|
x="4.4466538"
|
||||||
|
y="0"><tspan
|
||||||
|
x="88.53279"
|
||||||
|
y="36.34345"
|
||||||
|
id="tspan16">...</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,69.978022,79.183842)"
|
||||||
|
id="text30"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Helvetica Neue';-inkscape-font-specification:'Helvetica Neue, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;word-spacing:0px;white-space:pre;shape-inside:url(#rect31);fill:#000000;fill-opacity:1;fill-rule:nonzero"
|
||||||
|
sodipodi:insensitive="true"><tspan
|
||||||
|
x="37.222656"
|
||||||
|
y="36.34345"
|
||||||
|
id="tspan17">Function Prototype1</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="scale(0.26458333)"
|
||||||
|
id="text31"
|
||||||
|
style="fill:none;stroke-width:0.37795276;font-size:13.33329964px;-inkscape-font-specification:'Helvetica Neue, Normal';font-family:'Helvetica Neue';word-spacing:0px;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-dasharray:none;fill-rule:nonzero;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;white-space:pre;shape-inside:url(#rect32)" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 27 KiB |
Reference in New Issue
Block a user