valhallac

Compiler for set-theoretic programming language.
git clone git://git.knutsen.co/valhallac
Log | Files | Refs | README | LICENSE

valhalla_compiler_layout.svg (68861B)


1
2
3
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1171px" height="1120px" viewBox="-0.5 -0.5 1171 1120" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2020-04-11T12:56:41.241Z&quot; agent=&quot;5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4112.0 Safari/537.36&quot; etag=&quot;w-j6gdHpDYej5NxEsM1_&quot; version=&quot;12.9.11&quot; type=&quot;google&quot;&gt;&lt;diagram id=&quot;lDcHPcpqgxoEG1--uGtI&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="0" y="0" width="920" height="170" fill="none" stroke="#000000" stroke-dasharray="1 1" pointer-events="all"/><rect x="720" y="340" width="450" height="290" fill="none" stroke="#000000" stroke-dasharray="1 1" pointer-events="all"/><rect x="280" y="230" width="190" height="340" fill="none" stroke="#000000" stroke-dasharray="1 1" pointer-events="all"/><path d="M 370 320 L 370 363.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 370 368.88 L 366.5 361.88 L 370 363.63 L 373.5 361.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 346px; margin-left: 370px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Lexical Analysis</div></div></div></foreignObject><text x="370" y="349" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">Lexical Analysis</text></switch></g><rect x="310" y="260" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 290px; margin-left: 311px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Character Stream</div></div></div></foreignObject><text x="370" y="294" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Character Stream</text></switch></g><path d="M 370 430 L 370 473.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 370 478.88 L 366.5 471.88 L 370 473.63 L 373.5 471.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 456px; margin-left: 370px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Parsing</div></div></div></foreignObject><text x="370" y="459" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">Parsing</text></switch></g><rect x="310" y="370" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 400px; margin-left: 311px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Token Stream</div></div></div></foreignObject><text x="370" y="404" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Token Stream</text></switch></g><path d="M 370 540 L 370 613.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 370 618.88 L 366.5 611.88 L 370 613.63 L 373.5 611.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 590px; margin-left: 370px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Type Resolution</div></div></div></foreignObject><text x="370" y="593" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">Type Resolution</text></switch></g><rect x="310" y="480" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 510px; margin-left: 311px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Abstract Syntax Tree</div></div></div></foreignObject><text x="370" y="514" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Abstract Syntax Tree</text></switch></g><path d="M 430 650 L 526.63 650" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 531.88 650 L 524.88 653.5 L 526.63 650 L 524.88 646.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 650px; margin-left: 481px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Type<br />Propagation</div></div></div></foreignObject><text x="481" y="653" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">Type...</text></switch></g><rect x="310" y="620" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 650px; margin-left: 311px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Resolved Tree</div></div></div></foreignObject><text x="370" y="654" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Resolved Tree</text></switch></g><path d="M 593 620 L 593 546.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 593 541.12 L 596.5 548.12 L 593 546.37 L 589.5 548.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 580px; margin-left: 593px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Type<br />Inference</div></div></div></foreignObject><text x="593" y="583" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">Type...</text></switch></g><rect x="533" y="620" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 650px; margin-left: 534px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Expression Typed Tree</div></div></div></foreignObject><text x="593" y="654" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Expression Typed Tree</text></switch></g><path d="M 593 480 L 593 436.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 593 431.12 L 596.5 438.12 L 593 436.37 L 589.5 438.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 454px; margin-left: 593px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Type Checking</div></div></div></foreignObject><text x="593" y="458" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">Type Checking</text></switch></g><rect x="533" y="480" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 510px; margin-left: 534px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Fully Typed Tree</div></div></div></foreignObject><text x="593" y="514" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Fully Typed Tree</text></switch></g><path d="M 593 370 L 593 326.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 593 321.12 L 596.5 328.12 L 593 326.37 L 589.5 328.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 344px; margin-left: 593px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Optimisation/Simplification</div></div></div></foreignObject><text x="593" y="348" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">Optimisation/Simplification</text></switch></g><rect x="533" y="370" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 400px; margin-left: 534px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Correctly Typed Tree</div></div></div></foreignObject><text x="593" y="404" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Correctly Typed Tree</text></switch></g><path d="M 653 290 L 744.63 290" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 749.88 290 L 742.88 293.5 L 744.63 290 L 742.88 286.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 290px; margin-left: 702px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Decoration</div></div></div></foreignObject><text x="702" y="293" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">Decoration</text></switch></g><rect x="533" y="260" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 290px; margin-left: 534px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Simplified Tree</div></div></div></foreignObject><text x="593" y="294" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Simplified Tree</text></switch></g><path d="M 811 320 L 811 403.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 811 408.88 L 807.5 401.88 L 811 403.63 L 814.5 401.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 366px; margin-left: 811px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Emit Bytecode<br />for each branch, recursively</div></div></div></foreignObject><text x="811" y="369" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">Emit Bytecode...</text></switch></g><path d="M 871 290 L 983.63 290" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 988.88 290 L 981.88 293.5 L 983.63 290 L 981.88 286.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 290px; margin-left: 931px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Identify Static<br />Imports</div></div></div></foreignObject><text x="931" y="293" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">Identify Static...</text></switch></g><path d="M 811 260 L 811 116.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 811 111.12 L 814.5 118.12 L 811 116.37 L 807.5 118.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 150px; margin-left: 811px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #7D7D7D; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; "><font color="#000000">Identify explicit and implicit<br />constant expressions<br /></font></div></div></div></foreignObject><text x="811" y="153" fill="#7D7D7D" font-family="Helvetica" font-size="11px" text-anchor="middle">Identify explicit and implicit...</text></switch></g><rect x="751" y="260" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 290px; margin-left: 752px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Decorated/Annotated Tree</div></div></div></foreignObject><text x="811" y="294" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Decorated/Annotated...</text></switch></g><path d="M 731 80 L 566.37 80" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 561.12 80 L 568.12 76.5 L 566.37 80 L 568.12 83.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 80px; margin-left: 645px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #7D7D7D; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; "><font color="#000000"><span style="font-size: 12px">Compile and<br />Execute subtrees<br /></span></font></div></div></div></foreignObject><text x="645" y="83" fill="#7D7D7D" font-family="Helvetica" font-size="11px" text-anchor="middle">Compile and...</text></switch></g><rect x="731" y="50" width="160" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 80px; margin-left: 732px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Trees containing code only used by constant expressions</div></div></div></foreignObject><text x="811" y="84" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Trees containing code only...</text></switch></g><path d="M 400 80 L 375 80 L 375 223.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 375 228.88 L 371.5 221.88 L 375 223.63 L 378.5 221.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 142px; margin-left: 375px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #7D7D7D; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; "><font color="#000000">Parse and evaluate<br />constant expressions</font></div></div></div></foreignObject><text x="375" y="145" fill="#7D7D7D" font-family="Helvetica" font-size="11px" text-anchor="middle">Parse and evaluate...</text></switch></g><rect x="400" y="50" width="160" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 80px; margin-left: 401px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">New evaluated source code returned from the execution of the constant expressions</div></div></div></foreignObject><text x="480" y="84" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">New evaluated source code...</text></switch></g><path d="M 1050 260 L 1050 200 L 375 200 L 375 223.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 375 228.88 L 371.5 221.88 L 375 223.63 L 378.5 221.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="990" y="260" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 290px; margin-left: 991px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Dynamically or Statically link files</div></div></div></foreignObject><text x="1050" y="294" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Dynamically or Stati...</text></switch></g><path d="M 871 440 L 983.63 440" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 988.88 440 L 981.88 443.5 L 983.63 440 L 981.88 436.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 440px; margin-left: 931px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Peephole<br />Optimisations</div></div></div></foreignObject><text x="931" y="443" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">Peephole...</text></switch></g><rect x="751" y="410" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 440px; margin-left: 752px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Bytecode Blocks</div></div></div></foreignObject><text x="811" y="444" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Bytecode Blocks</text></switch></g><path d="M 1050 470 L 1050 533.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1050 538.88 L 1046.5 531.88 L 1050 533.63 L 1053.5 531.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 506px; margin-left: 1050px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Add metadata and assemble<br />all blocks into one stream</div></div></div></foreignObject><text x="1050" y="509" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">Add metadata and assemble...</text></switch></g><rect x="990" y="410" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 440px; margin-left: 991px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Optimised Blocks</div></div></div></foreignObject><text x="1050" y="444" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Optimised Blocks</text></switch></g><path d="M 990 570 L 877.37 570" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 872.12 570 L 879.12 566.5 L 877.37 570 L 879.12 573.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 570px; margin-left: 930px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Write to File</div></div></div></foreignObject><text x="930" y="573" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">Write to File</text></switch></g><rect x="990" y="540" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 570px; margin-left: 991px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Compiled Bytecode Stream</div></div></div></foreignObject><text x="1050" y="574" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Compiled Bytecode St...</text></switch></g><path d="M 811 600 L 811 653.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 811 658.88 L 807.5 651.88 L 811 653.63 L 814.5 651.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="751" y="540" width="120" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 570px; margin-left: 752px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Executable File</div></div></div></foreignObject><text x="811" y="574" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Executable File</text></switch></g><rect x="751" y="660" width="120" height="60" fill="#ffffff" stroke="#7d7d7d" stroke-dasharray="3 3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 690px; margin-left: 752px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #7D7D7D; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Executed by Virtual<br />Ā Machine</div></div></div></foreignObject><text x="811" y="694" fill="#7D7D7D" font-family="Helvetica" font-size="12px" text-anchor="middle">Executed by Virtual...</text></switch></g><rect x="280" y="230" width="70" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 245px; margin-left: 281px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Syntax</div></div></div></foreignObject><text x="315" y="249" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Syntax</text></switch></g><rect x="280" y="950" width="320" height="160" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 318px; height: 1px; padding-top: 1030px; margin-left: 282px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><ul><li><b>Type Resolution: </b>Completes incomplete types.</li><li><b>Type Propagation:</b>Ā Types expressions based on the types of their sub-expressions.</li><li><b>Type Inference: </b>Assigns types to variables based on how they're used.</li><li><b>Type Checking: </b>Ensures the tree is correctly typed, with no contradictions.Ā  Error checking stage.Ā  Also checks that correct overloads exist.</li><li><b>Decoration:</b>Ā Tree is decorated with attributes, such as the maximum amount of arguments certain functions take, which overload is being used, etc.</li></ul></div></div></div></foreignObject><text x="282" y="1034" fill="#000000" font-family="Helvetica" font-size="12px">Type Resolution: Completes incomplete types.Type Prop...</text></switch></g><rect x="280" y="750" width="720" height="190" fill="none" stroke="#525252" stroke-dasharray="1 1" pointer-events="all"/><path d="M 440 802.5 L 473.63 802.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 478.88 802.5 L 471.88 806 L 473.63 802.5 L 471.88 799 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="300" y="775" width="140" height="55" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 803px; margin-left: 301px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="text-align: left">Inlining and</span><span style="font-family: &quot;sbl biblit&quot; , &quot;sbl greek&quot; , &quot;athena&quot; , &quot;eb garamond&quot; , &quot;eb garamond 12&quot; , &quot;foulis greek&quot; , &quot;garamond libre&quot; , &quot;cardo&quot; , &quot;gentium plus&quot; , &quot;gentium&quot; , &quot;garamond&quot; , &quot;palatino linotype&quot; , &quot;dejavu sans&quot; , &quot;dejavu serif&quot; , &quot;freeserif&quot; , &quot;freesans&quot; , &quot;arial unicode ms&quot; , &quot;lucida sans unicode&quot; , &quot;lucida grande&quot; , &quot;code2000&quot; , sans-serif ; text-align: left"> Ī²</span>-reduction</div></div></div></foreignObject><text x="370" y="806" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Inlining and Ī²-reduction</text></switch></g><path d="M 620 802.5 L 653.63 802.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 658.88 802.5 L 651.88 806 L 653.63 802.5 L 651.88 799 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="480" y="775" width="140" height="55" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 803px; margin-left: 481px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div style="text-align: left"><span><font face="sbl biblit, sbl greek, athena, eb garamond, eb garamond 12, foulis greek, garamond libre, cardo, gentium plus, gentium, garamond, palatino linotype, dejavu sans, dejavu serif, freeserif, freesans, arial unicode ms, lucida sans unicode, lucida grande, code2000, sans-serif" style="font-size: 12px">Constant Folding</font></span></div></div></div></div></foreignObject><text x="550" y="806" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Constant Folding</text></switch></g><path d="M 800 802.43 L 820 802.43 L 810 802.43 L 823.63 802.43" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 828.88 802.43 L 821.88 805.93 L 823.63 802.43 L 821.88 798.93 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="660" y="775" width="140" height="55" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 803px; margin-left: 661px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div style="text-align: left">Dead Code Elimination</div></div></div></div></foreignObject><text x="730" y="806" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Dead Code Elimination</text></switch></g><path d="M 830 887.43 L 810 887.43 L 820 887.43 L 806.37 887.43" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 801.12 887.43 L 808.12 883.93 L 806.37 887.43 L 808.12 890.93 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="830" y="860" width="140" height="55" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 888px; margin-left: 831px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div>Loop Invariant Code MotionĀ </div></div></div></div></foreignObject><text x="900" y="891" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Loop Invariant Code Mot...</text></switch></g><path d="M 660 887.5 L 626.37 887.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 621.12 887.5 L 628.12 884 L 626.37 887.5 L 628.12 891 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="660" y="860" width="140" height="55" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 888px; margin-left: 661px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div>Common Subexpression Elimination</div></div></div></div></foreignObject><text x="730" y="891" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Common Subexpression El...</text></switch></g><path d="M 480 887.5 L 446.37 887.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 441.12 887.5 L 448.12 884 L 446.37 887.5 L 448.12 891 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="480" y="860" width="140" height="55" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 888px; margin-left: 481px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div>Loop Fission and Fusion</div></div></div></div></foreignObject><text x="550" y="891" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Loop Fission and Fusion</text></switch></g><rect x="300" y="860" width="140" height="55" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 888px; margin-left: 301px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div>Loop Unrolling</div></div></div></div></foreignObject><text x="370" y="891" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Loop Unrolling</text></switch></g><path d="M 900 830 L 900 850 L 900 840 L 900 853.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 900 858.88 L 896.5 851.88 L 900 853.63 L 903.5 851.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="830" y="775" width="140" height="55" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 803px; margin-left: 831px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><div style="text-align: left">Tail Call Optimisation</div></div></div></div></foreignObject><text x="900" y="806" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Tail Call Optimisation</text></switch></g><rect x="295" y="740" width="185" height="20" fill="#ffffff" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 183px; height: 1px; padding-top: 750px; margin-left: 296px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Simplification and Optimisation</div></div></div></foreignObject><text x="388" y="754" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Simplification and Optimisation</text></switch></g><rect x="733" y="950" width="207" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 205px; height: 1px; padding-top: 970px; margin-left: 735px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Resulting Bytecode is also subject to a number of optimisations, referred to as 'Peephole Optimisations'.</div></div></div></foreignObject><text x="735" y="974" fill="#000000" font-family="Helvetica" font-size="12px">Resulting Bytecode is also subject...</text></switch></g><rect x="493" y="224" width="100" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 239px; margin-left: 494px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Static Analysis</div></div></div></foreignObject><text x="543" y="243" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Static Analysis</text></switch></g><rect x="1070" y="340" width="100" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 355px; margin-left: 1071px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Compilation</div></div></div></foreignObject><text x="1120" y="359" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Compilation</text></switch></g><rect x="811.5" y="239" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 249px; margin-left: 813px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #7D7D7D; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">1<sup>st</sup></div></div></div></foreignObject><text x="832" y="253" fill="#7D7D7D" font-family="Helvetica" font-size="12px" text-anchor="middle">1st</text></switch></g><rect x="871" y="291" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 301px; margin-left: 872px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #7D7D7D; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">2<sup>nd</sup></div></div></div></foreignObject><text x="891" y="305" fill="#7D7D7D" font-family="Helvetica" font-size="12px" text-anchor="middle">2nd</text></switch></g><rect x="811" y="320" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 330px; margin-left: 812px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #7D7D7D; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">3<sup>rd</sup></div></div></div></foreignObject><text x="831" y="334" fill="#7D7D7D" font-family="Helvetica" font-size="12px" text-anchor="middle">3rd</text></switch></g><path d="M 630 100 L 630 150 Q 630 160 638.94 164.47 L 661.06 175.53 Q 670 180 670 190 L 670 380 Q 670 390 679.12 394.1 L 714.19 409.89" fill="none" stroke="#a3a3a3" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 718.98 412.04 L 711.16 412.36 L 714.19 409.89 L 714.03 405.98 Z" fill="#a3a3a3" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="all"/><rect x="30" y="50" width="160" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 80px; margin-left: 31px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">New tree with pre-evaluated expressions</div></div></div></foreignObject><text x="110" y="84" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">New tree with pre-evaluate...</text></switch></g><path d="M 400 80 L 196.37 80" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 191.12 80 L 198.12 76.5 L 196.37 80 L 198.12 83.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 80px; margin-left: 280px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #7D7D7D; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; "><font color="#000000">Insert evaluated and parsed<br />subexpressions into tree<br /></font></div></div></div></foreignObject><text x="280" y="83" fill="#7D7D7D" font-family="Helvetica" font-size="11px" text-anchor="middle">Insert eva...</text></switch></g><rect x="367.5" y="105" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 115px; margin-left: 369px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #7D7D7D; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">1<sup>st</sup></div></div></div></foreignObject><text x="388" y="119" fill="#7D7D7D" font-family="Helvetica" font-size="12px" text-anchor="middle">1st</text></switch></g><rect x="330" y="40" width="40" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 50px; margin-left: 331px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #7D7D7D; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">2<sup>nd</sup></div></div></div></foreignObject><text x="350" y="54" fill="#7D7D7D" font-family="Helvetica" font-size="12px" text-anchor="middle">2nd</text></switch></g><rect x="0" y="0" width="210" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 15px; margin-left: 1px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Arbitrary Compile-time Execution</div></div></div></foreignObject><text x="105" y="19" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Arbitrary Compile-time Execution</text></switch></g><path d="M 640 200 L 606.37 200" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 601.12 200 L 608.12 196.5 L 606.37 200 L 608.12 203.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 170 290 L 303.63 290" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 308.88 290 L 301.88 293.5 L 303.63 290 L 301.88 286.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 290px; margin-left: 220px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #7D7D7D; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; "><font color="#000000">Read File</font></div></div></div></foreignObject><text x="220" y="293" fill="#7D7D7D" font-family="Helvetica" font-size="11px" text-anchor="middle">Read File</text></switch></g><rect x="50" y="260" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 290px; margin-left: 51px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #7D7D7D; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font color="#000000">Source File</font></div></div></div></foreignObject><text x="110" y="294" fill="#7D7D7D" font-family="Helvetica" font-size="12px" text-anchor="middle">Source File</text></switch></g><path d="M 533 290 L 508.55 304.82 Q 500 310 500 320 L 500 700 Q 500 710 510 710 L 610 710 Q 620 710 624.47 718.94 L 637.15 744.3" fill="none" stroke="#a3a3a3" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 639.5 749 L 633.24 744.3 L 637.15 744.3 L 639.5 741.17 Z" fill="#a3a3a3" stroke="#a3a3a3" stroke-miterlimit="10" pointer-events="all"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://desk.draw.io/support/solutions/articles/16000042487" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Viewer does not support full SVG 1.1</text></a></switch></svg>