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 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 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]
|
||||
\tt
|
||||
@@ -310,13 +310,15 @@ MOVE & A B & R(A) := R(B) \\
|
||||
MOVECONST & A B & R(A) := K(B) \\
|
||||
GETUPVALUE & A B & R(A) := U(B) \\
|
||||
SETUPVALUE & A B & U(B) := R(A) \\
|
||||
GETSTATE & A & R(A) := *SPtr \\
|
||||
SETSTATE & A & *Sptr := R(A) \\
|
||||
SHIFTSTATE & sAx & Sptr += sAx \\
|
||||
GETSTATE & A & R(A) := SPtr[SPos] \\
|
||||
SETSTATE & A & Sptr[SPos] := R(A) \\
|
||||
SHIFTSTATE & sAx & SPos += sAx \\
|
||||
JMP & sAx & PC +=sAx \\
|
||||
JMPIFNEG & A sBx & if (R(A)<0) then PC += sBx \\
|
||||
CALL & A B C & \\
|
||||
CALLCLS & 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 & 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) \\
|
||||
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\\
|
||||
|
||||
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