<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.10">
<meta name="author" content="Copyright (c) 2010, 2020 Contributors to the Eclipse Foundation">
<link rel="icon" type="image/png" href="favicon.png">
<title>Chi documentation (Incubation)</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
<style>
/* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
/* Uncomment @import statement to use as custom stylesheet */
/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}
audio,video{display:inline-block}
audio:not([controls]){display:none;height:0}
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
a{background:none}
a:focus{outline:thin dotted}
a:active,a:hover{outline:0}
h1{font-size:2em;margin:.67em 0}
abbr[title]{border-bottom:1px dotted}
b,strong{font-weight:bold}
dfn{font-style:italic}
hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
mark{background:#ff0;color:#000}
code,kbd,pre,samp{font-family:monospace;font-size:1em}
pre{white-space:pre-wrap}
q{quotes:"\201C" "\201D" "\2018" "\2019"}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-.5em}
sub{bottom:-.25em}
img{border:0}
svg:not(:root){overflow:hidden}
figure{margin:0}
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
legend{border:0;padding:0}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
button,input{line-height:normal}
button,select{text-transform:none}
button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
button[disabled],html input[disabled]{cursor:default}
input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
textarea{overflow:auto;vertical-align:top}
table{border-collapse:collapse;border-spacing:0}
*,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
html,body{font-size:100%}
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
a:hover{cursor:pointer}
img,object,embed{max-width:100%;height:auto}
object,embed{height:100%}
img{-ms-interpolation-mode:bicubic}
.left{float:left!important}
.right{float:right!important}
.text-left{text-align:left!important}
.text-right{text-align:right!important}
.text-center{text-align:center!important}
.text-justify{text-align:justify!important}
.hide{display:none}
img,object,svg{display:inline-block;vertical-align:middle}
textarea{height:auto;min-height:50px}
select{width:100%}
.center{margin-left:auto;margin-right:auto}
.stretch{width:100%}
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
a{color:#2156a5;text-decoration:underline;line-height:inherit}
a:hover,a:focus{color:#1d4b8f}
a img{border:0}
p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
p aside{font-size:.875em;line-height:1.35;font-style:italic}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
h1{font-size:2.125em}
h2{font-size:1.6875em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
h4,h5{font-size:1.125em}
h6{font-size:1em}
hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
em,i{font-style:italic;line-height:inherit}
strong,b{font-weight:bold;line-height:inherit}
small{font-size:60%;line-height:inherit}
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
ul,ol{margin-left:1.5em}
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
ul.square{list-style-type:square}
ul.circle{list-style-type:circle}
ul.disc{list-style-type:disc}
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
dl dt{margin-bottom:.3125em;font-weight:bold}
dl dd{margin-bottom:1.25em}
abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
abbr{text-transform:none}
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
blockquote cite::before{content:"\2014 \0020"}
blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
h1{font-size:2.75em}
h2{font-size:2.3125em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
h4{font-size:1.4375em}}
table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
table thead,table tfoot{background:#f7f8f7}
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
table tr.even,table tr.alt{background:#f8f8f7}
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
.clearfix::after,.float-group::after{clear:both}
:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word}
:not(pre)>code.nobreak{word-wrap:normal}
:not(pre)>code.nowrap{white-space:nowrap}
pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
pre>code{display:block}
pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
em em{font-style:normal}
strong strong{font-weight:400}
.keyseq{color:rgba(51,51,51,.8)}
kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
.keyseq kbd:first-child{margin-left:0}
.keyseq kbd:last-child{margin-right:0}
.menuseq,.menuref{color:#000}
.menuseq b:not(.caret),.menuref{font-weight:inherit}
.menuseq{word-spacing:-.02em}
.menuseq b.caret{font-size:1.25em;line-height:.8}
.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
b.button::before{content:"[";padding:0 3px 0 2px}
b.button::after{content:"]";padding:0 2px 0 3px}
p a>code:hover{color:rgba(0,0,0,.9)}
#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
#header::after,#content::after,#footnotes::after,#footer::after{clear:both}
#content{margin-top:1.25em}
#content::before{content:none}
#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
#header .details span:first-child{margin-left:-.125em}
#header .details span.email a{color:rgba(0,0,0,.85)}
#header .details br{display:none}
#header .details br+span::before{content:"\00a0\2013\00a0"}
#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
#header .details br+span#revremark::before{content:"\00a0|\00a0"}
#header #revnumber{text-transform:capitalize}
#header #revnumber::after{content:"\00a0"}
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}
#toc>ul{margin-left:.125em}
#toc ul.sectlevel0>li>a{font-style:italic}
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
#toc li{line-height:1.3334;margin-top:.3334em}
#toc a{text-decoration:none}
#toc a:active{text-decoration:underline}
#toctitle{color:#7a2518;font-size:1.2em}
@media screen and (min-width:768px){#toctitle{font-size:1.375em}
body.toc2{padding-left:15em;padding-right:0}
#toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
body.toc2.toc-right{padding-left:0;padding-right:15em}
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}
@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
#toc.toc2{width:20em}
#toc.toc2 #toctitle{font-size:1.375em}
#toc.toc2>ul{font-size:.95em}
#toc.toc2 ul ul{padding-left:1.25em}
body.toc2.toc-right{padding-left:0;padding-right:20em}}
#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
#content #toc>:first-child{margin-top:0}
#content #toc>:last-child{margin-bottom:0}
#footer{max-width:100%;background:rgba(0,0,0,.8);padding:1.25em}
#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
#content{margin-bottom:.625em}
.sect1{padding-bottom:.625em}
@media screen and (min-width:768px){#content{margin-bottom:1.25em}
.sect1{padding-bottom:1.25em}}
.sect1:last-child{padding-bottom:0}
.sect1+.sect1{border-top:1px solid #e7e7e9}
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
details>summary:first-of-type{cursor:pointer;display:list-item;outline:none;margin-bottom:.75em}
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
.paragraph.lead>p,#preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:inherit}
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
.admonitionblock>table td.icon{text-align:center;width:80px}
.admonitionblock>table td.icon img{max-width:none}
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6)}
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
.exampleblock>.content>:first-child{margin-top:0}
.exampleblock>.content>:last-child{margin-bottom:0}
.sidebarblock{border-style:solid;border-width:1px;border-color:#dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;-webkit-border-radius:4px;border-radius:4px}
.sidebarblock>:first-child{margin-top:0}
.sidebarblock>:last-child{margin-bottom:0}
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
.literalblock pre,.listingblock>.content>pre{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;overflow-x:auto;padding:1em;font-size:.8125em}
@media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
@media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class="highlight"],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
.literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}
.listingblock>.content{position:relative}
.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}
.listingblock:hover code[data-lang]::before{display:block}
.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}
.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
.listingblock pre.highlightjs{padding:0}
.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
.listingblock pre.prettyprint{border-width:0}
.prettyprint{background:#f7f7f8}
pre.prettyprint .linenums{line-height:1.45;margin-left:2em}
pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}
pre.prettyprint li code[data-lang]::before{opacity:1}
pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
table.linenotable td.code{padding-left:.75em}
table.linenotable td.linenos{border-right:1px solid currentColor;opacity:.35;padding-right:.5em}
pre.pygments .lineno{border-right:1px solid currentColor;opacity:.35;display:inline-block;margin-right:.75em}
pre.pygments .lineno::before{content:"";margin-right:-.125em}
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
.quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em}
.quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
.quoteblock blockquote{margin:0;padding:0;border:0}
.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
.verseblock{margin:0 1em 1.25em}
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
.verseblock pre strong{font-weight:400}
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
.quoteblock .attribution br,.verseblock .attribution br{display:none}
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
.quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}
.quoteblock.abstract{margin:0 1em 1.25em;display:block}
.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
.quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
.quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0}
.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;text-align:left;margin-right:0}
table.tableblock{max-width:100%;border-collapse:separate}
p.tableblock:last-child{margin-bottom:0}
td.tableblock>.content>:last-child{margin-bottom:-1.25em}
td.tableblock>.content>:last-child.sidebarblock{margin-bottom:0}
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px}
table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}
table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
table.frame-all{border-width:1px}
table.frame-sides{border-width:0 1px}
table.frame-topbot,table.frame-ends{border-width:1px 0}
table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd),table.stripes-even tr:nth-of-type(even),table.stripes-hover tr:hover{background:#f8f8f7}
th.halign-left,td.halign-left{text-align:left}
th.halign-right,td.halign-right{text-align:right}
th.halign-center,td.halign-center{text-align:center}
th.valign-top,td.valign-top{vertical-align:top}
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
th.valign-middle,td.valign-middle{vertical-align:middle}
table thead th,table tfoot th{font-weight:bold}
tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
p.tableblock>code:only-child{background:none;padding:0}
p.tableblock{font-size:1em}
ol{margin-left:1.75em}
ul li ol{margin-left:1.5em}
dl dd{margin-left:1.125em}
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
ul.unstyled,ol.unstyled{margin-left:0}
ul.checklist{margin-left:.625em}
ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em}
ul.inline{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
ul.inline>li{margin-left:1.25em}
.unstyled dl dt{font-weight:400;font-style:normal}
ol.arabic{list-style-type:decimal}
ol.decimal{list-style-type:decimal-leading-zero}
ol.loweralpha{list-style-type:lower-alpha}
ol.upperalpha{list-style-type:upper-alpha}
ol.lowerroman{list-style-type:lower-roman}
ol.upperroman{list-style-type:upper-roman}
ol.lowergreek{list-style-type:lower-greek}
.hdlist>table,.colist>table{border:0;background:none}
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
td.hdlist1{font-weight:bold;padding-bottom:1.25em}
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
.colist td:not([class]):first-child img{max-width:none}
.colist td:not([class]):last-child{padding:.25em 0}
.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
.imageblock.left{margin:.25em .625em 1.25em 0}
.imageblock.right{margin:.25em 0 1.25em .625em}
.imageblock>.title{margin-bottom:0}
.imageblock.thumb,.imageblock.th{border-width:6px}
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
.image.left{margin-right:.625em}
.image.right{margin-left:.625em}
a.image{text-decoration:none;display:inline-block}
a.image object{pointer-events:none}
sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
sup.footnote a,sup.footnoteref a{text-decoration:none}
sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
#footnotes .footnote:last-of-type{margin-bottom:0}
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
.gist .file-data>table td.line-data{width:99%}
div.unbreakable{page-break-inside:avoid}
.big{font-size:larger}
.small{font-size:smaller}
.underline{text-decoration:underline}
.overline{text-decoration:overline}
.line-through{text-decoration:line-through}
.aqua{color:#00bfbf}
.aqua-background{background:#00fafa}
.black{color:#000}
.black-background{background:#000}
.blue{color:#0000bf}
.blue-background{background:#0000fa}
.fuchsia{color:#bf00bf}
.fuchsia-background{background:#fa00fa}
.gray{color:#606060}
.gray-background{background:#7d7d7d}
.green{color:#006000}
.green-background{background:#007d00}
.lime{color:#00bf00}
.lime-background{background:#00fa00}
.maroon{color:#600000}
.maroon-background{background:#7d0000}
.navy{color:#000060}
.navy-background{background:#00007d}
.olive{color:#606000}
.olive-background{background:#7d7d00}
.purple{color:#600060}
.purple-background{background:#7d007d}
.red{color:#bf0000}
.red-background{background:#fa0000}
.silver{color:#909090}
.silver-background{background:#bcbcbc}
.teal{color:#006060}
.teal-background{background:#007d7d}
.white{color:#bfbfbf}
.white-background{background:#fafafa}
.yellow{color:#bfbf00}
.yellow-background{background:#fafa00}
span.icon>.fa{cursor:default}
a span.icon>.fa{cursor:inherit}
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
.conum[data-value] *{color:#fff!important}
.conum[data-value]+b{display:none}
.conum[data-value]::after{content:attr(data-value)}
pre .conum[data-value]{position:relative;top:-.125em}
b.conum *{color:inherit!important}
.conum:not([data-value]):empty{display:none}
dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
p{margin-bottom:1.25rem}
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
.exampleblock>.content{background:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
.print-only{display:none!important}
@page{margin:1.25cm .75cm}
@media print{*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
html{font-size:80%}
a{color:inherit!important;text-decoration:underline!important}
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
abbr[title]::after{content:" (" attr(title) ")"}
pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
thead{display:table-header-group}
svg{max-width:100%}
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
body.book #header{text-align:center}
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
body.book #header .details{border:0!important;display:block;padding:0!important}
body.book #header .details span:first-child{margin-left:0!important}
body.book #header .details br{display:block}
body.book #header .details br+span::before{content:none!important}
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
.listingblock code[data-lang]::before{display:block}
#footer{padding:0 .9375em}
.hide-on-print{display:none!important}
.print-only{display:block!important}
.hide-for-print{display:none!important}
.show-for-print{display:inherit!important}}
@media print,amzn-kf8{#header>h1:first-child{margin-top:1.25rem}
.sect1{padding:0!important}
.sect1+.sect1{border:0}
#footer{background:none}
#footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
</style>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<!--
  Copyright (c) 2010, 2020 Contributors to the Eclipse Foundation

  See the NOTICE file(s) distributed with this work for additional
  information regarding copyright ownership.

  This program and the accompanying materials are made available under the terms
  of the MIT License which is available at https://opensource.org/licenses/MIT

  SPDX-License-Identifier: MIT
-->
<style>
.menu, .submenu, .menuitem, .menuref {
    background-color: Menu;
}

.button {
    border: 1px solid ButtonFace;
    /*
    Styling too similar to a real button is considered bad practice, see https://github.com/asciidoctor/asciidoctor/issues/1881#issuecomment-250702085
    border: 2px outset ButtonFace;
    background-color: ButtonFace;
    */
    padding-left: 0.5ex;
    padding-right: 0.5ex;
    font-weight: normal;
    font-family: "Segoe UI","Open Sans","DejaVu Sans",sans-serif;
    white-space: nowrap;
}
.button:before {
    content: none !important;
}
.button:after {
    content: none !important;
}

#footer-text, #footer-text a {
    color: rgba(255,255,255,.8)
}
</style>
</head>
<body class="book toc2 toc-left">
<div id="header">
<h1>Chi documentation (Incubation)</h1>
<div class="details">
<span id="author" class="author">Copyright (c) 2010, 2020 Contributors to the Eclipse Foundation</span><br>
<span id="revnumber">version 0.1.0.20210126-175926</span>
</div>
<div id="toc" class="toc2">
<div id="toctitle">Table of Contents</div>
<ul class="sectlevel1">
<li><a href="#tut-chapter-chi-tutorial">Chi Tutorial</a>
<ul class="sectlevel2">
<li><a href="#tut-chapter-introduction">Introduction</a></li>
<li><a href="#tut-chapter-data-types">Data types</a></li>
<li><a href="#tut-chapter-statements">Statements</a></li>
<li><a href="#tut-chapter-functions">Functions</a></li>
<li><a href="#tut-chapter-input-and-output">Input and output</a></li>
<li><a href="#tut-chapter-stochastic-behavior">Modeling stochastic behavior</a></li>
<li><a href="#tut-chapter-processes">Processes</a></li>
<li><a href="#tut-chapter-channels">Channels</a></li>
<li><a href="#tut-chapter-buffers">Buffers</a></li>
<li><a href="#tut-chapter-servers-with-time">Servers with time</a></li>
<li><a href="#tut-chapter-conveyors">Conveyors</a></li>
<li><a href="#tut-chapter-simulation-and-experiments">Simulations and experiments</a></li>
<li><a href="#tut-chapter-svg-visualization">SVG visualization</a></li>
<li><a href="#tut-chapter-svg-example">SVG visualization example</a></li>
</ul>
</li>
<li><a href="#ref-chapter-reference-manual">Chi Reference Manual</a>
<ul class="sectlevel2">
<li><a href="#ref-chapter-global-definitions">Global definitions</a></li>
<li><a href="#ref-chapter-statements">Statements</a></li>
<li><a href="#ref-chapter-expressions">Expressions</a></li>
<li><a href="#ref-chapter-standard-library">Standard library functions</a></li>
<li><a href="#ref-chapter-distributions">Distributions</a></li>
<li><a href="#ref-chapter-types">Types</a></li>
<li><a href="#ref-chapter-lexical-syntax">Lexical syntax</a></li>
<li><a href="#ref-chapter-migration">Model migration</a></li>
<li><a href="#ref-chapter-svg-visualization">SVG visualization</a></li>
</ul>
</li>
<li><a href="#tool-chapter-tool-manual">Chi Tool Manual</a>
<ul class="sectlevel2">
<li><a href="#tool-chapter-software-operation">Software operation</a></li>
<li><a href="#tool-chapter-command-line">Command line options</a></li>
</ul>
</li>
<li><a href="#release-notes-chapter-index">Chi release notes</a>
<ul class="sectlevel2">
<li><a href="#version-0-1-unreleased">Version 0.1 (unreleased)</a></li>
</ul>
</li>
<li><a href="#legal-chapter-index">Legal</a></li>
</ul>
</div>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Chi is a modeling language for describing and analyzing performance of
discrete event systems by means of simulation.
It uses a process-based view, and uses synchronous point-to-point
communication between processes. A process is written as an imperative
program, with a syntax much inspired by the well-known Python language.</p>
</div>
<div class="paragraph">
<p>Chi is one of the tools of the
<a href="https://eclipse.org/escet">Eclipse ESCET&#8482; project</a>.</p>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
<div class="paragraph">
<p>The Eclipse ESCET project, including the Chi language and toolset,
is currently in the
<a href="https://wiki.eclipse.org/Development_Resources/Process_Guidelines/What_is_Incubation">Incubation Phase</a>.</p>
</div>
<div class="paragraph">
<p><span class="image"><img src="./eclipse-incubation.png" alt="eclipse incubation" width="300"></span></p>
</div>
</td>
</tr>
</table>
</div>
<div class="admonitionblock tip">
<table>
<tr>
<td class="icon">
<i class="fa icon-tip" title="Tip"></i>
</td>
<td class="content">
You can <a href="eclipse-escet-incubation-chi-manual.pdf">download this manual</a>
as a PDF as well.
</td>
</tr>
</table>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1">Tutorial</dt>
<dd>
<p>The <a href="#tut-chapter-chi-tutorial">Chi Tutorial</a>
teaches the Chi language, and its use in modeling and simulating systems
to answer your performance questions.</p>
<div class="paragraph">
<p>Some interesting topics are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Basics (<a href="#tut-chapter-data-types">Data types</a>, <a href="#tut-chapter-statements">Statements</a>,
<a href="#tut-chapter-stochastic-behavior">Modeling stochastic behavior</a>)</p>
</li>
<li>
<p>Programming (<a href="#tut-chapter-processes">Processes</a>, <a href="#tut-chapter-channels">Channels</a>)</p>
</li>
<li>
<p>Modeling (<a href="#tut-chapter-buffers">Buffers</a>, <a href="#tut-chapter-servers-with-time">Servers with time</a>,
<a href="#tut-chapter-conveyors">Conveyors</a>)</p>
</li>
</ul>
</div>
</dd>
<dt class="hdlist1">Reference manual</dt>
<dd>
<p>The <a href="#ref-chapter-reference-manual">Chi Reference Manual</a>
describes the Chi language in full detail, for example the top level language
elements or all statements. It also contains a list with all standard library
functions and a list with all distribution functions.</p>
<div class="paragraph">
<p>Some interesting topics are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#ref-chapter-global-definitions">Global definitions</a> (Top level language elements)</p>
</li>
<li>
<p><a href="#ref-chapter-standard-library">Standard library functions</a> (Standard library functions)</p>
</li>
<li>
<p><a href="#ref-chapter-distributions">Distributions</a> (Available distributions)</p>
</li>
</ul>
</div>
</dd>
<dt class="hdlist1">Tool manual</dt>
<dd>
<p>The <a href="#tool-chapter-tool-manual">Tool manual</a>
describes the Chi simulator software.
Use of the software to create and simulate Chi programs is also explained.</p>
</dd>
<dt class="hdlist1">Release notes</dt>
<dd>
<p>The <a href="#release-notes-chapter-index">Release notes</a> provides information on
all Chi releases.</p>
</dd>
<dt class="hdlist1">Legal</dt>
<dd>
<p>See <a href="#legal-chapter-index">Legal</a> for copyright and licensing information.</p>
</dd>
</dl>
</div>
</div>
</div>
<div class="sect1">
<h2 id="tut-chapter-chi-tutorial">Chi Tutorial</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This manual explains using the Chi modeling language.</p>
</div>
<div class="paragraph">
<p><em>Topics</em></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tut-chapter-introduction">Introduction</a> (global description of the aims of the language)</p>
</li>
<li>
<p><em>Basics</em>: Elementary knowledge needed for writing and understanding Chi
programs. <em>Start here to learn the language!</em></p>
<div class="ulist">
<ul>
<li>
<p><a href="#tut-chapter-data-types">Data types</a> (explanation of all kinds of data and their
operations)</p>
</li>
<li>
<p><a href="#tut-chapter-statements">Statements</a> (available process statements)</p>
</li>
<li>
<p><a href="#tut-chapter-functions">Functions</a> (how to use functions)</p>
</li>
<li>
<p><a href="#tut-chapter-input-and-output">Input and output</a> (reading/writing files, displaying output)</p>
</li>
</ul>
</div>
</li>
<li>
<p><em>Programming</em>: How to specify parallel executing processes using the Chi
language.</p>
<div class="ulist">
<ul>
<li>
<p><a href="#tut-chapter-stochastic-behavior">Modeling stochastic behavior</a> (how to model varying behavior)</p>
</li>
<li>
<p><a href="#tut-chapter-processes">Processes</a> (creating and running processes)</p>
</li>
<li>
<p><a href="#tut-chapter-channels">Channels</a> (connecting processes with each other)</p>
</li>
</ul>
</div>
</li>
<li>
<p><em>Modeling</em>: Modeling a real system with Chi.</p>
<div class="ulist">
<ul>
<li>
<p><a href="#tut-chapter-buffers">Buffers</a> (modeling temporary storage of items)</p>
</li>
<li>
<p><a href="#tut-chapter-servers-with-time">Servers</a> (modeling machines)</p>
</li>
<li>
<p><a href="#tut-chapter-conveyors">Conveyors</a> (modeling conveyor belts)</p>
</li>
<li>
<p><a href="#tut-chapter-simulation-and-experiments">Experiments</a> (performing simulation experiments)</p>
</li>
</ul>
</div>
</li>
<li>
<p><em>Visualization</em>: Making an animated graphical display of a system with the
Chi simulator.</p>
<div class="ulist">
<ul>
<li>
<p><a href="#tut-chapter-svg-visualization">SVG visualization</a> (how to attach an SVG visualization)</p>
</li>
<li>
<p><a href="#tut-chapter-svg-example">SVG example</a> (an SVG example)</p>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="tut-chapter-introduction">Introduction</h3>
<div class="paragraph">
<p>The topic is modeling of the operation of (manufacturing) systems, e.g.
semiconductor factories, assembly and packaging lines, car manufacturing
plants, steel foundries, metal processing shops, beer breweries, health care
systems, warehouses, order-picking systems.
For a proper functioning of these systems, these systems are controlled by
operators and electronic devices, e.g. computers.</p>
</div>
<div class="paragraph">
<p>During the design process, engineers make use of (analytical) mathematical
models, e.g. algebra and probability theory, to get answers about the
operation of the system.
For complex systems, (numerical) mathematical models are used, and computers
perform simulation experiments, to analyze the operation of the system.
Simulation studies give answers to questions like:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>What is the throughput of the system?</p>
</li>
<li>
<p>What is the effect of set-up time in a machine?</p>
</li>
<li>
<p>How will the batch size of an order influence the flow time of the
product-items?</p>
</li>
<li>
<p>What is the effect of more surgeons in a hospital?</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>

The operation of a system can be described, e.g. in terms of or operating
processes.</p>
</div>
<div class="paragraph">
<p>An example of a system with parallel operating processes is a manufacturing
line, with a number of manufacturing machines, where product-items go from
machine to machine.
A surgery room in a hospital is a system where patients are treated by teams
using medical equipment and sterile materials.
A biological system can be described by a number of parallel processes, where,
e.g. processes transform sugars into water and carbon-dioxide producing
energy.
In all these examples, processes operate in parallel to complete a task, and
to achieve a goal.
Concurrency is the dominant aspect in these type of systems, and as a
consequence this holds too for their models.</p>
</div>
<div class="paragraph">
<p>The operating behavior of parallel processes can be described by different
formalisms, e.g. automata, Petri-nets or parallel processes. This text uses
the programming language Chi, which is an instance of a parallel processes
formalism.</p>
</div>
<div class="paragraph">
<p>A system is abstracted into a model, with cooperating processes, where
processes are connected to each other via channels.
The channels are used for exchanging material and information.
Models of the above mentioned examples consist of a number of concurrent
processes connected by channels, denoting the flow of products, patients or
personnel.</p>
</div>
<div class="paragraph">
<p>In Chi, communication takes place in a synchronous manner.
This means that communication between a sending process, and a receiving
process takes place only when both processes are able to communicate.
Processes and channels can dynamically be altered.
To model times, like inter-arrival times and server processing times, the
language has a notation of time.</p>
</div>
<div class="paragraph">
<p>The rationale behind the language is that models for the analysis of a system should be</p>
</div>
<div class="ulist">
<ul>
<li>
<p>formal (exactly one interpretation, every reader attaches the same meaning to the model),</p>
</li>
<li>
<p>easily writable (write the essence of the system in a compact way),</p>
</li>
<li>
<p>easily readable (non-experts should be able to understand the model),</p>
</li>
<li>
<p>and easily extensible (adding more details in one part should not affect other parts).</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Verification of the models to investigate the properties of the model should
be relatively effortless. (A model has to preserve some properties of the real system
otherwise results from the simulation study have no relation with the system
being modeled. The language must allow this verification to take place in a
simple manner.)</p>
</div>
<div class="paragraph">
<p>Experiments should be performed in an straightforward manner. (Minimizing the
effort in doing simulation studies, in particular for large systems, makes the
language useful.)</p>
</div>
<div class="paragraph">
<p>Finally, the used models should be usable for the supervisory (logic) control
of the systems (simulation studies often provide answers on how to control a
system in a better way, these answers should also work for the modeled
system).</p>
</div>
<div class="sect3">
<h4 id="tut-chi-in-a-nutshell">Chi in a nutshell</h4>
<div class="paragraph">
<p>During the past decades, the ancestors of Chi have been used with success,
for the analysis of a variety of (industrial) systems.
Based on this experience, the language Chi has been completely redesigned,
keeping the strong points of the previous versions, while making it more
powerful for advanced users, and easier to access for non-experts.</p>
</div>
<div class="paragraph">
<p>Its features are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A system (and its control) is modeled as a collection of parallel running
processes, communicating with each other using channels.</p>
</li>
<li>
<p>Processes do not share data with other processes and channels are
synchronous (sending and receiving is always done together at the same
time), making reasoning about process behavior easier.</p>
</li>
<li>
<p>Processes and channels are dynamic, new processes can be created as needed,
and communication channels can be created or rerouted.</p>
</li>
<li>
<p>Variables can have elementary values such as <em>boolean</em>, <em>integer</em> or <em>real</em>
numbers, to high level structured collections of data like <em>lists</em>, <em>sets</em>
and <em>dictionaries</em> to model the data of the system. If desired, processes
and channels can also be part of that data.</p>
</li>
<li>
<p>A small generic set of statements to describe algorithms, assignment, <em>if</em>,
<em>while</em>, and <em>for</em> statements. This set is relatively easy to explain to
non-experts, allowing them to understand the model, and participate in the
discussions.</p>
</li>
<li>
<p>Tutorials and manuals demonstrate use of the language for effective modeling
of system processes. More detailed modeling of the processes, or custom
tailoring them to the real situation, has no inherent limits.</p>
</li>
<li>
<p>Time and (quasi-) random number generation distributions are available for
modeling behavior of the system in time.</p>
</li>
<li>
<p>Likewise, measurements to derive performance indicators of the modeled
system are integrated in the model. Tutorials and manuals show basic use.
The integration allows for custom solutions to obtain the needed data in the
wanted form.</p>
</li>
<li>
<p>Input and output facilities from and to the file system exists to support
large simulation experiments.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="tut-exercises">Exercises</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Install the Chi programming environment at your computer.</p>
</li>
<li>
<p>Test your first program.</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>Construct the following program in a project in your workspace:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">model M():
    writeln(&quot;It works!&quot;)
end</code></pre>
</div>
</div>
</li>
<li>
<p>Compile, and simulate the model as explained in the tool manual (in
<a href="#tool-compile-and-simulate">Compile and simulate</a>).</p>
</li>
<li>
<p>Try to explain the result.</p>
</li>
</ol>
</div>
</li>
<li>
<p>Test a program with model parameters.</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>Construct the following program in the same manner:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">model M(string s):
    write(&quot;%s\n&quot;)
end</code></pre>
</div>
</div>
</li>
<li>
<p>Simulate the model, where you have to set the <em>Model instance</em> text to
<code>M("OOPS")</code> in the dialog box of the simulator.</p>
</li>
<li>
<p>Try to explain the result.</p>
</li>
</ol>
</div>
</li>
</ol>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-chapter-data-types">Data types</h3>
<div class="paragraph">
<p>The language is a statically typed language, which means that all variables
and values in a model have a single fixed type.
All variables must be declared in the program.
The declaration of a variable consists of the type, and the name, of the
variable. The following fragment shows the declaration of two elementary data
types, integer variable <code>i</code> and real variable <code>r</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">...
int i;
real r;
...</code></pre>
</div>
</div>
<div class="paragraph">
<p>The ellipsis (<code>...</code>) denotes that non-relevant information is left out from
the fragment. The syntax for the declaration of variables is similar to the
language <em>C</em>. All declared variables are initialized, variables <code>i</code> and
<code>r</code> are both initialized to zero.</p>
</div>
<div class="paragraph">
<p>An expression, consisting of operators, e.g. plus (<code>+</code>), times (<code>*</code>), and
operands, e.g. <code>i</code> and <code>r</code>, is used to calculate a new value. The new
value can be assigned to a variable by using an <em>assignment</em> statement. An
example with four variables, two expressions and assignment statements is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">...
int  i = 2, j;
real r = 1.50, s;

j = 2 * i + 1;
s = r / 2;
...</code></pre>
</div>
</div>
<div class="paragraph">
<p>The value of variable <code>j</code> becomes <code>5</code>, and the value of <code>s</code> becomes
<code>0.75</code>.
Statements are described in <a href="#tut-chapter-statements">Statements</a>.</p>
</div>
<div class="paragraph">
<p>Data types are categorized in five different groups: <em>elementary</em> types,
<em>tuple</em> types, <em>container</em> types, <em>custom</em> types, and <em>distribution</em> types.
Elementary types are types such as Boolean, integer, real or string.
Tuple types contain at least one element, where each element can be of
different type. In other languages tuple types are called records (Pascal) or
structures (C).
Variables with a container type (a list, set, or dictionary) contain many
elements, where each element is of the same type.
Custom types are created by the user to enhance the readability of the model.
Distributions types are types used for the generation of distributions from
(pseudo-) random numbers.
They are covered in <a href="#tut-chapter-stochastic-behavior">Modeling stochastic behavior</a>.</p>
</div>
<div class="sect3">
<h4 id="tut-elementary-types">Elementary types</h4>
<div class="paragraph">
<p>The elementary data types are Booleans, numbers and strings.
The language provides the elementary data types:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>bool</code> for booleans, with values <code>false</code> and <code>true</code>.</p>
</li>
<li>
<p><code>enum</code> for enumeration types, for example
<code>enum FlagColors = {red, white, blue}</code>,</p>
</li>
<li>
<p><code>int</code> for integers, e.g. <code>-7</code>, <code>20</code>, <code>0</code>.</p>
</li>
<li>
<p><code>real</code> for reals, e.g. <code>3.14</code>, <code>7.0e9</code>.</p>
</li>
<li>
<p><code>string</code> for text strings, e.g. <code>"Hello"</code>, <code>"world"</code>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>

</p>
</div>
<div class="sect4">
<h5 id="tut-booleans">Booleans</h5>
<div class="paragraph">
<p>A boolean value has two possible values, the truth values.
These truth values are <code>false</code> and <code>true</code>.
The value <code>false</code> means that a property is not fulfilled.
A value <code>true</code> means the presence of a property.
Boolean variables are initialized with the value <code>false</code>.</p>
</div>
<div class="paragraph">
<p>In mathematics, various symbols are used for unary and binary boolean
operators.
These operators are also present in Chi.
The most commonly used boolean operators are <code>not</code>, <code>and</code>, and <code>or</code>.
The names of the operators, the symbols in mathematics and the symbols in the
language are presented in <a href="#tut-table-boolsymbols">Table with boolean symbols</a>.</p>
</div>
<table id="tut-table-boolsymbols" class="tableblock frame-all grid-all stretch">
<caption class="title">Table 1. Table with boolean symbols</caption>
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Operator</th>
<th class="tableblock halign-left valign-top">Math</th>
<th class="tableblock halign-left valign-top">Chi</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean not</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">¬</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>not</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean and</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">∧</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>and</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean or</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">∨</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>or</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Examples of boolean expressions are the following.
If <code>z</code> equals <code>true</code>, then the value of <code>(not z)</code> equals <code>false</code>.
If <code>s</code> equals <code>false</code>, and <code>t</code> equals <code>true</code>, then the value of the
expression <code>(s or t)</code> becomes <code>true</code>.</p>
</div>
<div class="paragraph">
<p>

The result of the unary <code>not</code>, the binary
<code>and</code> and <code>or</code> operators, for two variables <code>p</code> and <code>q</code> is given in
<a href="#tut-table-truthtable">Truth table for  <code>not</code>, <code>and</code> and <code>or</code> operators</a>.</p>
</div>
<table id="tut-table-truthtable" class="tableblock frame-all grid-all stretch">
<caption class="title">Table 2. Truth table for  <code>not</code>, <code>and</code> and <code>or</code> operators</caption>
<colgroup>
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top"><code>p</code></th>
<th class="tableblock halign-left valign-top"><code>q</code></th>
<th class="tableblock halign-left valign-top"><code>not p</code></th>
<th class="tableblock halign-left valign-top"><code>p and q</code></th>
<th class="tableblock halign-left valign-top"><code>p or q</code></th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>false</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>true</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>If <code>p = true</code> and <code>q = false</code>, we find for <code>p or q</code> the value <code>true</code>
(third line in <a href="#tut-table-truthtable">Truth table for  <code>not</code>, <code>and</code> and <code>or</code> operators</a>).</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect4">
<h5 id="tut-enumerations">Enumerations</h5>
<div class="paragraph">
<p>Often there are several variants of entities, like types of products,
available resources, available machine types, and so on.</p>
</div>
<div class="paragraph">
<p>One way of coding them is give each a unique number, which results in code
with a lot of small numbers that are not actually numbers, but refer to one
variant.</p>
</div>
<div class="paragraph">
<p>Another way is to give each variant a name (which often already exists), and
use those names instead.</p>
</div>
<div class="paragraph">
<p>For example, to model a traffic light:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">enum TrafficColor = {RED, ORANGE, GREEN};

TrafficColor light = RED;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>enum TrafficColor</code> line lists the available traffic colors. With this
definition, a new type <code>TrafficColor</code> is created, which you can use like any
other type. The line <code>TrafficColor light = RED;</code> creates a new variable
called <code>light</code> and initializes it to the value <code>RED</code>.</p>
</div>
<div class="paragraph">
<p>



</p>
</div>
</div>
<div class="sect4">
<h5 id="tut-numbers">Numbers</h5>
<div class="paragraph">
<p>In the language, two types of numbers are available: integer numbers and real
numbers. Integer numbers are whole numbers, denoted by type <code>int</code> e.g.
<code>3</code>, <code>-10</code>, <code>0</code>. Real numbers are used to present numbers with a
fraction, denoted by type <code>real</code>. E.g. <code>3.14</code>, <code>2.7e6</code> (the scientific
notation for 2.7 million). Note that real numbers <em>must</em> either have a
fraction or use the scientific notation, to let the computer know you mean a
real number (instead of an integer number). Integer variables are initialized
with <code>0</code>. Real variables are initialized with <code>0.0</code>.</p>
</div>
<div class="paragraph">
<p>

For numbers, the normal arithmetic operators are defined.
Expressions can be constructed with these operators.
The arithmetic operators for numbers are listed in <a href="#tut-table-aritoper">The arithmetic operators</a>.</p>
</div>
<table id="tut-table-aritoper" class="tableblock frame-all grid-all stretch">
<caption class="title">Table 3. The arithmetic operators</caption>
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Operator name</th>
<th class="tableblock halign-left valign-top">Notation</th>
<th class="tableblock halign-left valign-top">Comment</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">unary plus</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>+ x</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">unary minus</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>- x</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">raising to the power</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x ^ y</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Always a <code>real</code> result.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">multiplication</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x * y</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">real division</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x / y</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Always a <code>real</code> result.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">division</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x div y</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">For <code>int</code> only.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">modulo</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x mod y</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">For <code>int</code> only.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">addition</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x + y</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">subtraction</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x - y</code></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The priority of the operators is given from high to low.
The unary operators have the strongest binding, and the <code>+</code> and <code>-</code> the
weakest binding. So, <code>-3^2</code> is read as <code>(-3)^2</code> and not <code>-(3^2)</code>,
because the priority rules say that the unary operator binds stronger than the
raising to the power operator. Binding in expressions can be changed by the
use of parentheses.</p>
</div>
<div class="paragraph">
<p>The integer division, denoted by <code>div</code>, gives the biggest integral number
smaller or equal to <code>x / y</code>. The integer remainder, denoted by <code>mod</code>,
gives the remainder after division <code>x - y * (x div y)</code>. So, <code>7 div 3</code>
gives <code>2</code> and <code>-7 div 3</code> gives <code>-3</code>, <code>7 mod 3</code> gives <code>1</code> and <code>-7
mod 3</code> gives <code>2</code>.</p>
</div>
<div class="paragraph">
<p>The rule for the result of an operation is as follows. The real division and
raising to the power operations always produce a value of type <code>real</code>.
Otherwise, if both operands (thus <code>x</code> and <code>y</code>) are of type <code>int</code>, the
result of the operation is of type <code>int</code>. If one of the operands is of type
<code>real</code>, the result of the operation is of type <code>real</code>.</p>
</div>
<div class="paragraph">
<p>





Conversion functions exist to convert a real into an integer.
The function <code>ceil</code> converts a real to the
smallest integer value not less than the real, the
function <code>floor</code> gives the biggest
integer value smaller than or equal to the real, and the
function <code>round</code> rounds the real to the nearest integer
value (or up, if it ends on <code>.5</code>).</p>
</div>
<div class="paragraph">
<p>

Between two numbers a relational operation can be defined.
If for example variable <code>x</code> is smaller than variable <code>y</code>, the expression
<code>x &lt; y</code> equals <code>true</code>. The relational operators, with well-known
semantics, are listed in <a href="#tut-table-reloper">The relational operators</a>.</p>
</div>
<table id="tut-table-reloper" class="tableblock frame-all grid-all stretch">
<caption class="title">Table 4. The relational operators</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name</th>
<th class="tableblock halign-left valign-top">Operator</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">less than</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x &lt;  y</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">at most</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x &lt;= y</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">equals</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x == y</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">differs from</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x != y</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">at least</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x &gt;= y</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">greater than</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x &gt;  y</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="tut-strings">Strings</h5>
<div class="paragraph">
<p>Variables of type string contains a sequence of characters.
A string is enclosed by double quotes.
An example is <code>"Manufacturing line"</code>.
Strings can be composed from different strings.
The concatenation operator (<code>+</code>) adds one string to another, for
example <code>"One" + " " + "string"</code> gives <code>"One string"</code>.
Moreover the relational operators (<code>&lt;</code>, <code>&lt;=</code>, <code>==</code>, <code>!=</code> <code>&gt;=</code>,
and <code>&gt;</code>) can be used to compare strings alphabetically,
e.g. <code>"a" &lt; "aa" &lt; "ab" &lt; "b"</code>.
String variables are initialized with the empty string <code>""</code>.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-tuple-types">Tuple types</h4>
<div class="paragraph">
<p>



Tuple types are used for keeping several (related) kinds of data together in
one variable, e.g. the name and the age of a person.
A tuple variable consists of a number of fields
inside the tuple, where the types of these fields may be different.
The number of fields is fixed. One operator, the projection operator
denoted by a dot (<code>.</code>), is defined for tuples. It selects a field in the
tuple for reading or assigning.</p>
</div>
<div class="sect4">
<h5 id="tut-notation">Notation</h5>
<div class="paragraph">
<p>A type <code>person</code> is a tuple with two fields, a 'name' field of type
<code>string</code>, and an 'age' field of type <code>int</code>, is denoted by:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">type person = tuple(string name; int age)</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tut-operator">Operator</h5>
<div class="paragraph">
<p>A projection operator fetches a field from a tuple.
We define two persons:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">person eva  = (&quot;eva&quot; , 29),
       adam = (&quot;adam&quot;, 27);</code></pre>
</div>
</div>
<div class="paragraph">
<p>And we can speak of <code>eva.name</code> and <code>adam.age</code>, denoting the name of
<code>eva</code> (<code>"eva"</code>) and the age of <code>adam</code> (<code>27</code>).
We can assign a field in a tuple to another variable:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">ae = eva.age;
eva.age = eva.age + 1;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This means that the age of <code>eva</code> is assigned tot variable <code>ae</code>, and the
new age of <code>eva</code> becomes <code>eva.age + 1</code>.</p>
</div>
<div class="paragraph">
<p>By using a multi assignment statement all values of a tuple can be copied into
separate variables:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">string name;
int age;

name, age = eva</code></pre>
</div>
</div>
<div class="paragraph">
<p>This assignment copies the name of <code>eva</code> into variable <code>name</code> of type
<code>string</code> and her age into <code>age</code> of type <code>int</code>.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-container-types">Container types</h4>
<div class="paragraph">
<p>Lists, sets and dictionaries are container types.
A variable of this type contains zero or more identical elements.
Elements can be added or removed in variables of these types.
Variables of a container type are initialized with zero elements.</p>
</div>
<div class="paragraph">
<p>Sets are unordered collections of elements. Each element value either exists
in a set, or it does not exist in a set.
Each element value is unique, duplicate elements are silently discarded.
A list is an ordered collection of elements, that is, there is a first and a last
element (in a non-empty list). A list also allows duplicate element values.
Dictionaries are unordered and have no duplicate value, just like sets, but
you can associate a value (of a different type) with each element value.</p>
</div>
<div class="paragraph">
<p>


Lists are denoted by a pair of (square) brackets.
For example, <code>[7, 8, 3]</code> is a list with three integer elements. Since a list
is ordered, <code>[8, 7, 3]</code> is a different list.
With empty lists, the computer has to know the type of the elements, e.g.
<code>&lt;int&gt;[]</code> is an empty list with integer elements.
The prefix <code>&lt;int&gt;</code> is required in this case.</p>
</div>
<div class="paragraph">
<p>


Sets are denoted by a
pair of (curly) braces, e.g. <code>{7, 8, 3}</code> is a set with three integer
elements.
As with lists, for an empty set a prefix is required, for example
<code>&lt;string&gt;{}</code> is an empty set with strings.
A set is an unordered collection of elements.
The set <code>{7, 8, 3}</code> is a set with three integer numbers. Since order of
the elements does not matter, the same set can also be written as
<code>{8, 3, 7}</code> (or in one of the four other orders).
In addition, each element in a set is unique, the set <code>{8, 7, 8, 3}</code> is
equal to the set <code>{7, 8, 3}</code>.
For readability, elements in a set are normally written in increasing order,
for example <code>{3, 7, 8}</code>.</p>
</div>
<div class="paragraph">
<p>


Dictionaries are denoted by a pair of (curly) braces, whereby an element value
consists of two parts, a 'key' and a 'value' part.
The two parts separated by a colon (<code>:</code>).
For example <code>{"jim" : 32, "john" : 34}</code> is a dictionary with two elements.
The first element has <code>"jim"</code> as key part and <code>32</code> as value part, the
second element has <code>"john"</code> as key part and <code>34</code> as value part.
The key parts of the elements work like a set, they are unordered and
duplicates are silently discarded. A value part is associated with its key
part.
In this example, the key part is the name of a person, while the value part
keeps the age of that person.
Empty dictionaries are written with a type prefix just like lists and sets,
e.g. <code>&lt;string:int&gt;{}</code>.</p>
</div>
<div class="paragraph">
<p>Container types have some built-in functions in common (Functions are
described in <a href="#tut-chapter-functions">Functions</a>):</p>
</div>
<div class="paragraph">
<p>






</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The function <code>size</code> gives the number of elements in a variable, for
example <code>size([7, 8, 3])</code> yields 3; <code>size({7, 8})</code> results in 2;
<code>size({"jim":32})</code> gives 1 (an element consists of two parts).</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>






</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The function <code>empty</code> yields <code>true</code> if there are no elements in variable.
E.g. <code>empty(&lt;string&gt;{})</code> with an empty set of type <code>string</code> is true.
(Here the type <code>string</code> is needed to determine the type of the elements
of the empty set.)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The function <code>pop</code> extracts a value from the provided collection and
returns a tuple with that value, and the collection minus the value.</p>
<div class="paragraph">
<p>

For lists, the first element of the list
becomes the first field of the tuple. The second field of the tuple becomes
the list minus the first list element. For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">pop([7, 8, 3]) -&gt; (7, [8, 3])</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>-&gt;</code> above denotes 'yields'.
The value of the list is split into a 'head' (the first element) and a
'tail' (the remaining elements).</p>
</div>
<div class="paragraph">
<p>

For sets, the first field of the tuple becomes the
value of an arbitrary element from the set. The second field of the tuple
becomes the original set minus the arbitrary element.
For example, a <code>pop</code> on the set <code>{8, 7, 3}</code> has three possible answers:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">pop({8, 7, 3}) -&gt; (7, {3, 8}) or
pop({8, 7, 3}) -&gt; (3, {7, 8}) or
pop({8, 7, 3}) -&gt; (8, {3, 7})</code></pre>
</div>
</div>
<div class="paragraph">
<p>

Performing a <code>pop</code> on a dictionary
follows the same pattern as above, except 'a value from the collection' are
actually a key item and a value item. In this case, the <code>pop</code> function
gives a three-tuple as result. The first field of the tuple becomes the key
of the extracted element, the second field of the tuple becomes the value of
the element, and the third field of the tuple contains the dictionary except
for the extracted element. Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">pop({&quot;a&quot; : 32, &quot;b&quot; : 34}) -&gt; (&quot;a&quot;, 32, {&quot;b&quot; : 34}) or
pop({&quot;a&quot; : 32, &quot;b&quot; : 34}) -&gt; (&quot;b&quot;, 34, {&quot;a&quot; : 32})</code></pre>
</div>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>

</p>
</div>
<div class="sect4">
<h5 id="tut-lists">Lists</h5>
<div class="paragraph">
<p>A list is an ordered collection of elements of the same type.
They are useful to model anything where duplicate values may occur or where
order of the values is significant. Examples are waiting customers in a shop,
process steps in a recipe, or products stored in a warehouse. Various
operations are defined for lists.</p>
</div>
<div class="paragraph">
<p>An element can be fetched by <em>indexing</em>.
This indexing operation does not change the content of the variable.
The first element of a list has index <code>0</code>.
The last element of a list has index <code>size(xs) - 1</code>.
A negative index, say <code>m</code>, starts from the back of the list, or
equivalently, at offset <code>size(xs) + m</code> from the front.
You cannot index non-existing elements.
Some examples, with <code>xs = [7, 8, 3, 5, 9]</code> are:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">xs[0]  -&gt; 7
xs[3]  -&gt; 5
xs[5]  -&gt; ERROR (there is no element at position 5)
xs[-1] -&gt; xs[5 - 1] -&gt; xs[4] -&gt; 9
xs[-2] -&gt; xs[5 - 2] -&gt; xs[3] -&gt; 5</code></pre>
</div>
</div>
<div class="paragraph">
<p>



In <a href="#tut-figure-list-with-indices">A list with indices</a> the list with indices is visualized.
A common name for the first element of a list
(i.e., <code>x[0]</code>) is the <em>head</em> of a list.
Similarly, the last element of a list
(<code>xs[-1]</code>) is also known as <em>head right</em>.</p>
</div>
<div id="tut-figure-list-with-indices" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/list_with_indices.png" alt="list with indices">
</div>
<div class="title">Figure 1. A list with indices</div>
</div>
<div class="paragraph">
<p>A part of a list can be fetched by <em>slicing</em>.
The slicing operation does not change the content of the list, it copies a
contiguous sequence of a list.
The result of a slice operation is again a list, even if the slice contains
just one element.</p>
</div>
<div class="paragraph">
<p>Slicing is denoted by <code>xs[i:j]</code>.
The slice of <code>xs[i:j]</code> is defined as the sequence of elements with index
<code>k</code> such that <code>i &lt;= k &lt; j</code>. Note the upper bound <code>j</code> is noninclusive.
If <code>i</code> is omitted use <code>0</code>.
If <code>j</code> is omitted use <code>size(xs)</code>. If <code>i</code> is greater than or equal to
<code>j</code>, the slice is empty. If <code>i</code> or <code>j</code> is negative, the index is
relative to the end of the list: <code>size(xs) + i</code> or <code>size(xs) + j</code> is
substituted. Some examples with <code>xs = [7, 8, 3, 5, 9]</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">xs[1:3] -&gt; [8, 3]
xs[:2]  -&gt; [7, 8]
xs[1:]  -&gt; [8, 3, 5, 9]
xs[:-1] -&gt; [7, 8, 3, 5]
xs[:-3] -&gt; [7, 8]</code></pre>
</div>
</div>
<div class="paragraph">
<p>



The list of all but the first elements (<code>xs[1:]</code>) is often called <em>tail</em>
and <code>xs[:-1]</code> is also known as <em>tail right</em>.
In <a href="#tut-figure-list-with-slices">A list with indices and slices</a> the slicing operator is visualized.</p>
</div>
<div id="tut-figure-list-with-slices" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/list_with_slices.png" alt="list with slices">
</div>
<div class="title">Figure 2. A list with indices and slices</div>
</div>
<div class="paragraph">
<p>

Two lists can be 'glued' together into a new list.
The glue-ing or concatenation of a list with elements <code>7</code>, <code>8</code>, <code>3</code> and a
list with elements <code>5</code>, and <code>9</code> is denoted by:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">[7, 8, 3] + [5, 9] -&gt; [7, 8, 3, 5, 9]</code></pre>
</div>
</div>
<div class="paragraph">
<p>An element can be added to a list at the rear or at the front.
The action is performed by transforming the element into a list and then
concatenate these two lists. In the next example the value <code>5</code> is added to
the rear, respectively the front, of a list:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">[7, 8, 3] + [5] -&gt; [7, 8, 3, 5]
[5] + [7, 8, 3] -&gt; [5, 7, 8, 3]</code></pre>
</div>
</div>
<div class="paragraph">
<p>





Elements also can be removed from a list.
The <code>del</code> function removes by position, e.g. <code>del(xs, 2)</code> returns the list
<code>xs</code> without its third element (since positions start at index 0).
Removing a value by value can be performed by the subtraction operator <code>-</code>.
For instance, consider the following subtractions:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">[1, 4, 2, 4, 5] - [2] -&gt; [1, 4, 4, 5]
[1, 4, 2, 4, 5] - [4] -&gt; [1, 2, 4, 5]
[1, 4, 2, 4, 5] - [8] -&gt; [1, 4, 2, 4, 5]</code></pre>
</div>
</div>
<div class="paragraph">
<p>Every element in the list at the right is searched in the list at the left,
and if found, the <em>first</em> occurrence is removed.
In the first example, element <code>2</code> is removed. In the second example, only
the first value <code>4</code> is removed and the second value (at position 3) is kept.
In the third example, nothing is removed, since value <code>8</code> is not in the list
at the left.</p>
</div>
<div class="paragraph">
<p>When the list at the right is longer than one element, the operation is repeated.
For example, consider <code>xs - ys</code>, whereby <code>xs = [1, 2, 3, 4, 5]</code> and
<code>ys = [6, 4, 2, 3]</code>. The result is computed as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">    [1, 2, 3, 4, 5] - [6, 4, 2, 3]
-&gt; ([1, 2, 3, 4, 5] - [6]) - [4, 2, 3]
-&gt;  [1, 2, 3, 4, 5] - [4, 2, 3]
-&gt; ([1, 2, 3, 4, 5] - [4]) - [2, 3]
-&gt;  [1, 2, 3,    5] - [2, 3]
-&gt; ([1, 2, 3,    5] - [2]) - [3]
-&gt;  [1,    3,    5] - [3]
-&gt; [1,5]</code></pre>
</div>
</div>
<div class="paragraph">
<p>Lists have two relational operators, the equal operator and the not-equal operator.
The equal operator (<code>==</code>) compares two lists. If the lists have the same
number of elements and all the elements are pair-wise the same, the result of
the operation is <code>true</code>, otherwise <code>false</code>.
The not-equal operator (<code>!=</code>) does the same check, but with an opposite result.
Some examples, with <code>xs = [7, 8, 3]</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">xs == [7, 8, 3] -&gt; true
xs == [7, 7, 7] -&gt; false</code></pre>
</div>
</div>
<div class="paragraph">
<p>The membership operator (<code>in</code>) checks if an element is in a list.
Some examples, with <code>xs = [7, 8, 3]</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">6 in xs -&gt; false
7 in xs -&gt; true
8 in xs -&gt; true</code></pre>
</div>
</div>
</div>
<div class="sect4">
<h5 id="tut-initialization">Initialization</h5>
<div class="paragraph">
<p>A list variable is initialized with a list with zero elements, for example in:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">list int xs;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The initial value of <code>xs</code> equals <code>&lt;int&gt;[]</code>.</p>
</div>
<div class="paragraph">
<p>A list can be initialized with a number, denoting the number of elements in the list:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">list(2) int ys</code></pre>
</div>
</div>
<div class="paragraph">
<p>This declaration creates a list with <code>2</code> elements, whereby each element of
type <code>int</code> is initialized.
The initial value of <code>ys</code> equals <code>[0, 0]</code>.
Another example with a list of lists:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">list(4) list(2) int zm</code></pre>
</div>
</div>
<div class="paragraph">
<p>This declaration initializes variable <code>zm</code> with the value
<code>[ [0, 0], [0, 0], [0, 0], [0, 0] ]</code>.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect4">
<h5 id="tut-sets">Sets</h5>
<div class="paragraph">
<p>Set operators for union, intersection and difference are present.
<a href="#tut-table-set-operations">Table with set operations</a> gives the name, the mathematical notation and
the notation in the Chi language.</p>
</div>
<table id="tut-table-set-operations" class="tableblock frame-all grid-all stretch">
<caption class="title">Table 5. Table with set operations</caption>
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Operator</th>
<th class="tableblock halign-left valign-top">Math</th>
<th class="tableblock halign-left valign-top">Chi</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">set union</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">∪</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>+</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">set intersection</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">∩</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>*</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">set difference</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">∖</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>-</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The union of two sets merges the values of both sets into one, that is, the
result is the collection of values that appear in at least one of the
arguments of the union operation. Some examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">{3, 7, 8} + {5, 9} -&gt; {3, 5, 7, 8, 9}</code></pre>
</div>
</div>
<div class="paragraph">
<p>All permutations with the elements <code>3</code>, <code>5</code>, <code>7</code>, <code>8</code> and <code>9</code> are
correct (sets have no order, all permutations are equivalent). To keep sets
readable the elements are sorted in increasing order in this tutorial.</p>
</div>
<div class="paragraph">
<p>Values that occur in both arguments, appear only one time in the result (sets
silently discard duplicate elements). For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">{3, 7, 8} + {7, 9} -&gt; {3, 7, 8, 9}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The intersection of two sets gives a set with the common elements, that is,
all values that occur in <em>both</em> arguments.
Some examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">{3, 7, 8} * {5, 9} -&gt; &lt;int&gt;{}   # no common element
{3, 7, 8} * {7, 9} -&gt; {7}       # only 7 in common</code></pre>
</div>
</div>
<div class="paragraph">
<p>Set difference works much like subtraction on lists, except elements occur at
most one time (and have no order). The operation computes 'remaining
elements'. The result is a new set containing all values from the first set
which are not in the second set.
Some examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">{3, 7, 8} - {5, 9} -&gt; {3, 7, 8}
{3, 7, 8} - {7, 9} -&gt; {3, 9}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The membership operator <code>in</code> works on sets too:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">3 in {3, 7, 8} -&gt; true
9 in {3, 7, 8} -&gt; false</code></pre>
</div>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect4">
<h5 id="tut-dictionaries">Dictionaries</h5>
<div class="paragraph">
<p>Elements of dictionaries are stored according to a key, while lists elements
are ordered by a (relative) position, and set elements are not ordered at all.
A dictionary can grow and shrink by adding or removing elements respectively,
like a list or a set.
An element of a dictionary is accessed by the key of the element.</p>
</div>
<div class="paragraph">
<p>The dictionary variable <code>d</code> of type <code>dict(string : int)</code> is given by:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">dict (string : int) d =
    {&quot;jim&quot;  : 32,
     &quot;john&quot; : 34,
     &quot;adam&quot; : 25}</code></pre>
</div>
</div>
<div class="paragraph">
<p>Retrieving values of the dictionary by using the key:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">d[&quot;john&quot;] -&gt; 34
d[&quot;adam&quot;] -&gt; 25</code></pre>
</div>
</div>
<div class="paragraph">
<p>Using a non-existing key to retrieve a value results in a error message.</p>
</div>
<div class="paragraph">
<p>A new value can be assigned to the variable by selecting the key of the element:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">d[&quot;john&quot;] = 35</code></pre>
</div>
</div>
<div class="paragraph">
<p>This assignment changes the value of the <code>"john"</code> item to <code>35</code>.
The assignment can also be used to add new items:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">d[&quot;lisa&quot;] = 19</code></pre>
</div>
</div>
<div class="paragraph">
<p>Membership testing of keys in dictionaries can be done with the <code>in</code> operator:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">&quot;jim&quot; in d -&gt; true
&quot;peter&quot; in d -&gt; false</code></pre>
</div>
</div>
<div class="paragraph">
<p>Merging two dictionaries is done by adding them together. The value of the
second dictionary is used when a key exists in both dictionaries:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">{1 : 1, 2 : 2} + {1 : 5, 3 : 3} -&gt; {1 : 5, 2 : 2, 3 : 3}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The left dictionary is copied, and updated with each item of the right dictionary.</p>
</div>
<div class="paragraph">
<p>Removing elements can be done with subtraction, based on key values. Lists and
sets can also be used to denote which keys should be removed.
A few examples for <code>p</code> is <code>{1 : 1, 2 : 2}</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">p - {1 : 3, 5 : 5} -&gt; {2 : 2}
p - {1, 7} -&gt; {2 : 2}
p - [2, 8] -&gt; {1 : 1}</code></pre>
</div>
</div>
<div class="paragraph">
<p>Subtracting keys that do not exist in the left dictionary is allowed and has
no effect.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-custom-types">Custom types</h4>
<div class="paragraph">
<p>To structure data the language allows the creation of new types. The
definition can only be done at global level, that is, outside any <code>proc</code>,
<code>func</code>, <code>model</code>, or <code>xper</code> definition.</p>
</div>
<div class="paragraph">
<p>Types can be used as alias for elementary data types to increase readability,
for example a variable of type <code>item</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">type item = real;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Variables of type <code>item</code> are, e.g.:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">item box, product;

box = 4.0; product = 120.5;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This definition creates the possibility to speak about an item.</p>
</div>
<div class="paragraph">
<p>Types also can be used to make combinations of other data types, e.g. a
recipe:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">type step   = tuple(string name; real process_time),
     recipe = tuple(int id; list step steps);</code></pre>
</div>
</div>
<div class="paragraph">
<p>A type <code>step</code> is defined by a <code>tuple</code> with two fields, a field with
<code>name</code> of type <code>string</code>, denoting the name of the step, and a field with
<code>process_time</code> of type <code>real</code>, denoting the duration of the (processing)
step.
The <code>step</code> definition is used in the type <code>recipe</code>.
Type <code>recipe</code> is defined by a <code>tuple</code> with two fields, an <code>id</code> of type
<code>int</code>, denoting the identification number, and a field <code>steps</code> of type
<code>list step</code>, denoting a list of single steps.
Variables of type recipe are, e.g.:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">recipe plate, bread;
plate = (34, [(&quot;s&quot;, 10.8), (&quot;w&quot;, 13.7), (&quot;s&quot;, 25.6)]);
bread = (90, [(&quot;flour&quot;, 16.3), (&quot;yeast&quot;, 6.9)]);</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-exercises-2">Exercises</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Exercises for integer numbers.
What is the result of the following expressions:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">-5 ^ 3
-5 * 3
5 mod 3</code></pre>
</div>
</div>
</li>
<li>
<p>Exercises for tuples.
Given are tuple type <code>box</code> and variable <code>x</code> of type <code>box</code>:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">type box = tuple(string name; real weight);
box x = (&quot;White&quot;, 12.5);</code></pre>
</div>
</div>
<div class="paragraph">
<p>What is the result of the following expressions:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">x.name
x.real
x</code></pre>
</div>
</div>
</li>
<li>
<p>Exercises for lists.
Given is the list <code>xs = [0,1,2,3,4,5,6]</code>.
Determine the outcome of:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">xs[0]
xs[1:]
size(xs)
xs + [3]
[4,5] + xs
xs - [2,2,3]
xs - xs[2:]
xs[0] + (xs[1:])[0]</code></pre>
</div>
</div>
</li>
</ol>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-chapter-statements">Statements</h3>
<div class="paragraph">
<p>There are several kinds of statements, such as assignment statements, choice
statements (select and if statements), and loop statements (while and for
statements).</p>
</div>
<div class="paragraph">
<p>Semicolons are required after statements, except at the end of a sequence
(that is, just before an <code>end</code> keyword and after the last statement) or
after the keyword <code>end</code>. In this text semicolons are omitted before <code>end</code>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="sect3">
<h4 id="tut-the-assignment-statement">The assignment statement</h4>
<div class="paragraph">
<p>An <em>assignment</em> statement is used to assign values to variables.
An example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">y = x + 10</code></pre>
</div>
</div>
<div class="paragraph">
<p>This assignment consists of a name of the variable (<code>y</code>), an assignment
symbol (<code>=</code>), and an expression (<code>x + 10</code>) yielding a value. For example,
when <code>x</code> is <code>2</code>, the value of the expression is <code>12</code>.
Execution of this statement copies the value to the <code>y</code> variable,
immediately after executing the assignment, the value of the <code>y</code> variable is
<code>10</code> larger than the value of the <code>x</code> variable at this point of the
program.
The value of the <code>y</code> variable will not change until the next assignment to
<code>y</code>, for example, performing the assignment <code>x = 7</code> has no effect on the
value of the <code>y</code> variable.</p>
</div>
<div class="paragraph">
<p>An example with two assignment statements:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">i = 2;
j = j + 1</code></pre>
</div>
</div>
<div class="paragraph">
<p>The values of <code>i</code> becomes 2, and the value of <code>j</code> is incremented.
Independent assignments can also be combined in a multi-assignment, for
example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">i, j = 2, j + 1</code></pre>
</div>
</div>
<div class="paragraph">
<p>The result is the same as the above described example, the first value goes
into the first variable, the second value into the second variable, etc.</p>
</div>
<div class="paragraph">
<p>In an assignment statement, first all expression values are computed before
any assignment is actually done. In the following example the values of <code>x</code>
and <code>y</code> are swapped:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">x, y = y, x;</code></pre>
</div>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-the-if-statement">The <code>if</code> statement</h4>
<div class="paragraph">
<p>The <em>if</em> statement is used to express decisions.
An example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">if x &lt; 0:
    y = -x
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>If the value of <code>x</code> is negative, assign its negated value to <code>y</code>.
Otherwise, do nothing (skip the <code>y = -x</code> assignment statement).</p>
</div>
<div class="paragraph">
<p>To perform a different statement when the decision fails, an <code>if</code>-statement
with an <code>else</code> alternative can be used. It has the following form.
An example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">if a &gt; 0:
    c = a
else:
    c = b
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>If <code>a</code> is positive, variable <code>c</code> gets the value of <code>a</code>, otherwise it
gets the value of <code>b</code>.</p>
</div>
<div class="paragraph">
<p>In some cases more alternatives must be tested. One way of writing it is by
nesting an <code>if</code>-statement in the <code>else</code> alternative of the previous
<code>if</code>-statement, like:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">if i &lt; 0:
    writeln(&quot;i &lt; 0&quot;)
else:
    if i == 0:
        writeln(&quot;i = 0&quot;)
    else:
        if i &gt; 0 and i &lt; 10:
            writeln(&quot;0 &lt; i &lt; 10&quot;)
        else:
            # i must be greater or equal 10
            writeln(&quot;i &gt;= 10&quot;)
        end
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This tests <code>i &lt; 0</code>. If it fails, the <code>else</code> is chosen, which contains a
second <code>if</code>-statement with the <code>i == 0</code> test. If that test also fails, the
third condition <code>i &gt; 0 and i &lt; 10</code> is tested, and one of the <code>writeln</code>
statements is chosen.</p>
</div>
<div class="paragraph">
<p>The above can be written more compactly by combining an <code>else</code>-part and the
<code>if</code>-statement that follows, into an <code>elif</code> part. Each <code>elif</code> part
consists of a boolean expression, and a statement list. Using <code>elif</code> parts
results in:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">if i &lt; 0:
    writeln(&quot;i &lt; 0&quot;)
elif i == 0:
    writeln(&quot;i = 0&quot;)
elif i &gt; 0 and i &lt; 10:
    writeln(&quot;0 &lt; i &lt; 10&quot;)
else:
    # i must be greater or equal 10
    writeln(&quot;i &gt;= 10&quot;)
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Each alternative starts at the same column, instead of having increasing
indentation.
The execution of this combined statement is still the same, an alternative is
only tested when the conditions of all previous alternatives fail.</p>
</div>
<div class="paragraph">
<p>
Note that the line <code># i must be greater or equal 10</code> is a comment to clarify
when the alternative is chosen. It is not executed by the simulator. You can
write comments either at a line by itself like above, or behind program code.
It is often useful to clarify the meaning of variables, give a more detailed
explanation of parameters, or add a line of text describing what the purpose
of a block of code is from a birds-eye view.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-the-while-statement">The <code>while</code> statement</h4>
<div class="paragraph">
<p>The <em>while</em> statement is used for repetitive execution of the same statements,
a so-called <em>loop</em>. A fragment that calculates the sum of <code>10</code> integers,
<code>10, 9, 8, ..., 3, 2, 1</code>, is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">int i = 10, sum;

while i &gt; 0:
    sum = sum + i; i = i - 1
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Each iteration of a <code>while</code> statement starts with evaluating its condition
(<code>i &gt; 0</code> above). When it holds, the statements inside the while (the
<code>sum = sum + i; i = i - 1</code> assignments) are executed (which adds <code>i</code> to the sum
and decrements <code>i</code>). At the end of the statements, the <code>while</code> is executed
again by evaluating the condition again. If it still holds, the next iteration
of the loop starts by executing the assignment statements again, etc.
When the condition fails (<code>i</code> is equal to <code>0</code>), the <code>while</code> statement
ends, and execution continues with the statement following <code>end</code>.</p>
</div>
<div class="paragraph">
<p>A fragment with an infinite loop is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">while true:
    i = i + 1;
    ...
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The condition in this fragments always holds, resulting in <code>i</code> getting
incremented 'forever'. Such loops are very useful to model things you switch
on but never off, e.g. processes in a factory.</p>
</div>
<div class="paragraph">
<p>A fragment to calculate <code>z = x ^ y</code>, where <code>z</code> and <code>x</code> are of type
<code>real</code>, and <code>y</code> is of type <code>integer</code> with a non-negative value, showing
the use of two <code>while</code> loops, is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">real x; int y; real z = 1;

while y &gt; 0:
    while y mod 2 == 0:
        y = y div 2; x = x * x
    end;
    y = y - 1; z = x * z
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>A fragment to calculate the greatest common divisor (GCD) of two integer
numbers <code>j</code> and <code>k</code>, showing the use of <code>if</code> and <code>while</code> statements,
is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">while j != k:
    if j &gt; k:
        j = j - k
    else:
        k = k - j
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The symbol <code>!=</code> stands for 'differs from' ('not equal').</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-for-statement">The <code>for</code> statement</h4>
<div class="paragraph">
<p>The while statement is useful for looping until a condition fails. The <em>for</em>
statement is used for iterating over a collection of values. A fragment with
the calculation of the sum of <code>10</code> integers:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">int sum;

for i in range(1, 11):
    sum = sum + i
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>

The result of the expression <code>range(1, 11)</code>
is a list whose items are consecutive integers from <code>1</code> (included)
up to <code>11</code> (excluded): <code>[1, 2, 3, ..., 9, 10]</code>.</p>
</div>
<div class="paragraph">
<p>The following example illustrates the use of the for statement in relation
with container-type variables. Another way of calculating the sum of a list of
integer numbers:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">list int xs = [1, 2, 3, 5, 7, 11, 13];
int sum;

for x in xs:
    sum = sum + x
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This statement iterates over the elements of list <code>xs</code>.
This is particularly useful when the value of <code>xs</code> may change before the
<code>for</code> statement.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-notes">Notes</h4>
<div class="paragraph">
<p>In this chapter the most used statements are described. Below are a few other
statements that may be useful some times:</p>
</div>
<div class="paragraph">
<p>



. Inside loop statements, the <em>break</em> and <em>continue</em> statements are allowed.
The <code>break</code> statements allows 'breaking
out of a loop', that is, abort a while or a for statement.
The <code>continue</code> statement aborts
execution of the statements in a loop.
It 'jumps' to the start of the next iteration.</p>
</div>
<div class="paragraph">
<p>

. A rarely used statement is the <code>pass</code> statement.
It&#8217;s like an <code>x = x</code> assignment statement, but more clearly
expresses 'nothing is done here'.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-exercises-3">Exercises</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Study the Chi specification below and explain why, though it works, it is
not an elegant way of modeling the selection.
Make a suggestion for a shorter, more elegant version of:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">model M():
    int i = 3;

    if (i &lt;  0) == true:
        write(&quot;%d is a negative number\n&quot;, i);
    elif (i &lt;= 0) == false:
        write(&quot;%d is a positive number\n&quot;, i);
    end
end</code></pre>
</div>
</div>
</li>
<li>
<p>Construct a list with the squares of the integers 1 to 10.</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>using a <code>for</code> statement, and</p>
</li>
<li>
<p>using a <code>while</code> statement.</p>
</li>
</ol>
</div>
</li>
<li>
<p>Write a program that</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>Makes a list with the first 50 prime numbers.</p>
</li>
<li>
<p>Extend the program with computing the sum of the first 7 prime numbers.</p>
</li>
<li>
<p>Extend the program with computing the sum of the last 11 prime numbers.</p>
</li>
</ol>
</div>
</li>
</ol>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-chapter-functions">Functions</h3>
<div class="paragraph">
<p>In a model, computations must be performed to process the information that is
sent around.
Short and simple calculations are written as assignments between the other
statements, but for longer computations or computations that are needed at
several places in the model, a more encapsulated environment is useful, a
<em>function</em>.
In addition, the language comes with a number of built-in functions, such as
<code>size</code> or <code>empty</code> on container types.
An example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">func real mean(list int xs):
    int sum;

    for x in xs:
        sum = sum + x
    end;
    return sum / size(xs)
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>func</code> keyword indicates it is a function. The name of the function is
just before the opening parenthesis, in this example <code>mean</code>. Between the
parentheses, the input values (the <em>formal parameters</em>) are listed. In this
example, there is one input value, namely <code>list int</code> which is a list of
integers. Parameter name <code>xs</code> is used to refer to the input value in the
body of the function.
Between <code>func</code> and the name of the function is the type of the computation
result, in this case, a <code>real</code> value.
In other words, this <code>mean</code> function takes a list of integers as input, and
produces a <code>real</code> value as result.</p>
</div>
<div class="paragraph">
<p>

The colon at the end of the first line indicates the start of the computation.
Below it are new variable declarations (<code>int sum</code>), and statements to
compute the value, the <em>function algorithm</em>.
The <code>return</code> statement denotes the end of
the function algorithm.
The value of the expression behind it is the result of the calculation.
This example computes and returns the mean value of the integers of the list.</p>
</div>
<div class="paragraph">
<p>Use of a function (<em>application</em> of a function) is done by using its name,
followed by the values to be used as input (the <em>actual parameters</em>).
The above function can be used like:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">m = mean([1, 3, 5, 7, 9])</code></pre>
</div>
</div>
<div class="paragraph">
<p>The actual parameter of this function application is <code>[1, 3, 5, 7, 9]</code>.
The function result is <code>(1 + 3 + 5 + 7 + 9)/5</code> (which is <code>5.0</code>), and
variable <code>m</code> becomes <code>5.0</code>.</p>
</div>
<div class="paragraph">
<p>


A function is a mathematical function: the result of a function is the same
for the same values of input parameters.
A function has no <em>side-effect</em>, and it cannot access variables outside the body.
For example, it cannot access <code>time</code> (explained in
<a href="#tut-servers-with-time">Servers with time</a>) directly, it has to be passed in through
the parameter list.</p>
</div>
<div class="paragraph">
<p>A function that calculates the sign of a real number, is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">func int sign(real r):
    if r &lt; 0:
        return -1
    elif r = 0:
        return  0
    end;
    return  1
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The sign function returns:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>if <code>r</code> is smaller than zero, the value minus one;</p>
</li>
<li>
<p>if <code>r</code> equals zero, the value zero; and</p>
</li>
<li>
<p>if <code>r</code> is greater than zero, the value one.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The computation in a function ends when it encounters a <code>return</code> statement.
The <code>return 1</code> at the end is therefore only executed when both
<code>if</code> conditions are false.</p>
</div>
<div class="paragraph">
<p>


</p>
</div>
<div class="sect3">
<h4 id="tut-sorted-lists">Sorted lists</h4>
<div class="paragraph">
<p>The language allows <em>recursive</em> functions as well as <em>higher-order</em> functions.
Explaining them in detail is beyond the scope of this tutorial, but these
functions are useful for making and maintaining sorted lists.
Such a sorted list is useful for easily getting the smallest (or largest) item
from a collection, for example the order with the nearest deadline.</p>
</div>
<div class="paragraph">
<p>To sort a list, the first notion that has to be defined is the desired order,
by making a function of the following form:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">func bool decreasing(int x, y):
    return x &gt;= y
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The function is called <em>predicate function</em>.
It takes two values from the list (two integers in this case), and produces a
boolean value, indicating whether the parameters are in the right order.
In this case, the function returns <code>true</code> when the first parameter is larger
or equal than the second parameter, that is, larger values must be before
smaller values (for equal values, the order does not matter). This results in
a list with decreasing values.</p>
</div>
<div class="paragraph">
<p>The requirements on <em>any</em> predicate function <code>f</code> are:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>If <code>x != y</code>, either <code>f(x, y)</code> must hold or <code>f(y, x)</code> must hold, but
not both. (Unequal values must have a unique order.)</p>
</li>
<li>
<p>If <code>x == y</code>, both <code>f(x, y)</code> and <code>f(y, x)</code> must hold. (Equal values
can be placed in arbitrary order.)</p>
</li>
<li>
<p>For values <code>x</code>, <code>y</code>, and <code>z</code>, if <code>f(x, y)</code> holds and <code>f(y, z)</code>
holds (that is <code>x &gt;= y</code> and <code>y &gt;= z</code>), then <code>f(x, z)</code> must also hold
(that is, <code>x &gt;= z</code> should also be true).</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>(The order between <code>x</code> and <code>z</code> must be stable, even when you compare
with an intermediate value <code>y</code> between <code>x</code> and <code>z</code>.)</p>
</div>
<div class="paragraph">
<p>These requirements hold for functions that test on <code>&lt;=</code> or <code>&gt;=</code> between
two values, like above.</p>
</div>
<div class="paragraph">
<p>If you do not provide a proper predicate function, the result may not be
sorted as you expect, or the simulator may abort when it fails to find a
proper sorting order.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="sect4">
<h5 id="tut-sort">Sort</h5>
<div class="paragraph">
<p>The first use of such a predicate function is for sorting a list. For example
list <code>[3, 8, 7]</code> is sorted decreasingly (larger numbers
before smaller numbers) with the following statement:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">ys = sort([3, 8, 7], decreasing)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Sorting is done with the <em>sort</em> function, it takes two parameters, the list to
sort, and the predicate <em>function</em>. (There are no parentheses <code>()</code> behind
<code>decreasing</code>!) The value of list <code>ys</code> becomes <code>[8, 7, 3]</code>.</p>
</div>
<div class="paragraph">
<p>Another sorting example is a list of type <code>tuple(int number, real slack)</code>,
where field <code>number</code> denotes the number of an item, and field <code>slack</code>
denotes the slack time of the item. The list should be sorted in ascending
order of the slack time. The type of the item is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">type item = tuple(int number, real slack);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The predicate function <code>spred</code> is defined by:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">func bool spred(item x, y):
    return x.slack &lt;= y.slack
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Function <code>spred</code> returns <code>true</code> if the two elements are in increasing
order in the list, otherwise <code>false</code>.
Note, the parameters of the function are of type <code>item</code>.
Given a variable <code>ps</code> equal to <code>[(7, 21.6), (5, 10.3), (3, 35.8)]</code>.
The statement denoting the sorting is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">qs = sort(ps, spred)</code></pre>
</div>
</div>
<div class="paragraph">
<p>variable <code>qs</code> becomes <code>[(5, 10.3), (7, 21.6), (3, 35.8)]</code>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="tut-insert">Insert</h5>
<div class="paragraph">
<p>Adding a new value to a sorted list is the second use of higher-order
functions. The simplest approach would be to add the new value to the head or
rear of the list, and sort the list again, but sorting an almost sorted list
is very expensive.
It is much faster to find the right position in the already sorted list, and
insert the new value at that point.
This function also exists, and is named <code>insert</code>.
An example is (assume <code>xs</code> initially contains <code>[3,8]</code>):</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">xs = insert(xs, 7, increasing)</code></pre>
</div>
</div>
<div class="paragraph">
<p>where <code>increasing</code> is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">func bool increasing(int x, y):
    return x &lt;= y
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>insert</code> call assigns the result <code>[3,7,8]</code> as new value to <code>xs</code>,
<code>7</code> is inserted in the list.</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-chapter-input-and-output">Input and output</h3>
<div class="paragraph">
<p>A model communicates with the outside world, e.g. screen and files, by the use
of read statements for input of data, and write statements for output of data.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="sect3">
<h4 id="tut-the-read-function">The <code>read</code> function</h4>
<div class="paragraph">
<p>Data can be read from the command line or from a file by <em>read</em> functions.
A read function requires a type value for each parameter to be read.
An example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">int i; string s;

i = read(int);
s = read(string);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Two values, an integer value and a string value are read from the command line.
On the command line the two values are typed:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">1 &quot;This is a string&quot;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Variable <code>i</code> becomes <code>1</code>, and string <code>s</code> becomes <code>"This is a string"</code>.
The double quotes are required! Parameter values are separated by a space or a
tabular stop. Putting each value on a separate line also works.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-reading-from-file">Reading from a file</h4>
<div class="paragraph">
<p>Data also can be read from files. An example fragment:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">type row = tuple(string name; list int numbers);

file f;
int i;
list row rows;

f = open(&quot;data_file.txt&quot;, &quot;r&quot;);
i = read(f, int);
rows = read(f, list row);
close(f)</code></pre>
</div>
</div>
<div class="paragraph">
<p>Before a file can be used, the file has to be declared, <em>and</em> the file has to
be opened by statement <code>open</code>.
Statement <code>open</code> has two parameters, the first parameter denotes the file
name (as a string), and the second parameter describes the way the file is
used. In this case, the file is opened in a read-only mode, denoted by string
"r".</p>
</div>
<div class="paragraph">
<p>Reading values works in the same way as before, except you cannot add new text
in the file while reading it. Instead, the file is processed sequentially from
begin to end, with values separated from each other by white space (spaces,
tabs, and new-lines). You can read values of different types from the same
file, as long as the value in the file matches with the type that you ask.
For example, the above Chi program could read the following data from
<code>data_file.txt</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">21
[(&quot;abc&quot;, [7,21]),
 (&quot;def&quot;, [8,31,47])]</code></pre>
</div>
</div>
<div class="paragraph">
<p>After enough values have been read, the file should be closed with the
statement <code>close</code>, with one parameter, the variable of the file.
If a file is still open after an experiment, the file is closed automatically
before the program quits.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-advanced-file-reading">Advanced reading from a file</h4>
<div class="paragraph">
<p>When reading from a file, the <code>eof</code> and <code>eol</code> functions can be used to
obtain information about the white space around the values.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The <code>eof</code> (end of file) function returns <code>true</code> if you have read the
last value (that is, there are no more values to read).</p>
</li>
<li>
<p>The <code>eol</code> (end of line) function returns <code>true</code> if there are no more
values at the current line. In particular, the <code>eol</code> function returns
<code>true</code> when the end of the file has been reached.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>These functions can be used to customize reading of more complicated values.
As an example, you may want to read the same <code>list row</code> value as above, but
without having all the comma&#8217;s, quotes, parentheses, and brackets of the
literal value <code>[("abc", [7,21]), ("def", [8,31,47])]</code>.
Instead, imagine having a file <code>clean_data.txt</code> with the following layout:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">abc 7 21
def 8 31 47</code></pre>
</div>
</div>
<div class="paragraph">
<p>Each line is one row. It starts with a one-word string, followed by a list of
integer numbers.
By using the <code>eof</code> and <code>eol</code> functions, you can read this file in the
following way:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">file f;
list row rows;
string name;
list int xs;

f = open(&quot;clean_data.txt&quot;, &quot;r&quot;);
while not eof(f):
    name = read(f, string);
    xs = &lt;int&gt;[];
    while not eol(f): # Next value is at the same line.
        xs = xs + [read(f, int)];
    end
    rows = rows + [(name, xs)];
end
close(f);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Each line is processed individually, where <code>eol</code> is used to find out whether
the last value of a line has been read. The reading loop terminates when
<code>eof</code> returns <code>true</code>.</p>
</div>
<div class="paragraph">
<p>Note that <code>eol</code> returns whether the current line has no more values. It does
not tell you how many lines down the next value is. For example, an empty line
inserted between the  <code>abc 7 21</code> line and the <code>def 8 31 47</code> line is
skipped silently. If you want that information, you can use the <code>newlines</code>
function instead.</p>
</div>
<div class="paragraph">
<p>


</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-the-write-statement">The <code>write</code> statement</h4>
<div class="paragraph">
<p>The <em>write</em> statement is used for for output of data to the screen of the
computer. Data can also be written to a file.</p>
</div>
<div class="paragraph">
<p>The first argument of <code>write</code> (or the second argument if you write to a file,
see below) Is called the <em>format string</em>. It is a template of the text to
write, with 'holes' at the point where a data value is to be written.</p>
</div>
<div class="paragraph">
<p>Behind the format string, the data values to write are listed. The first value is
written in the first 'hole', the second value in the second 'hole' and so
on. The holes are also called <em>place holders</em>. A place holder starts with
<code>%</code> optionally followed by numbers or some punctuation (its meaning is
explained below). A place holder ends with a <em>format specifier</em>, a single
letter like <code>s</code> or <code>f</code>. An example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">int i = 5;

write(&quot;i equals %s&quot;, i)</code></pre>
</div>
</div>
<div class="paragraph">
<p>In this example the text <code>i equals 5</code> is written to the screen by the
<code>write</code> statement. The <code>"i equals %s"</code> format string defines what output
is written. All 'normal' characters are copied as-is. The <code>%s</code> place holder
is not copied. Instead the first data value (in this case <code>i</code>) is inserted.</p>
</div>
<div class="paragraph">
<p>The <code>s</code> in the place holder is the format specifier. It means 'print as
string'. The <code>%s</code> is a general purpose format specifier, it works with
almost every type of data. For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">list dict(int:real) xs = [{1 : 5.3}];

write(&quot;%s&quot;, xs)</code></pre>
</div>
</div>
<div class="paragraph">
<p>will output the contents of <code>xs</code> (<code>{1 : 5.3}</code>).</p>
</div>
<div class="paragraph">
<p>In general, this works nicely, but for numeric values a little more control
over the output is often useful.
To this end, there are also format specifiers <code>d</code> for integer numbers, and
<code>f</code> for real numbers.
An example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">int i = 5;
real r = 3.14;

write(&quot;%4d/%8.2f&quot;, i, r)</code></pre>
</div>
</div>
<div class="paragraph">
<p>This fragment has the effect that the values of <code>i</code> and <code>r</code> are written to
the screen as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">   5/    3.14</code></pre>
</div>
</div>
<div class="paragraph">
<p>The value of <code>i</code> is written in <code>d</code> format (as <code>int</code> value), and the
value of <code>r</code> is written in <code>f</code> format (as <code>real</code> value).
The symbols <code>d</code> and <code>f</code> originate respectively from 'decimal', and
'floating point' numbers.
The numbers <code>4</code> respectively <code>8.2</code> denote that the integer value is
written four positions wide (that is, 3 spaces and a <code>5</code> character), and
that the real value is written eight positions wide, with two characters after
the decimal point (that is, 4 spaces and the text <code>3.14</code>).</p>
</div>
<div class="paragraph">
<p>A list of format specifiers is given in <a href="#tut-table-format-specifiers">Format specifiers</a>.</p>
</div>
<table id="tut-table-format-specifiers" class="tableblock frame-all grid-all stretch">
<caption class="title">Table 6. Format specifiers</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Format specifier</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>%b</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean value (outputs <code>false</code> or <code>true</code>)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>%d</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">integer</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>%10d</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">integer, at least ten characters wide</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>%f</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">real</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>%10f</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">real, at least ten characters wide</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>%.4f</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">real, four characters after the decimal point</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>%10.4f</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">real, at least ten characters wide with four characters after the decimal point</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>%s</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">character string <code>s</code>, can also write other types of data</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>%%</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">the character <code>%</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Finally, there are also a few special character sequences called <em>escape
sequence</em> which allow to write characters like horizontal tab (which means
'jump to next tab position in the output'), or newline (which means 'go to the
next line in the output') in a string.
An escape sequence consists of two characters. First a backslash character
<code>\</code>, followed by a second character.
The escape sequence are presented in <a href="#tut-table-escape-sequences">Escape sequences in strings</a>.</p>
</div>
<table id="tut-table-escape-sequences" class="tableblock frame-all grid-all stretch">
<caption class="title">Table 7. Escape sequences in strings</caption>
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Sequence</th>
<th class="tableblock halign-left valign-top">Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>\n</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">new line</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>\t</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">horizontal tab</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>\"</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">the character <code>"</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>\\</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">the character <code>\</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>An example is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">int i = 5, j = 10;
real r = 3.14;
write(&quot;%6d\t%d\n\t%.2f\n&quot;, i, j, r)</code></pre>
</div>
</div>
<div class="paragraph">
<p>The result looks like:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">     5  10
        3.14</code></pre>
</div>
</div>
<div class="paragraph">
<p>The value of <code>j</code> is written at the tab position, the output goes to the next
line again at the first tab position, and outputs the value of <code>r</code>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-writing-to-file">Writing to a file</h4>
<div class="paragraph">
<p>Data can be written to a file, analog to the read function.
A file has to be defined first, and opened for writing before the file can be used.
An example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">file f;
int i;

f = open(&quot;output_file&quot;, &quot;w&quot;);
write(f, &quot;%s&quot;, i); write(f, &quot;%8.2f&quot;, r);
close(f)</code></pre>
</div>
</div>
<div class="paragraph">
<p>A file, in this case <code>"output_file"</code> is used in write-only mode, denoted by
the character <code>"w"</code>.
Opening a file for writing destroys its old contents (if the file already exists).
In the write statement, the first parameter must be the file, and the second
parameter must be the format string.</p>
</div>
<div class="paragraph">
<p>After all data has been written, the file is closed by statement <code>close</code>.
If the file is still open after execution of the program, the file is closed
automatically.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-chapter-stochastic-behavior">Modeling stochastic behavior</h3>
<div class="paragraph">
<p>


Many processes in the world vary a little bit each time they are performed.
Setup of machines goes a bit faster or slower, patients taking their medicine
takes longer this morning, more products are delivered today, or the quality
of the manufactured product degrades due to a tired operator.
Modeling such variations is often done with stochastic distributions. A
distribution has a mean value and a known shape of variation. By matching the
means and the variation shape with data from the system being modeled, an
accurate model of the system can be obtained.
The language has many stochastic distributions available, this chapter
explains how to use them to model a system, and lists a few commonly used
distributions. The full list is available in the reference manual at
<a href="#ref-chapter-distributions">Distributions</a>.</p>
</div>
<div class="paragraph">
<p>The following fragment illustrates the use of the random distribution to model
a dice.
Each value of the six-sided dice is equally likely to appear. Every value
having the same probability of appearing is a property of the integer uniform
distribution, in this case using interval <code>[1, 7)</code> (inclusive on the left
side, exclusive on the right side).
The model is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">dist int dice = uniform(1,7);
int x, y;

x = sample dice;
y = sample dice;
writeln(&quot;x=%d, y=%d&quot;, x, y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The variable <code>dice</code> is an integer distribution, meaning that values drawn
from the distribution are integer numbers. It is assigned an
uniform distribution.
A throw of a dice is simulated with the <em>operator</em> <code>sample</code>.
Each time <code>sample</code> is used, a new sample value is obtained from the
distribution.
In the fragment the dice is thrown twice, and the values are assigned to the
variables <code>x</code>, and <code>y</code>.</p>
</div>
<div class="sect3">
<h4 id="tut-distributions">Distributions</h4>
<div class="paragraph">
<p>The language provides <em>constant</em>, <em>discrete</em> and <em>continuous</em> distributions.
A discrete distribution is a distribution where only specific values can be
drawn, for example throwing a dice gives an integer number.
A continuous distribution is a distribution where a value from a continuous
range can be drawn, for example assembling a product takes a positive amount
of time.
The constant distributions are discrete distributions that always return the
same value. They are useful during the development of the model (see below).</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="sect4">
<h5 id="tut-constant-distributions">Constant distributions</h5>
<div class="paragraph">
<p>When developing a model with stochastic behavior, it is hard to verify whether
the model behaves correctly, since the stochastic results make it difficult to
predict the outcome of experiments. As a result, errors in the model may not
be noticed, they hide in the noise of the stochastic results.
One solution is to first write a model without stochastic behavior, verify
that model, and then extend the model with stochastic sampling.
Extending the model with stochastic behavior is however an invasive change
that may introduce new errors. These errors are again hard to find due to the
difficulties to predict the outcome of an experiment.
The constant distributions aim to narrow the gap by reducing the amount of
changes that need to be done after verification.</p>
</div>
<div class="paragraph">
<p>With constant distributions, a stochastic model with sampling of distributions
is developed, but the stochastic behavior is eliminated by temporarily using
constant distributions. The model performs stochastic sampling of values, but
with predictable outcome, and thus with predictable experimental results,
making verification easier. After verifying the model, the constant
distributions are replaced with the distributions that fit the mean value and
variation pattern of the modeled system, giving a model with stochastic
behavior.
Changing the used distributions is however much less invasive, making it less
likely to introduce new errors at this stage in the development of the model.</p>
</div>
<div class="paragraph">
<p>Constant distributions produce the same value <code>v</code> with every call of
<code>sample</code>. There is one constant distribution for each type of sample value:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>constant(bool v)</code>, a <code>bool</code> distribution.</p>
</li>
<li>
<p><code>constant(int v)</code>, an <code>int</code> distribution.</p>
</li>
<li>
<p><code>constant(real v)</code>, a <code>real</code> distribution.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>An example with a constant distribution is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">dist int u = constant(7);</code></pre>
</div>
</div>
<div class="paragraph">
<p>This distribution returns the integer value <code>7</code> with each <code>sample u</code>
operation.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="tut-discrete-distributions">Discrete distributions</h5>
<div class="paragraph">
<p>Discrete distributions return values from a finite fixed set of possible
values as answer. In Chi, there is one distribution that returns a boolean
when sampled, and there are several discrete distributions that return an
integer number.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>dist</code> <code>bool</code> <strong>bernoulli</strong><code>(real p)</code></p>
<div class="paragraph">
<p>Outcome of an experiment with chance <code>p</code> <code>(0 &lt;= p &lt;= 1)</code>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/distribution_plots/bernoulli.svg" alt="bernoulli">
</div>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Range
</td>
<td class="hdlist2">
<p><code>{false, true}</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>p</code> (where <code>false</code> is interpreted as <code>0</code>, and <code>true</code> is interpreted as <code>1</code>)</p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p><code>1 - p</code> (where <code>false</code> is interpreted as <code>0</code>, and <code>true</code> is interpreted as <code>1</code>)</p>
</td>
</tr>
<tr>
<td class="hdlist1">
See also
</td>
<td class="hdlist2">
<p>Bernoulli(p), <a href="#law-tut">[law-tut]</a>, page 302</p>
</td>
</tr>
</table>
</div>
</li>
<li>
<p><code>dist</code> <code>int</code> <strong>uniform</strong><code>(int a, b)</code></p>
<div class="paragraph">
<p>Integer uniform distribution from <code>a</code> to <code>b</code> excluding the upper bound.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/distribution_plots/disc_uni.svg" alt="disc uni">
</div>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Range
</td>
<td class="hdlist2">
<p><code>{a, a+1, ..., b-1}</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>(a + b - 1) / 2</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p><code>((b - a)\^2 - 1) / 12</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
See also
</td>
<td class="hdlist2">
<p>DU(a, b - 1), <a href="#law-tut">[law-tut]</a>, page 303</p>
</td>
</tr>
</table>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="tut-continuous-distributions">Continuous distributions</h5>
<div class="paragraph">
<p>Continuous distributions return a value from a continuous range.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>dist</code> <code>real</code> <strong>uniform</strong><code>(real a, b)</code></p>
<div class="paragraph">
<p>Real uniform distribution from <code>a</code> to <code>b</code>, excluding the upper bound.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/distribution_plots/cont_uni.svg" alt="cont uni">
</div>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Range
</td>
<td class="hdlist2">
<p><code>[a, b)</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>(a + b) / 2</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p><code>(b - a)^2 / 12</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
See also
</td>
<td class="hdlist2">
<p>U(a,b), <a href="#law-tut">[law-tut]</a>, page 282, except that distribution has an
inclusive upper bound.</p>
</td>
</tr>
</table>
</div>
</li>
<li>
<p><code>dist</code> <code>real</code> <strong>gamma</strong><code>(real a, b)</code></p>
<div class="paragraph">
<p>Gamma distribution, with shape parameter <code>a &gt; 0</code> and scale parameter <code>b &gt; 0</code>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/distribution_plots/gamma.svg" alt="gamma">
</div>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>a * b</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p><code>a * b^2</code></p>
</td>
</tr>
</table>
</div>
</li>
</ul>
</div>
</div>
<div class="sect4">
<h5 id="tut-references">References</h5>
<div class="ulist bibliography">
<ul class="bibliography">
<li>
<p><a id="law-tut"></a>[law-tut] Simulation Modeling &amp; Analysis, fourth edition,
by Averill M. Law,
publisher McGraw-Hill, International Edition, 2007,
ISBN 978-007-125519-6</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-simulating-stochastic-behavior">Simulating stochastic behavior</h4>
<div class="paragraph">
<p>In this chapter, the mathematical notion of stochastic distribution is used to
describe how to model stochastic behavior.
Simulating a model with stochastic behavior at a computer is however not
stochastic at all. Computer systems are deterministic machines, and
have no notion of varying results.</p>
</div>
<div class="paragraph">
<p>A (pseudo-)random number generator is used to create stochastic results
instead. It starts with an initial <em>seed</em>, an integer number (you can give one
at the start of the simulation).
From this seed, a function creates a stream of 'random' values. When looking
at the values there does not seem to be any pattern.
It is not truly random however. Using the same seed again gives exactly the
same stream of numbers. This is the reason to call the function a
<em>pseudo</em>-random number generator (a true random number generator would never
produce the exact same stream of numbers).
A sample of a distribution uses one or more numbers from the stream to compute
its value.
The value of the initial seed thus decides the value of all samples drawn in
the simulation. By default, a different seed is used each time you run a
simulation (leading to slightly different results each time).
You can also explicitly state what seed you want to use when running a model,
see <a href="#tool-compile-and-simulate">Compile and simulate</a>.
At the end of the simulation, the used
initial seed of that simulation is printed for reference purposes.</p>
</div>
<div class="paragraph">
<p>While doing a stochastic simulation study, performing several experiments with
the same initial seed invalidates the results, as it is equivalent to copying
the outcome of a single experiment a number of times.
On the other hand, when looking for the cause of a bug in the model,
performing the exact same experiment is useful as outcomes of previous
experiments should match exactly.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-exercises-4">Exercises</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>According to the Chi reference manual, for a <code>gamma</code> distribution with
parameters <code>(a, b)</code>, the mean equals <code>a * b</code>.</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>Use a Chi specification to verify whether this is true for at least 3
different pairs of <code>a</code> and <code>b</code>.</p>
</li>
<li>
<p>How many samples from the distribution are approximately required to
determine the mean up to three decimals accurate?</p>
</li>
</ol>
</div>
</li>
<li>
<p>Estimate the mean μ and variance σ<sup>2</sup> of a triangular distribution
<code>triangle(1.0, 2.0, 5.0)</code> by simulating 1000 samples. Recall that the
variance σ<sup>2</sup> of <em>n</em> samples can be calculated by a function like:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">func real variance(list real samples, real avg):
    real v;

    for x in samples:
        v = v + (x - avg)^2;
    end

    return v / (size(samples) - 1)
end</code></pre>
</div>
</div>
</li>
<li>
<p>We would like to build a small game, called <em>Higher or Lower</em>.
The computer picks a random integer number between 1 and 14. The player
then has to predict whether the next number will be higher or lower. The
computer picks the next random number and compares the new number with the
previous one. If the player guesses right his score is doubled. If the
player guesses wrong, he looses all and the game is over. Try the following
specification:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">model HoL():
    dist int u = uniform(1, 15);
    int sc = 1;
    bool c = true;
    int new, oldval;
    string s;

    new = sample u;
    write(&quot;Your score is %d\n&quot;, sc);
    write(&quot;The computer drew %d\n&quot;, new);

    while c:
        writeln(&quot;(h)igher or (l)ower:\n&quot;);
        s = read(string);
        oldval = new;
        new = sample u;
        write(&quot;The computer drew %d\n&quot;, new);
        if new == oldval:
            c = false;
        else:
            c = (new &gt; oldval) == (s == &quot;h&quot;);
        end;

        if c:
            sc = 2 * sc;
        else:
            sc = 0;
        end;

        write(&quot;Your score is %d\n&quot;, sc)
    end;
    write(&quot;GAME OVER...\n&quot;)
end</code></pre>
</div>
</div>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>What is the begin score?</p>
</li>
<li>
<p>What is the maximum end score?</p>
</li>
<li>
<p>What happens, when the drawn sample is equal to the previous drawn
sample?</p>
</li>
<li>
<p>Extend this game specification with the possibility to stop.</p>
</li>
</ol>
</div>
</li>
</ol>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-chapter-processes">Processes</h3>
<div class="paragraph">
<p>




The language has been designed for modeling and analyzing systems with many
components, all working together to obtain the total system behavior.
Each component exhibits behavior over time. Sometimes they are busy making
internal decisions, sometimes they interact with other components.
The language uses a <em>process</em> to model the behavior of a component (the
primary interest are the actions of the component rather than its physical
representation). This leads to models with many processes working in
<em>parallel</em> (also known as <em>concurrent</em> processes), interacting with each
other.</p>
</div>
<div class="paragraph">
<p>Another characteristic of these systems is that the parallelism happens at
different scales at the same time, and each scale can be considered to be a
collection of co-operating parallel working processes.
For example, a factory can be seen as a single component, it accepts supplies
and delivers products.
However, within a factory, you can have several parallel operating production
lines, and a line consists of several parallel operating machines.
A machine again consists of parallel operating parts.
In the other direction, a factory is a small element in a supply chain. Each
supply chain is an element in a (distribution) network.
Depending on the area that needs to be analyzed, and the level of detail, some
scales are precisely modeled, while others either fall outside the scope of
the system or are modeled in an abstract way.</p>
</div>
<div class="paragraph">
<p>In all these systems, the interaction between processes is not random, they
understand each other and exchange information.
In other words, they <em>communicate</em> with each other. The Chi language uses
<em>channels</em> to model the communication.
A channel connects a sending process to a receiving process, allowing the
sender to pass messages to the receiver.
This chapter discusses parallel operating processes only, communication
between processes using channels is discussed in <a href="#tut-chapter-channels">Channels</a>.</p>
</div>
<div class="paragraph">
<p>As discussed above, a process can be seen as a single component with behavior
over time, or as a wrapper around many processes that work at a smaller scale.
The Chi language supports both kinds of processes.
The former is modeled with the statements explained in previous chapters and
communication that will be explained in <a href="#tut-chapter-channels">Channels</a>.
The latter (a process as a wrapper around many smaller-scale processes) is
supported with the <code>run</code> statement.</p>
</div>
<div class="sect3">
<h4 id="tut-a-single-process">A single process</h4>
<div class="paragraph">
<p>The simplest form of processes is a model with one process:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc P():
    write(&quot;Hello. I am a process.&quot;)
end

model M():
    run P()
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Similar to a model, a process definition is denoted by the keyword <code>proc</code>
(<code>proc</code> means process and does not mean procedure!), followed by the name of
the process, here <code>P</code>, followed by an empty pair of parentheses <code>()</code>,
meaning that the process has no parameters.
Process <code>P</code> contains one statement, a <code>write</code> statement to output text to
the screen.
Model <code>M</code> contains one statement, a <code>run</code> statement to run a process.
When simulating this model, the output is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">Hello. I am a process.</code></pre>
</div>
</div>
<div class="paragraph">
<p>

A <code>run</code> statement constructs a process from the process definition (it
<em>instantiates</em> a process definition) for each of its arguments, and they start
running.
This means that the statements inside each process are executed. The <code>run</code>
statement waits until the statements in its created processes are finished,
before it ends itself.</p>
</div>
<div class="paragraph">
<p>To demonstrate, below is an example of a model with two processes:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc P(int i):
    write(&quot;I am process. %d.\n&quot;, i)
end

model M():
    run P(1), P(2)
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This model instantiates and runs two processes, <code>P(1)</code> and <code>P(2)</code>.
The processes are running at the same time.
Both processes can perform a <code>write</code> statement.
One of them goes first, but there is no way to decide beforehand which one.
(It may always be the same choice, it may be different on Wednesday, etc, you
just don&#8217;t know.)
The output of the model is therefore either:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">I am process 1.
I am process 2.</code></pre>
</div>
</div>
<div class="paragraph">
<p>or:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">I am process 2.
I am process 1.</code></pre>
</div>
</div>
<div class="paragraph">
<p>After the two processes have finished their activities, the <code>run</code> statement
in the model finishes, and the simulation ends.</p>
</div>
<div class="paragraph">
<p>
An important property of statements is that they are executed <em>atomically</em>.
It means that execution of the statement of one process cannot be interrupted
by the execution of a statement of another process.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-a-process-in-a-process">A process in a process</h4>
<div class="paragraph">
<p>The view of a process being a wrapper around many other processes is supported
by allowing to use the <code>run</code> statement inside a process as
well. An example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc P():
    while true:
        write(&quot;Hello. I am a process.\n&quot;)
    end
end

proc DoubleP():
    run P(), P()
end

model M():
    run DoubleP()
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The model instantiates and runs one process <code>DoubleP</code>.
Process <code>DoubleP</code> instantiates and runs two processes <code>P</code>.
The relevance becomes clear in models with a lot of processes.
The concept of 'a process in a process' is very useful in keeping the model
structured.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-many-processes">Many processes</h4>
<div class="paragraph">
<p>Some models consist of many identical processes at a single level. The
language has an <code>unwind</code> statement to reduce the amount of program text.
A model with e.g. ten identical processes, and a different parameter value, is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">model MRun():
    run P(0), P(1), P(2), P(3), P(4),
        P(5), P(6), P(7), P(8), P(9)
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>An easier way to write this model is by applying the <code>unwind</code> statement
inside <code>run</code> with the same effect:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">model MP():
    run unwind j in range(10):
            P(j)
        end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>unwind</code> works like a <code>for</code> statement
(see <a href="#tut-for-statement">The <code>for</code> statement</a>),
except the <code>unwind</code> expands all values at the same time instead of iterating
over them one at a time.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-chapter-channels">Channels</h3>
<div class="paragraph">
<p>


In <a href="#tut-chapter-processes">Processes</a> processes have been introduced.
This chapter describes channels, denoted by the type <code>chan</code>.
A channel connects two processes and is used for the transfer of data or just
signals.
One process is the sending process, the other process is the receiving process.
Communication between the processes takes place instantly when both processes
are willing to communicate, this is called <em>synchronous</em> communication.</p>
</div>
<div class="sect3">
<h4 id="tut-a-channel">A channel</h4>
<div class="paragraph">
<p>The following example shows the sending of an integer value between two
processes via a channel.
<a href="#tut-figure-producer-consumer">A producer and a consumer</a> shows the two processes <code>P</code> and <code>C</code>,
connected by channel variable <code>a</code>.</p>
</div>
<div id="tut-figure-producer-consumer" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/producer_consumer.png" alt="producer consumer">
</div>
<div class="title">Figure 3. A producer and a consumer</div>
</div>
<div class="paragraph">
<p>Processes are denoted by circles, and channels are denoted by directed arrows
in the figure. The arrow denotes the direction of communication.
Process <code>P</code> is the sender or producer, process <code>C</code> is the receiver or consumer.</p>
</div>
<div class="paragraph">
<p>In this case, the producer sends a finite stream of integer values (5 numbers)
to the consumer.
The consumer receives these values and writes them to the screen.
The model is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc P(chan! int a):
    for i in range(5):
        a!i
    end
end

proc C(chan? int b):
    int x;

    while true:
        b?x;
        write(&quot;%d\n&quot;,x)
    end
end

model M():
    chan int a;

    run P(a), C(a)
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The model instantiates processes <code>P</code> and <code>C</code>.
The two processes are connected to each other via channel variable <code>a</code> which
is given as actual parameter in the <code>run</code> statement.
This value is copied into the local formal parameter <code>a</code> in process <code>P</code>
and in formal parameter <code>b</code> inside process <code>C</code>.</p>
</div>
<div class="paragraph">
<p>Process <code>P</code> can send a value of type <code>int</code> via the actual channel
parameter <code>a</code> to process <code>C</code>.
In this case <code>P</code> first tries to send the value <code>0</code>.
Process <code>C</code> tries to receive a value of type <code>int</code> via the actual channel
parameter <code>a</code>.
Both processes can communicate, so the communication occurs and the value
<code>0</code> is sent to process <code>C</code>.
The received value is assigned in process <code>C</code> to variable <code>x</code>.
The value of <code>x</code> is printed and the cycle starts again.
This model writes the sequence <code>0, 1, 2, 3, 4</code> to the screen.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-synchronization-channels">Synchronization channels</h4>
<div class="paragraph">
<p>Above, process <code>P</code> constructs the numbers and sends them to process <code>C</code>.
However, since it is known that the number sequence starts at <code>0</code> and
increments by one each time, there is no actual need to transfer a number.
Process <code>C</code> could also construct the number by itself after getting a signal
(a 'go ahead') from process <code>P</code>.
Such signals are called synchronization signals, transfered by means of a
synchronization channel. The signal does not carry any data,
it just synchronizes a send and a receive between different processes.
(Since there is no actual data transfered, the notion of sender and receiver
is ambiguous. However, in modeling there is often a notion of 'initiator'
process that can be conveniently expressed with sending.)</p>
</div>
<div class="paragraph">
<p>The following example shows the use of synchronization signals between
processes <code>P</code> and <code>C</code>.
The connecting channel 'transfers' values of type <code>void</code>.
The type <code>void</code> means that 'non-values' are sent and received;
the type <code>void</code> is only allowed in combination with channels.
The iconic model is given in the previous figure,
<a href="#tut-figure-producer-consumer">A producer and a consumer</a>.
The model is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc P(chan! void a):
    for i in range(5):
        a!    # No data is being sent
    end
end

proc C(chan? void b):
    int i;

    while true:
        b?;   # Nothing is being received
        write(&quot;%d\n&quot;, i);
        i = i + 1
    end
end

model M():
    chan void a;

    run P(a), C(a)
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Process <code>P</code> sends a signal (and no value is sent), and process <code>C</code>
receives a signal (without a value).
The signal is used by process <code>C</code> to write the value of <code>i</code> and to
increment variable <code>i</code>.
The effect of the model is identical to the previous example: the numbers
<code>0, 1, 2, 3, 4</code> appear on the screen.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-two-channels">Two channels</h4>
<div class="paragraph">
<p>A process can have more than one channel, allowing interaction with several
other processes.</p>
</div>
<div class="paragraph">
<p>The next example shows two channel variables, <code>a</code> and <code>b</code>, and three
processes, generator <code>G</code>, server <code>S</code> and exit <code>E</code>.
The iconic model is given in <a href="#tut-figure-generator-server-exit">A generator, a server and an exit</a>.</p>
</div>
<div id="tut-figure-generator-server-exit" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/generator_server_exit.png" alt="generator server exit">
</div>
<div class="title">Figure 4. A generator, a server and an exit</div>
</div>
<div class="paragraph">
<p>Process <code>G</code> is connected via channel variable <code>a</code> to process <code>S</code> and
process <code>S</code> is connected via channel variable <code>b</code> to process <code>E</code>.
The model is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc G(chan! int a):
    for x in range(5):
        a!x
    end
end

proc S(chan? int a; chan! int b):
    int x;

    while true:
        a?x; x = 2 * x; b!x
    end
end

proc E(chan int a):
    int x;

    while true:
        a?x;
        write(&quot;E %d\n&quot;, x)
    end
end

model M():
    chan int a,b;

    run G(a), S(a,b), E(b)
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The model contains two channel variables <code>a</code> and <code>b</code>.
The processes are connected to each other in model <code>M</code>.
The processes are instantiated and run where the formal parameters are
replaced by the actual parameters.
Process <code>G</code> sends a stream of integer values <code>0, 1, 2, 3, 4</code> to another
process via channel <code>a</code>.
Process <code>S</code> receives a value via channel <code>a</code>, assigns this value to
variable <code>x</code>, doubles the value of the variable, and sends the value of the
variable via <code>b</code> to another process.
Process <code>E</code> receives a value via channel <code>b</code>, assigns this value to the
variable <code>x</code>, and prints this value.
The result of the model is given by:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">E   0
E   2
E   4
E   6
E   8</code></pre>
</div>
</div>
<div class="paragraph">
<p>After printing this five lines, process <code>G</code> stops, process <code>S</code> is blocked,
as well as process <code>E</code>, the model gets blocked, and the model ends.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-more-senders-or-receivers">More senders or receivers</h4>
<div class="paragraph">
<p>Channels send a message (or a signal in case of synchronization channels) from
one sender to one receiver. It is however allowed to give the same channel to
several sender or receiver processes. The channel selects a sender and a
receiver before each communication.</p>
</div>
<div class="paragraph">
<p>The following example gives an illustration, see
<a href="#tut-figure-generator-2servers-exit">A generator, two servers and an exit</a>.</p>
</div>
<div id="tut-figure-generator-2servers-exit" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/generator_2servers_exit.png" alt="generator 2servers exit">
</div>
<div class="title">Figure 5. A generator, two servers and an exit</div>
</div>
<div class="paragraph">
<p>Suppose that only <code>G</code> and <code>S0</code> want to communicate.
The channel can select a sender (namely <code>G</code>) and a receiver (process
<code>S0</code>), and let both processes communicate with each other.
When sender <code>G</code>, and both receivers (<code>S0</code> and <code>S1</code>), want to
communicate, the channel selects a sender (<code>G</code> as it is the only sender
available to the channel), and a receiver (either process <code>S0</code> or process
<code>S1</code>), and it lets the selected processes communicate with each other.
This selection process is non-deterministic; a choice is made, but it is
unknown how the selection takes place and it cannot be influenced.
Note that a non-deterministic choice is different from a random choice. In the
latter case, there are known probabilities of selecting a process.</p>
</div>
<div class="paragraph">
<p>Sharing a channel in this way allows to send data to receiving processes where
the receiving party is not relevant (either server process will do).
This way of communication is different from <em>broadcasting</em>, where both servers
receive the same data value.
Broadcasting is not supported by the Chi language.</p>
</div>
<div class="paragraph">
<p>In case of two senders, <code>S0</code> and <code>S1</code>, and one receiver <code>E</code> the
selection process is the same.
If one of the two servers <code>S</code> can communicate with exit <code>E</code>, communication
between that server and the exit takes place.
If both servers can communicate, a non-deterministic choice is made.</p>
</div>
<div class="paragraph">
<p>Having several senders and several receivers for a single channel is also
handled in the same manner.
A non-deterministic choice is made for the sending process and a
non-deterministic choice is made for the receiving process before each
communication.</p>
</div>
<div class="paragraph">
<p>To communicate with several other processes but without non-determinism,
unique channels must be used.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-notes-2">Notes</h4>
<div class="ulist">
<ul>
<li>
<p>The direction in channels, denoted by <code>?</code> or <code>!</code>, may be omitted.
By leaving it out, the semantics of the parameters becomes less clear (the
direction of communication has to be derived from the process code).

</p>
</li>
<li>
<p>There are a several ways to name channels:

</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>Start naming formal channel parameters
in each new process with <code>a</code>, <code>b</code>, etc.
The actual names follow from the figure.
This convention is followed in this chapter.
For small models this convention is easy and works well, for complicated
models this convention can be error-prone.

</p>
</li>
<li>
<p>Use the actual names of the channel parameters in the figures as formal
names in the processes. Start naming in figures with <code>a</code>, <code>b</code>, etc.
This convention works well, if both figure and code are at hand during
the design process. If many processes have sub-processes, this convention
does not really work.</p>
</li>
<li>
<p>Use unique names for the channel parameters for the whole model, and for
all sub-systems, for example a channel between processes <code>A</code> and <code>B</code>
is named <code>a2b</code> (the lower-case name of the sending process, followed by
<code>2</code>, denoting 'to', and the lower-case name of the receiving process).</p>
<div class="paragraph">
<p>In this case the formal and actual parameters can be in most cases the same.
If many identical processes are used, this convention does not really work.</p>
</div>
</li>
</ol>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>In the text all three conventions are used, depending on the structure of
the model.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-exercises-5">Exercises</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Given is the specification of process <code>P</code> and model <code>PP</code>:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc P(chan int a, b):
    int x;

    while true:
        a?x;
        x = x + 1;
        write(&quot;%d\n&quot;, x);
        b!x
    end
end

model PP():
    chan int a, b;

    run P(a,b), P(b,a)
end</code></pre>
</div>
</div>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>Study this specification.</p>
</li>
<li>
<p>Why does the model terminate immediately?</p>
</li>
</ol>
</div>
</li>
<li>
<p>Six children have been given the assignment to perform a series of
calculations on the numbers <code>0, 1, 2, 3, ..., 9</code>, namely add 2, multiply
by 3, multiply by 2, and add 6 subsequently. They decide to split up the
calculations and to operate in parallel. They sit down at a table next to
each other. The first child, the reader <code>R</code>, reads the numbers
<code>0, 1, 2, 3, ..., 9</code> one by one to the first calculating child <code>C1</code>. Child
<code>C1</code> adds 2 and tells the result to its right neighbour, child <code>C2</code>. After
telling the result to child <code>C2</code>, child <code>C1</code> is able to start
calculating on the next number the reader <code>R</code> tells him. Children <code>C2</code>,
<code>C3</code>, and <code>C4</code> are analogous to child <code>C1</code>; they each perform a
different calculation on a number they hear and tell the result to their
right neighbor. At the end of the table the writer <code>W</code> writes every
result he hears down on paper. Figure <a href="#tut-figure-sixchilds">Six children working in parallel</a> shows a
schematic drawing of the children at the table.</p>
<div id="tut-figure-sixchilds" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/sixchilds.png" alt="sixchilds">
</div>
<div class="title">Figure 6. Six children working in parallel</div>
</div>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>Finish the specification for the reading child <code>R</code>, that reads the
numbers 0 till 9 one by one:</p>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc R(...):
    int i;

    while i &lt; 10:
        ...;
        ...
    end
end</code></pre>
</div>
</div>
</li>
<li>
<p>Specify the parameterized process <code>Cadd</code> that represents the children
<code>C1</code> and <code>C4</code>, who perform an addition.</p>
</li>
<li>
<p>Specify the parameterized process <code>Cmul</code> that represents the children
<code>C2</code> and <code>C3</code>, who perform a multiplication.</p>
</li>
<li>
<p>Specify the process <code>W</code> representing the writing child. Write each
result to the screen separated by a new line.</p>
</li>
<li>
<p>Make a graphical representation of the model <code>SixChildren</code> that is
composed of the six children.</p>
</li>
<li>
<p>Specify the model <code>SixChildren</code>. Simulate the model.</p>
</li>
</ol>
</div>
</li>
</ol>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-chapter-buffers">Buffers</h3>
<div class="paragraph">
<p>In the previous chapter, a production system was discussed that passes values
from one process to the next using channels, in a synchronous manner.
(Sender and receiver perform the communication at exactly the same moment in
time, and the communication is instantaneous.)
In many systems however, processes do not use synchronous communication, they
use <em>asynchronous</em> communication instead.
Values (products, packets, messages, simple tokens, and so on) are sent,
temporarily stored in a buffer, and then received.</p>
</div>
<div class="paragraph">
<p>In fact, the decoupling of sending and receiving is very important, it allows
compensating temporarily differences between the number of items that are sent
and received.
(Under the assumption that the receiver is fast enough to keep up with the
sender in general, otherwise the buffer will grow forever or overflow.)</p>
</div>
<div class="paragraph">
<p>For example, consider the exchange of items from a producer process <code>P</code> to a
consumer process <code>C</code> as shown in <a href="#tut-figure-pc2">A producer and a consumer</a>.</p>
</div>
<div id="tut-figure-pc2" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/producer_consumer.png" alt="producer consumer">
</div>
<div class="title">Figure 7. A producer and a consumer</div>
</div>
<div class="paragraph">
<p>In the unbuffered situation, both processes communicate at the same time.
This means that when one process is (temporarily) faster than the other, it
has to wait for the other process before communication can take place.
With a buffer in-between, the producer can give its item to the buffer, and
continue with its work.
Likewise, the consumer can pick up a new item from the buffer at any later
time (if the buffer has items).</p>
</div>
<div class="paragraph">
<p>In Chi, buffers are not modeled as channels, they are modeled as additional
processes instead. The result is shown in <a href="#tut-figure-pbc">A producer and a consumer, with an additional buffer process</a>.</p>
</div>
<div id="tut-figure-pbc" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/buffered_producer_consumer.png" alt="buffered producer consumer">
</div>
<div class="title">Figure 8. A producer and a consumer, with an additional buffer process</div>
</div>
<div class="paragraph">
<p>The producer sends its items synchronously (using channel <code>a</code>) to the buffer
process. The buffer process keeps the item until it is needed.
The consumer gets an item synchronously (using channel <code>b</code>) from the buffer
when it needs a new item (and one is available).</p>
</div>
<div class="paragraph">
<p>In manufacturing networks, buffers, in combination with servers, play a
prominent role, for buffering items in the network.
Various buffer types exist in these networks: buffers can have a finite or
infinite capacity, they have a input/output discipline, for example a
first-out queuing discipline or a priority-based discipline.
Buffers can store different kinds of items, for example, product-items,
information-items, or a combination of both.
Buffers may also have sorting facilities, etc.</p>
</div>
<div class="paragraph">
<p>In this chapter some buffer types are described, and with the presented
concepts numerous types of buffer can be designed by the engineer.
First a simple buffer process with one buffer position is presented, followed
by more advanced buffer models.
The producer and consumer processes are not discussed in this chapter.</p>
</div>
<div class="sect3">
<h4 id="tut-a-one-place-buffer">A one-place buffer</h4>
<div class="paragraph">
<p>A buffer usually has a receiving channel and a sending channel, for receiving
and sending items.
A buffer, buffer <code>B1</code>, is presented in <a href="#tut-figure-oneplacebuffer">A <code>1</code>-place buffer</a>.</p>
</div>
<div id="tut-figure-oneplacebuffer" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/one_place_buffer.png" alt="one place buffer">
</div>
<div class="title">Figure 9. A <code>1</code>-place buffer</div>
</div>
<div class="paragraph">
<p>The simplest buffer is a one-place buffer, for buffering precisely one item.
A one-place buffer can be defined by:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc B1(chan? item a; chan! item b):
    item x;

    while true:
        a?x; b!x
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>where <code>a</code> and <code>b</code> are the receiving and sending channels.
Item <code>x</code> is buffered in the process.
A buffer receives an item, stores the item, and sends the item to the next
process, if the next process is willing to receive the item.
The buffer is  not willing to receive a second item, as long as the first item
is still in the buffer.</p>
</div>
<div class="paragraph">
<p>A two-place buffer can be created, by using the one-place buffer process
twice.
A two-place buffer is depicted in <a href="#tut-figure-twoplacebuffer">A <code>2</code>-place buffer</a>.</p>
</div>
<div id="tut-figure-twoplacebuffer" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/two_place_buffer.png" alt="two place buffer">
</div>
<div class="title">Figure 10. A <code>2</code>-place buffer</div>
</div>
<div class="paragraph">
<p>A two-place buffer is defined by:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc B2(chan? item a; chan! item b):
    chan item c;

    run B1(a, c), B1(c, b)
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>where two processes <code>B1</code> buffer maximal two items.
If each process <code>B1</code> contains an item, a third item has to wait in front of
process <code>B2</code>. This procedure can be extended to create even larger buffers.
Another, more preferable manner however, is to describe a buffer in a single
process by using a <em>select</em> statement and a list for storage of the items.
Such a buffer is discussed in the next section.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-a-single-process-buffer">A single process buffer</h4>
<div class="paragraph">
<p>An informal description of the process of a buffer, with an arbitrary number
of stored items, is the following:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>If the buffer has space for an item, <em>and</em> can receive an item from another
process via channel <code>a</code>, the buffer process receives that item, and
stores the item in the buffer.</p>
</li>
<li>
<p>If the buffer contains at least one item, <em>and</em> the buffer can send that
item to another process via channel <code>b</code>, the buffer process sends that
item, and removes that item from the buffer.</p>
</li>
<li>
<p>If the buffer can both send and receive a value, the buffer process selects
one of the two possibilities (in a non-deterministic manner).</p>
</li>
<li>
<p>If the buffer cannot receive an item, and cannot send an item, the buffer
process waits.</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>Next to the sending and receiving of items (to and from the buffer process) is
the question of how to order the stored items.
A common form is the <em>first-in first-out</em> (fifo) queuing discipline.
Items that enter the buffer first (first-in) also leave first (first-out), the
order of items is preserved by the buffer process.</p>
</div>
<div class="paragraph">
<p>In the model of the buffer, an (ordered) list of type <code>item</code> is used for
storing the received items.
New item <code>x</code> is added at the rear of list <code>xs</code> by the statement:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">xs = xs + [x]</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first item of the list is sent, and then deleted with:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">xs = xs[1:]</code></pre>
</div>
</div>
<div class="paragraph">
<p>An alternative solution is to swap the function of the rear and the front,
which can be useful some times.</p>
</div>
<div class="paragraph">
<p>The statement to monitor several channels at the same time is the <code>select</code>
statement.
The syntax of the <code>select</code> statement, with two alternatives, is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">select
    boolean_expression_1, communication statement_1:
        statement_list_1
alt
    boolean_expression_2, communication statement_2:
        statement_list_2
...
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>There has to be at least one alternative in a select statement. The statement
waits, until for one of the alternatives the <code>boolean_expression</code> holds
<em>and</em> communication using the <code>communication statement</code> is possible.
(When there are several such alternatives, one of them is
non-deterministically chosen.)
For the selected alternative, the communication statement is executed,
followed by the statements in the <code>statement_list</code> of the alternative.</p>
</div>
<div class="paragraph">
<p>The above syntax is the most generic form, the <code>boolean_expression</code> may
be omitted when it always holds, or the <code>communication statement</code> may be
omitted when there is no need to communicate. The <code>,</code> also disappears then.
(Omitting both the boolean expression and the communication statement is not
allowed.) Similarly, when the <code>statement_list</code> is empty or just <code>pass</code>, it
may be omitted (together with the <code>:</code> in front of it).</p>
</div>
<div class="paragraph">
<p>The description (in words) of the core of the buffer, from the start of this
section, is translated in code, by using a <code>select</code> statement:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">select
    size(xs) &lt; N, a?x:
        xs = xs + [x]
alt
    size(xs) &gt; 0, b!xs[0]:
        xs = xs[1:]
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>In the first alternative, it is stated that, if the buffer is not full, and
the buffer can receive an item, an item is received, and that item is added to
the rear of the list.
In the second alternative, it is stated that, if the buffer contains at least
one item, and the buffer can send an item, the first item in the list is sent,
and the list is updated.
Please keep in mind that both the condition must hold and the communication
must be possible <em>at the same moment</em>.</p>
</div>
<div class="paragraph">
<p>The complete description of the buffer is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc B(chan? item a; chan! item b):
    list item xs; item x;

    while true:
        select
            size(xs) &lt; N, a?x:
                xs = xs + [x]
        alt
            size(xs) &gt; 0, b!xs[0]:
                xs = xs[1:]
        end
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Instead of boolean expression <code>size(xs) &gt; 0</code>, expression <code>not empty(xs)</code>
can be used, where <code>empty</code> is a function yielding <code>true</code> if the list is
empty, otherwise <code>false</code>.
In case the capacity of the buffer is infinite, expression <code>size(xs) &lt; N</code>
can be replaced by <code>true</code>, or even omitted (including the comma).</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-infinite-buffer">An infinite buffer</h4>
<div class="paragraph">
<p>A buffer with infinite capacity can be written as:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc B(chan? item a; chan! item b):
    list item xs; item x;

    while true:
        select
            a?x:
                xs = xs + [x]
        alt
            not empty(xs), b!xs[0]:
                xs = xs[1:]
        end
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>A first-in first-out buffer is also called a <em>queue</em>, while a first-in
last-out buffer (<em>lifo</em> buffer), is called a <em>stack</em>.
A description of a lifo buffer is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc B(chan? item a; chan! item b):
    list item xs; item x;

    while true:
        select
            a?x:
                xs = [x] + xs
        alt
            not empty(xs), b!xs[0]:
                xs = xs[1:]
        end
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The buffer puts the last received item at the head of the list, and gets the
first item from the list. An alternative is to put the last item at the rear
of the list, and to get the last item from the list.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-a-token-buffer">A token buffer</h4>
<div class="paragraph">
<p>In the next example, signals are buffered instead of items.
The buffer receives and sends 'empty' items or <em>tokens</em>.
Counter variable <code>w</code> of type <code>int</code> denotes the difference between the
number of tokens received and the number of tokens sent.
If the buffer receives a token, counter <code>w</code> is incremented; if the buffer
sends a token, counter <code>w</code> is decremented.
If the number of tokens sent is less than the number of tokens received, there
are tokens in the buffer, and <code>w &gt; 0</code>.
A receiving channel variable <code>a</code> of type <code>void</code> is defined for receiving
tokens. A sending channel variable <code>b</code> of type <code>void</code> is defined for
sending tokens.
The buffer becomes:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc B(chan? void a; chan! void b):
    int w;

    while true:
        select
            a?:
                w = w + 1
        alt
            w &gt; 0, b!:
                w = w - 1
        end
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Note that variables of type <code>void</code> do not exist.
Type <code>void</code> only can be used in combination with channels.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-a-priority-buffer">A priority buffer</h4>
<div class="paragraph">
<p>A buffer for items with different priority is described in this section. An
item has a high priority or a normal priority.
Items with a high priority should leave the buffer first.</p>
</div>
<div class="paragraph">
<p>An item is a tuple with a field <code>prio</code>, denoting the priority, <code>0</code> for
high priority, and <code>1</code> for normal priority:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">type item = tuple(...; int prio);</code></pre>
</div>
</div>
<div class="paragraph">
<p>For the storage of items, two lists are used: a list for high priority items
and a list for normal priority items.
The two lists are described by a list with size two:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">list(2) list item xs;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Variable <code>xs[0]</code> contains the high priority items, <code>xs[1]</code> the normal
priority items.
The first item in the high priority list is denoted by <code>xs[0][0]</code>, etc.</p>
</div>
<div class="paragraph">
<p>In the model the received items are, on the basis of the value of the
<code>prio</code>-field in the item, stored in one of the two lists: one list for
'high' items and one list for 'normal' items.
The discipline of the buffer is that items with a high priority leave the
buffer first.
The model is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc BPrio(chan? item a; chan! item b):
    list(2) list item xs; item x;

    while true:
        select
            a?x:
                xs[x.prio] = xs[x.prio] + [x]
        alt
            not empty(xs[0]), b!xs[0][0]:
                xs[0] = xs[0][1:]
        alt
            empty(xs[0]) and not empty(xs[1]), b!xs[1][0]:
                xs[1] = xs[1][1:]
        end
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The buffer has two lists <code>xs[0]</code> and <code>xs[1]</code>. Received items <code>x</code> are
stored in <code>xs[x.prio]</code> by the statement <code>xs[x.prio] = xs[x.prio] + [x]</code>.</p>
</div>
<div class="paragraph">
<p>If the list high priority items (<code>xs[0]</code>) is not empty, items with high
priority are sent. The first element in list <code>xs[0]</code> is element
<code>xs[0][0]</code>. If there are no high priority items (list <code>xs[0]</code> is empty),
and there are normal priority items (list <code>xs[1]</code> is not empty), the first
element of list <code>xs[1]</code>, element <code>xs[1][0]</code>, is sent.</p>
</div>
<div class="paragraph">
<p>Note that the order of the alternatives in the select statement does not
matter, every alternative is treated in the same way.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-buffer-exercises">Exercises</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>To study product flow to and from a factory, a setup as shown in
<a href="#tut-figure-controlled-factory">A controlled factory</a> is created.</p>
<div id="tut-figure-controlled-factory" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/controlled_factory.png" alt="controlled factory">
</div>
<div class="title">Figure 11. A controlled factory</div>
</div>
<div class="paragraph">
<p><code>F</code> is the factory being studied, generator <code>G</code> sends products into the
factory, and exit process <code>E</code> retrieves finished products. The factory is
tightly controlled by controller <code>C</code> that sends a signal to <code>G</code> or <code>E</code>
before a product may be moved. The model is as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc G(chan! int a; chan? void sg):
    for i in range(10):
        sg?;
        a!i;
    end
end

proc F(chan? int a; chan! int b):
    ...
end

proc E(chan? int a; chan? void se):
    int x;

    while true:
        se?;
        a?x;
        write(&quot;E received %d\n&quot;, x);
    end
end

proc C(chan! void sg, se; int low, high):
    int count;

    while true:
        while count &lt; high:
            sg!;
            count = count + 1;
        end
        while count &gt; low:
            se!;
            count = count - 1;
        end
    end
end

model M():
    chan void sg, se;
    chan int gf, fe;

    run C(sg, se, 0, 1),
        G(gf, sg), F(gf, fe), E(fe, se);
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The number of products inserted by the generator has been limited to allow
for manual inspection of results.</p>
</div>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>As a model of the factory, use a FIFO buffer process.
Run the simulation, and check whether all products are received by the
exit process.</p>
</li>
<li>
<p>Change the control policy to <code>low = 1</code> and <code>high = 4</code>.
Predict the outcome, and verify with simulation.</p>
</li>
<li>
<p>The employees of the factory propose to stack the products in the
factory to reduce the amount of space needed for buffering.
Replace the factory process with a LIFO buffer process, run the
experiments again, first with <code>low = 0</code> and <code>high = 1</code> and then with
<code>low = 1</code> and <code>high = 4</code>.</p>
</li>
<li>
<p>You will notice that some products stay in the factory forever. Why does
that happen? How should the policy be changed to ensure all products
eventually leave the factory?</p>
</li>
</ol>
</div>
</li>
</ol>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-chapter-servers-with-time">Servers with time</h3>
<div class="paragraph">
<p>
A manufacturing line contains machines and/or persons that perform a sequence
of tasks, where each machine or person is responsible for a single task.
The term <em>server</em> is used for a machine or a person that performs a task.
Usually the execution of a task takes time, e.g. a drilling process, a welding
process, the set-up of a machine.
In this chapter we introduce the concept of <em>time</em>, together with the <em>delay</em>
statement.</p>
</div>
<div class="paragraph">
<p>Note that here 'time' means the simulated time inside the model.
For example, assume there are two tasks that have to be performed in sequence
in the modeled system.
The first task takes three hours to complete, the second task takes five hours
to complete. These amounts of time are specified in the model (using the delay
statement, as will be explained below).
A simulation of the system should report 'It takes eight hours from start of
the first task to finish of the second task'.
However, it generally does not take eight hours to compute that result, a
computer can calculate the answer much faster.
When an engineer says ''I had to run the system for a year to reach
steady-state'', he means that time inside the model has progressed a year.</p>
</div>
<div class="paragraph">
<p>





</p>
</div>
<div class="sect3">
<h4 id="tut-the-clock">The clock</h4>
<div class="paragraph">
<p>The variable <code>time</code> denotes the current time in a model. It is a <em>global</em>
variable, it can be used in every <code>model</code> and <code>proc</code>.
The time is a variable of type <code>real</code>. Its initial value is <code>0.0</code>. The
variable is updated automatically by the model, it cannot be changed by the
user.
The unit of the time is however determined by the user, that is, you define
how long 1 time unit of simulated time is in the model.</p>
</div>
<div class="paragraph">
<p>The value of variable <code>time</code> can be retrieved by reading from the <code>time</code>
variable:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">t = time</code></pre>
</div>
</div>
<div class="paragraph">
<p>The meaning of this statement is that the current time is copied to variable
<code>t</code> of type real.</p>
</div>
<div class="paragraph">
<p>A process delays itself to simulate the processing time of an operation with a
<em>delay</em> statement.
The process postpones or suspends its own actions until the delay ends.</p>
</div>
<div class="paragraph">
<p>For example, suppose a system has to perform three actions, each action takes
45 seconds. The unit of time in the model is one minute (that is, progress of
the modeled time by one time unit means a minute of simulated time has
passed).
The model looks like:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc P():
    for i in range(3):
        write(&quot;i = %d, time = %f\n&quot;, i, time);
        delay 0.75
    end
end

model M():
    run P()
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>An action takes 45 seconds, which is <code>0.75</code> time units. The <code>delay 0.75</code>
statement represents performing the action, the process is suspended until
0.75 units of time has passed.</p>
</div>
<div class="paragraph">
<p>The simulation reports:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">i = 0, time = 0.000000
i = 1, time = 0.750000
i = 2, time = 1.500000
All processes finished at time 2.25</code></pre>
</div>
</div>
<div class="paragraph">
<p>The three actions are done in 2.25 time units (2.25 minutes).</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-servers-with-time">Servers with time</h4>
<div class="paragraph">
<p>Adding time to the model allows answering questions about time, often
performance questions ('how many products can I make in this situation?'). Two
things are needed:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Servers must model use of time to perform their task.</p>
</li>
<li>
<p>The model must perform measurements of how much time passes.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>By extending models of the servers with time, time passes while tasks are
being performed. Time measurements then give non-zero numbers (servers that
can perform actions instantly result in all tasks being done in one moment of
time, that is 0 time units have passed between start and finish).
Careful analysis of the measurements should yields answers to questions about
performance.</p>
</div>
<div class="paragraph">
<p>In this chapter, adding of passing time in a server and how to embed time
measurements in the model is explained.
The first case is a small production line with a deterministic server (its
task takes a fixed amount of time), while the second case uses stochastic
arrivals (the moment of arrival of new items varies), and a stochastic server
instead (the duration of the task varies each time).
In both cases, the question is what the flow time of an item is (the amount of
time that a single item is in the system), and what the throughput of the
entire system is (the number of items the production line can manufacture per
time unit).</p>
</div>
<div class="sect4">
<h5 id="tut-servers-deterministic-system">A deterministic system</h5>
<div class="paragraph">
<p>The model of a deterministic system consists of a deterministic generator, a
deterministic server, and an exit process.
The line is depicted in <a href="#tut-figure2-generator-server-exit">Generator <code>G</code>, server <code>S</code>, and exit <code>E</code></a>.</p>
</div>
<div id="tut-figure2-generator-server-exit" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/generator_server_exit.png" alt="generator server exit">
</div>
<div class="title">Figure 12. Generator <code>G</code>, server <code>S</code>, and exit <code>E</code></div>
</div>
<div class="paragraph">
<p>Generator process <code>G</code> sends items, with constant inter-arrival time <code>ta</code>,
via channel <code>a</code>, to server process <code>S</code>.
The server processes items with constant processing time <code>ts</code>, and sends
items, via channel <code>b</code>, to exit process <code>E</code>.</p>
</div>
<div class="paragraph">
<p>An item contains a real value, denoting the creation time of the item, for
calculating the throughput of the system and flow time (or sojourn time) of an
item in the system.
The generator process creates an item (and sets its creation time), the exit
process <code>E</code> writes the measurements (the moment in time when the item
arrives in the exit process, and its creation time) to the output.
From these measurements, throughput and flow time can be calculated.</p>
</div>
<div class="paragraph">
<p>Model <code>M</code> describes the system:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">type item = real;

model M(real ta, ts; int N):
    chan item a, b;

    run G(a, ta),
        S(a, b, ts),
        E(b, N)
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>item</code> is a real number for storing the creation time.
Parameter <code>ta</code> denotes the inter-arrival time, and is used in generator <code>G</code>.
Parameter <code>ts</code> denotes the server processing time, and is used in server <code>S</code>.
Parameter <code>N</code> denotes the number of items that must flow through the system
to get a good measurement.</p>
</div>
<div class="paragraph">
<p>Generator <code>G</code> has two parameters, channel <code>a</code>, and inter-arrival time <code>ta</code>.
The description of process <code>G</code> is given by:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc G(chan! item a; real ta):
    while true:
        a!time; delay ta
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Process <code>G</code> sends an item, with the current time, and delays for <code>ta</code>,
before sending the next item to server process <code>S</code>.</p>
</div>
<div class="paragraph">
<p>Server <code>S</code> has three parameters, receiving channel <code>a</code>, sending channel
<code>b</code>, and server processing time <code>ts</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc S(chan? item a; chan! item b; real ts):
    item x;

    while true:
        a?x; delay ts; b!x
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The process receives an item from process <code>G</code>, processes the item during
<code>ts</code> time units, and sends the item to exit  process <code>E</code>.</p>
</div>
<div class="paragraph">
<p>Exit <code>E</code> has two parameters, receiving channel <code>a</code> and the length of the
experiment <code>N</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc E(chan item a; int N):
    item x;

    for i in range(N):
        a?x; write(&quot;%f, %f\n&quot;, time, time - x)
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The process writes current time <code>time</code> and item flow time <code>time - x</code> to
the screen for each received item.
Analysis of the measurements will show that the system throughput equals
<code>1 / ta</code>, and that the item flow time equals <code>ts</code> (if <code>ta &gt;= ts</code>).</p>
</div>
</div>
<div class="sect4">
<h5 id="tut-stochastic-system">A stochastic system</h5>
<div class="paragraph">
<p>In the next model, the generator produces items with an exponential
inter-arrival time, and the server processes items with an exponential server
processing time. To compensate for the variations in time of the generator and
the server, a buffer process has been added.
The model is depicted in <a href="#tut-figure-MM1">Generator <code>G</code>, buffer <code>B</code>, server <code>S</code>, and exit <code>E</code></a>.</p>
</div>
<div id="tut-figure-MM1" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/generator_buffer_server_exit.png" alt="generator buffer server exit">
</div>
<div class="title">Figure 13. Generator <code>G</code>, buffer <code>B</code>, server <code>S</code>, and exit <code>E</code></div>
</div>
<div class="paragraph">
<p>Type <code>item</code> is the same as in the previous situation.
The model runs the additional buffer process:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">model M(real ta, ts; int N):
    chan item a, b, c;

    run G(a, ta),
        B(a, b),
        S(b, c, ts),
        E(c, N)
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Generator <code>G</code> has two parameters, channel variable <code>a</code>, and variable
<code>ta</code>, denoting the mean inter-arrival time.
An <code>exponential</code> distribution is used for deciding the inter-arrival time of
new items:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc G(chan item a; real ta):
    dist real u = exponential(ta);

    while true:
        a!time; delay sample u
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The process sends a new item to the buffer, and delays <code>sample u</code> time units.
Buffer process <code>B</code> is a fifo buffer with infinite capacity, as described at
<a href="#tut-infinite-buffer">An infinite buffer</a>.
Server <code>S</code> has three parameters, channel
variables <code>a</code> and <code>b</code>, for receiving and sending items, and a variable for
the average processing time <code>ts</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc S(chan item a, b; real ts):
    dist real u = exponential(ts);
    item x;

    while true:
        a?x; delay sample u; b!x
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>An <code>exponential</code> distribution is used for deciding the processing time.
The process receives an item from process <code>G</code>, processes the item during
<code>sample u</code> time units, and sends the item to exit process <code>E</code>.</p>
</div>
<div class="paragraph">
<p>Exit process <code>E</code> is the same as previously, see <a href="#tut-servers-deterministic-system">A deterministic system</a>.
In this case the throughput of the system also equals <code>1 / ta</code>, and the
<em>mean flow</em> can be obtained by doing an experiment and analysis of the
resulting measurements (for <code>ta &gt; ts</code>).</p>
</div>
<div class="paragraph">
<p>


</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-two-servers">Two servers</h4>
<div class="paragraph">
<p>In this section two different types of systems are shown: a serial and a
parallel system.
In a serial system the servers are positioned after each other, in a parallel
system the servers are operating in parallel.
Both systems use a stochastic generator, and stochastic servers.</p>
</div>
<div class="sect4">
<h5 id="tut-serial-system">Serial system</h5>
<div class="paragraph">
<p>The next model describes a <em>serial</em> system, where an item is processed by one
server, followed by another server.
The generator and the servers are decoupled by buffers.
The model is depicted in <a href="#tut-figure-tandem">A generator, two buffers, two servers, and an exit</a>.</p>
</div>
<div id="tut-figure-tandem" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/generator_2buffers_2servers_exit.png" alt="generator 2buffers 2servers exit">
</div>
<div class="title">Figure 14. A generator, two buffers, two servers, and an exit</div>
</div>
<div class="paragraph">
<p>The model can be described by:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">model M(real ta, ts; int N):
    chan item a, b, c, d, e;

    run G(a, ta),
        B(a, b), S(b, c, ts),
        B(c, d), S(d, e, ts),
        E(e, N)
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The various processes are equal to those described previously in
<a href="#tut-stochastic-system">A stochastic system</a>.</p>
</div>
</div>
<div class="sect4">
<h5 id="tut-parallel-systems">Parallel systems</h5>
<div class="paragraph">
<p>In a parallel system the servers are operating in parallel. Having several
servers in parallel is useful for enlarging the processing capacity of the
task being done, or for reducing the effect of break downs of servers (when a
server breaks down, the other server continues with the task for other items).
<a href="#tut-figure-two-parallel-servers">A model with two parallel servers</a> depicts the system.</p>
</div>
<div id="tut-figure-two-parallel-servers" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/two_parallel_servers.png" alt="two parallel servers">
</div>
<div class="title">Figure 15. A model with two parallel servers</div>
</div>
<div class="paragraph">
<p>Generator process <code>G</code> sends items via <code>a</code> to buffer process <code>B</code>, and
process <code>B</code> sends the items in a first-in first-out manner to the servers
<code>S</code>. Both servers send the processed items to the exit process <code>E</code> via
channel <code>c</code>.
The inter-arrival time and the two process times are assumed to be stochastic,
and exponentially distributed.
Items can pass each other, due to differences in processing time between the
two servers.</p>
</div>
<div class="paragraph">
<p>If a server is free, and the buffer is not empty, an item is sent to a server.
If both servers are free, one server will get the item, but which one cannot
be determined beforehand. (How long a server has been idle is not taken into
account.)
The model is described by:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">model M(real ta, ts; int N):
    chan item a, b, c;

    run G(a, ta),
        B(a, b),
        S(b, c, ts), S(b, c, ts),
        E(c, N)
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>To control which server gets the next item, each server must have its own
channel from the buffer. In addition, the buffer has to know when the server
can receive a new item.
The latter is done with a 'request' channel, denoting that a server is free
and needs a new item.
The server sends its own identity as request, the requests are administrated
in the buffer.
The model is depicted in <a href="#tut-figure-two-parallel-requesting-servers">A model with two parallel requesting servers</a>.</p>
</div>
<div id="tut-figure-two-parallel-requesting-servers" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/two_parallel_requesting_servers.png" alt="two parallel requesting servers">
</div>
<div class="title">Figure 16. A model with two parallel requesting servers</div>
</div>
<div class="paragraph">
<p>In this model, the servers 'pull' an item through the line.
The model is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">model M(real ta, ts; int N):
    chan item a; list(2) chan item b; chan item c;
    chan int r;

    run G(a, ta),
        B(a, b, r),
        unwind j in range(2):
            S(b[j], c, r, ts, j)
        end,
        E(c, N)
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>In this model, an <code>unwind</code> statement is used for the initialization and
running of the two servers.
Via channel <code>r</code> an integer value, <code>0</code> or <code>1</code>, is sent to the buffer.</p>
</div>
<div class="paragraph">
<p>The items received from generator <code>G</code> are stored in list <code>xs</code>, the
requests received from the servers are stored in list <code>ys</code>.
The items and requests are removed form their respective lists in a first-in
first-out manner.
Process <code>B</code> is defined by:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc B(chan? item a; list chan! item b; chan? int r):
    list item xs; item x;
    list int ys; int y;

    while true:
        select
            a?x:
                xs = xs + [x]
        alt
            r?y:
                ys = ys + [y]
        alt
            not empty(xs) and not empty(ys), b[ys[0]]!xs[0]:
                xs = xs[1:]; ys = ys[1:]
        end
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>If, there is an item present, <em>and</em> there is a server demanding for an item,
the process sends the first item to the longest waiting server.
The longest waiting server is denoted by variable <code>ys[0]</code>.
The head of the item list is denoted by <code>xs[0]</code>.
Assume the value of <code>ys[0]</code> equals <code>1</code>, then the expression
<code>b[ys[0]]!xs[0]</code>, equals <code>b[1]!xs[0]</code>, indicates that the first item of
list <code>xs</code>, equals <code>xs[0]</code>, is sent to server <code>1</code>.</p>
</div>
<div class="paragraph">
<p>The server first sends a request via channel <code>r</code> to the buffer, and waits
for an item. The item is processed, and sent to exit process <code>E</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc S(chan? item b; chan! item c; chan! int r; real ts; int k):
    dist real u = exponential(ts);
    item x;

    while true:
        r!k;
        b?x;
        delay sample u;
        c!x
    end
end</code></pre>
</div>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tut-assembly">Assembly</h4>
<div class="paragraph">
<p>In assembly systems, components are assembled into bigger components.
These bigger components are assembled into even bigger components.
In this way, products are built, e.g. tables, chairs, computers, or cars.
In this section some simple assembly processes are described.
These systems illustrate how assembling can be performed: in industry these
assembly processes are often more complicated.</p>
</div>
<div class="paragraph">
<p>An assembly work station for two components is shown in
<a href="#tut-figure-assembly-two-components">Assembly for two components</a>.</p>
</div>
<div id="tut-figure-assembly-two-components" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/assembly_two_components.png" alt="assembly two components">
</div>
<div class="title">Figure 17. Assembly for two components</div>
</div>
<div class="paragraph">
<p>The assembly process server <code>S</code> is preceded by buffers. The server receives
an item from each buffer <code>B</code>, before starting assembly. The received items
are assembled into one new item, a list of its (sub-)items.
The description of the assembly server is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc S(list chan? item c, chan! list item b):
    list(2) item v;

    while true:
        select
            c[0]?v[0]: c[1]?v[1]
        alt
            c[1]?v[1]: c[0]?v[0]
        end
        b!v
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The process takes a list of channels <code>c</code> to receive items from the preceding
buffers.
The output channel <code>b</code> is used to send the assembled component away to the
next process.</p>
</div>
<div class="paragraph">
<p>First, the assembly process receives an item from both buffers. All buffers
are queried at the same time, since it is unknown which buffer has components
available. If the first buffer reacts first, and sends an item, it is received
with channel <code>c[0]</code> and stored in <code>v[0]</code> in the first alternative. The
next step is then to receive the second component from the second buffer, and
store it (<code>c[1]?v[1]</code>).
The second alternative does the same, but with the channels and stored items
swapped.</p>
</div>
<div class="paragraph">
<p>When both components have been received, the assembled product is sent away.</p>
</div>
<div class="paragraph">
<p>A generalized assembly work station for <code>n</code> components is depicted in
<a href="#tut-figure-assembly-n-components">Assembly for <code>n</code> components, with <code>m = n - 1</code></a>.</p>
</div>
<div id="tut-figure-assembly-n-components" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/assembly_n_components.png" alt="assembly n components">
</div>
<div class="title">Figure 18. Assembly for <code>n</code> components, with <code>m = n - 1</code></div>
</div>
<div class="paragraph">
<p>The entire work station (the combined buffer processes and the assembly server
process) is described by:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc W(list chan? item a; chan! list item b):
    list(size(a)) chan item c;

    run unwind i in range(size(a)):
            B(a[i], c[i])
        end,
        S(c,b)
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The size of the list of channels <code>a</code> is determined during initialization of
the workstation.
This size is used for the generation of the process buffers, and the
accompanying channels.</p>
</div>
<div class="paragraph">
<p>The assembly server process works in the same way as before, except for a
generic <code>n</code> components, it is impossible to write a select statement
explicitly. Instead, an <em>unwind</em> is used to unfold the alternatives:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc S(list chan? item c, chan! list item b):
    list(size(c)) item v;
    list int rec;

    while true:
        rec = range(size(c));
        while not empty(rec):
            select
                unwind i in rec
                    c[i]?v[i]: rec = rec - [i]
                end
            end
        end;
        delay ...;
        b!v
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The received components are again in <code>v</code>. Item <code>v[i]</code> is received from
channel <code>c[i]</code>. The indices of the channels that have not provided an item
are in the list <code>rec</code>. Initially, it contains all channels
<code>0</code> &#8230;&#8203; <code>size(c)</code>, that is, <code>range(size(c))</code>. While <code>rec</code> still has a
channel index to monitor, the <code>unwind i in rec</code> unfolds all alternatives
that are in the list. For example, if <code>rec</code> contains <code>[0, 1, 5]</code>,
the <code>select unwind i in rec ... end</code> is equivalent to:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">select
    c[0]?v[0]: rec = rec - [0]
alt
    c[1]?v[1]: rec = rec - [1]
alt
    c[5]?v[5]: rec = rec - [5]
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>After receiving an item, the index of the channel is removed from <code>rec</code> to
prevent receiving a second item from the same channel.
When all items have been received, the assembly process starts (modeled with a
<code>delay</code>, followed by sending the assembled component away with <code>b!v</code>.</p>
</div>
<div class="paragraph">
<p>In practical situations these assembly processes are performed in a more
cascading manner. Two or three components are 'glued' together in one assemble
process, followed in the next process by another assembly process.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-exercises-6">Exercises</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>To understand how time and time units relate to each other, change the time
unit of the model in <a href="#tut-the-clock">The clock</a>.</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>Change the model to using time units of one second (that is, one time
unit means one second of simulated time).</p>
</li>
<li>
<p>Predict the resulting throughput and flow time for a deterministic case
like in
<a href="#tut-servers-with-time">Servers with time</a>, with <code>ta = 4</code> and <code>ts = 5</code>.
Verify the prediction with an experiment, and explain the result.</p>
</li>
</ol>
</div>
</li>
<li>
<p>Extend the model <a href="#tut-figure-controlled-factory">A controlled factory</a>
in <a href="#tut-buffer-exercises">Buffer exercises</a>
with a single deterministic server taking
<code>4.0</code> time units to model the production capacity of the factory.
Increase the number of products inserted by the generator, and measure the
average flow time for</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>A FIFO buffer with control policy <code>low = 0</code> and <code>high = 1</code>.</p>
</li>
<li>
<p>A FIFO buffer with control policy <code>low = 1</code> and <code>high = 4</code>.</p>
</li>
<li>
<p>A <em>LIFO</em> buffer with control policy <code>low = 1</code> and <code>high = 4</code>.</p>
</li>
</ol>
</div>
</li>
</ol>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-chapter-conveyors">Conveyors</h3>
<div class="paragraph">
<p>A conveyor is a long belt on which items are placed at the starting point of
the conveyor.
The items leave the conveyor at the end point, after traveling a certain
period of time on the conveyor.
The number of items traveling on the conveyor varies, while each item stays
the same amount of time on the conveyor. It works like a buffer that provides
output based on item arrival time instead of based on demand from the next
process.</p>
</div>
<div class="paragraph">
<p>


</p>
</div>
<div class="sect3">
<h4 id="tut-using-timers">Timers</h4>
<div class="paragraph">
<p>



To model a conveyor, you have to wait until a particular point in time. The
Chi language has timers to signal such a time-out.
The timer is started by assigning it a value. From that moment, it
automatically decrements when time progresses in the model, until it reaches
zero. The function <code>ready</code> gives the boolean value <code>true</code> if the timer is ready.
The amount of time left can be obtained by reading from the variable.
An example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc P():
    timer t;

    delay 10.0;
    t = timer(5.0); # Get a time-out at time = 15.0
    for i in range(7):
        write(&quot;%f %f %b\n, time, real(t), ready(t));
        delay 1.0
    end
end

model M():
    run P()
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Initially, <code>time</code> equals <code>0.0</code>.
The first action of process <code>P</code> is to delay the time for <code>10.0</code> time units.
Now the value of <code>time</code> equals <code>10.0</code>. Nothing happens to timer <code>t</code> as
it was already zero.
At time <code>10</code> timer <code>t</code> is started with the value <code>5.0</code>.
The output of the program is:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">10.0   5.0    false
11.0   4.0    false
12.0   3.0    false
13.0   2.0    false
14.0   1.0    false
15.0   0.0    true
16.0   0.0    true</code></pre>
</div>
</div>
<div class="paragraph">
<p>Timer <code>t</code> decrements as time progresses, and it is <code>ready</code> at
<code>10.0 + 5.0</code> units.
A process can have more timers active at the same moment.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-a-conveyor">A conveyor</h4>
<div class="paragraph">
<p>A conveyor is schematically depicted in <a href="#tut-figure-conveyor">A conveyor with three items</a>.</p>
</div>
<div id="tut-figure-conveyor" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/conveyor_3items.png" alt="conveyor 3items">
</div>
<div class="title">Figure 19. A conveyor with three items</div>
</div>
<div class="paragraph">
<p>Three items are placed on the conveyor. For simplicity, assume the conveyor is
<code>60.0</code> meter long and has a speed of <code>1</code> meter per second.
An item thus stays on the conveyor for <code>60.0</code> seconds.</p>
</div>
<div class="paragraph">
<p>Item <code>0</code> has been placed on the conveyor <code>50.0</code> seconds ago, and will leave
the conveyor <code>10.0</code> second from now. In the same way, item <code>1</code> will leave
<code>30.0</code> seconds from now, and <code>2</code> leaves after <code>45.0</code> seconds. Each item
has a <em>yellow sticker</em> with the time that the item leaves the conveyor. Based
on this idea, tuple type <code>conv_item</code> has been defined, consisting of a
field <code>item</code>, denoting the received item, and a timer field <code>t</code>, with the
remaining time until the item leaves the conveyor:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">type conv_item = tuple(item x; timer t);

proc T(chan? item a; chan! item b; real convey_time):
    list conv_item xst; item x;

    while true:
        select
            a?x:
                xst = xst + [(x, timer(convey_time))]
        alt
            not empty(xst) and ready(xst[0].t), b!xst[0].x:
                xst = xst[1:]
        end
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The conveyor always accepts new items from channel <code>a</code>, and adds the item
with the yellow sticker to the list. If the conveyor is not empty, and the
timer has expired for the first item in the list, it is sent (without sticker)
to the next process. The conveyor sends items to a process that is always
willing to a receive an item, this implies that the conveyor is never blocked.
Blocking implies that the items nevertheless are transported to the end of the
conveyor.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-a-priority-conveyor">A priority conveyor</h4>
<div class="paragraph">
<p>In this example, items are placed on a conveyor, where the time of an item on
the conveyor varies between items.
Items arriving at the conveyor process, get inserted in the list with waiting
items, in ascending order of their remaining time on the conveyor.
The field <code>tt</code> in the item denotes the traveling time of the item on the
conveyor:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">type item      = tuple(...; real tt; ...),
     conv_item = tuple(item x; timer t);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The predicate function <code>pred</code> is defined by:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">func bool pred(conv_item x, y):
    return real(x.t) &lt;= real(y.t)
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The conveyor process becomes:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc T(chan? item a; chan! item b):
    list conv_item xst; item x;

    while true:
        select
            a?x:
                xst = insert(xst, (x, timer(x.tt)), pred)
        alt
            not empty(xst) and ready(xst[0].t), b!xst[0].item:
                xst = xst[1:]
        end
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The conveyor process works like before, except the new item is inserted in the
list according to its remaining time, instead of at the rear of the list.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-exercises-7">Exercises</h4>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Model the system as shown in <a href="#tut-figure-conveyor-system">A conveyor system</a> where <code>T</code>
is a conveyor process with a capacity of <em>at most</em> three products and
exponentially distributed conveying times with an average of <code>4.0</code>.</p>
<div class="paragraph">
<p>Compute the average flow time of products in the system.</p>
</div>
<div id="tut-figure-conveyor-system" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/conveyor_system.png" alt="conveyor system">
</div>
<div class="title">Figure 20. A conveyor system</div>
</div>
</li>
<li>
<p>Model the system as shown in <a href="#tut-figure-three-parallel-servers">A system with three parallel servers</a> with
exponentially distributed server processing times with an average of
<code>4.0</code>.</p>
<div id="tut-figure-three-parallel-servers" class="imageblock">
<div class="content">
<img src="./tutorial/pictures/three_parallel_servers.png" alt="three parallel servers">
</div>
<div class="title">Figure 21. A system with three parallel servers</div>
</div>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>Compute the average flow time of products in the system.</p>
</li>
<li>
<p>Are there differences in behavior between both systems? Why (not)?</p>
</li>
</ol>
</div>
</li>
</ol>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-chapter-simulation-and-experiments">Simulations and experiments</h3>
<div class="paragraph">
<p>So far, attention has focused on the Chi language, and how to use it for
modeling a discrete-event system.</p>
</div>
<div class="paragraph">
<p>In this chapter, the focus shifts to performing simulations, in particular for
systems with infinite behavior. Also, how to perform multiple model
simulations is explained.</p>
</div>
<div class="sect3">
<h4 id="tut-simulating-finite-systems">Simulating finite systems</h4>
<div class="paragraph">
<p>For systems that have simple cyclic behavior, the simulation can be
'exhaustive', for example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc G(chan! real a):
    a!time
end

proc M(chan? real a, chan! real b):
    real x;

    a?x; delay 5.0; b!x
end

proc E(chan? real a):
    real x;

    a?x;
    writeln(&quot;Flow time: %.2f&quot;, time - x);
end

model M():
    chan real gm, me;

    run G(gm), M(gm, me), E(me);
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This simulation sends a single product through the line, prints the flow time,
and exits. (All processes end, which makes that the <code>run</code> statement and the
model end as well.)</p>
</div>
<div class="paragraph">
<p>In this case, the answer is even obvious without running the simulation.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-exit">Simulating infinite systems</h4>
<div class="paragraph">
<p>For other systems, it is much harder to decide when enough has been simulated.
Typically, a process (<code>E</code> in the example below), collects values of the
property of interest (for example flow time of products), until it has
collected enough samples to draw a conclusion, and compute the resulting value.</p>
</div>
<div class="paragraph">
<p>After doing so, the problem arises to let all processes know the simulation
should be stopped. This can be programmed in the model (such as adding
channels to
signal termination of the simulation to all processes). A simpler alternative
is to use the <code>exit</code> statement, in the following way:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc real E(chan? real a, int N):
    real total, x;

    for n in range(N):
        a?x;
        total = total + time - x;
    end;
    exit total / N
end

model real M(... int N):
    ...

    run ..., E(..., N);
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>In process <code>E</code>, the average flow time is calculated and given as
argument of the <code>exit</code> statement. At the moment this statement is executed,
the model and all processes are killed, and the computed value becomes the
exit value (the result) of the simulation. The <code>real</code> type before
the name <code>E</code> denotes that the process may perform an <code>exit</code> statement
returning a real value. The model runs the <code>E</code> process, so it may also give
an exit value as result. These types are called <em>exit type</em>.
Exit values are printed to the screen by the simulator when it ends the
model simulation.</p>
</div>
<div class="paragraph">
<p>Another option is to use <code>write</code> to output the computed value, and use
<code>exit</code> without argument. In that case, the exit value is of type <code>void</code>.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-experiment">Simulating several scenarios</h4>
<div class="paragraph">
<p>The above works nicely for single model simulations. The model is started one
time, and it derives a result for a single scenario.</p>
</div>
<div class="paragraph">
<p>Often however, you want to perform several model simulations. This can be the
exact same scenario when the model has stochastic behavior, or it can be
with different parameter values each time (to investigate system behavior
under different circumstances).
In such cases, you can use an experiment, like below:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">xper X():
    real v;
    int n;

    for n in range(5, 10):
        v = M(n);
        write(&quot;%2d: %.2f\n&quot;, n, v)
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The experiment <code>X</code> looks just like a function, except that it has no
<code>return</code>
statement. It can however 'call' a model like a function. In the example above
<code>M(n)</code> starts a simulation with model <code>M</code> and the given value for <code>n</code>.
When the model exits by means of the <code>exit</code> statement (this is required!),
the computed exit
value of the (model) simulation is assigned to variable <code>v</code>. In the
experiment, this value can be used for post-processing, or in this case, get
printed as result value in a table.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-chapter-svg-visualization">SVG visualization</h3>
<div class="paragraph">
<p>A Chi simulation often produces large amounts of textual output that you have
to process in order to understand the simulation result. Also for people
unfamiliar with the details of the simulated system, results are hard to
understand. A possible solution is to add a visualization of the system to the
simulator, that displays how the system behaves over time. Generally, it
looses some of the details, but it makes globally checking, and explaining of
the simulation much easier.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect3">
<h4 id="tut-the-svg-file-format">The SVG file format</h4>
<div class="paragraph">
<p>
The <a href="http://www.w3.org/TR/SVG11/">Scalable Vector Graphics</a> (SVG) file
format is a widely used, royalty-free standard for two-dimensional vector
graphics, developed by the <a href="http://www.w3.org/">World Wide Web Consortium</a>
(W3C). SVG images consist of three types of objects: vector graphic shapes
(rectangles, circles, etc.), raster images, and text. The benefit of vector
images formats over raster image formats, is that raster images are created
with a fixed size, while vector images contain a description of the image and
can be rendered at any size without loss of quality.</p>
</div>
<div class="paragraph">
<p>

SVG image files are stored in an
<a href="http://en.wikipedia.org/wiki/XML">XML</a>-based file format. This means that
they can be edited with any text editor. However, it is often more convenient
to edit them with a drawing program that supports vector graphics, such as
<a href="http://www.adobe.com/products/illustrator.html">Adobe Illustrator</a>
or <a href="https://inkscape.org/">Inkscape</a>.
Most modern web browsers also support display of SVG images.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-visualization">Visualization</h4>
<div class="paragraph">
<p>An SVG file has a tree structure; (graphical) elements are drawn in the same
order as they appear in the file. Elements further down in the file are thus
drawn on top of earlier elements. Also, each element has a position and size.
They may have other properties like a color or a gradient as well. There are
also 'administrative' elements, that can group, scale, or rotate parts of the
tree. The website of Jakob Jenkov has a very nice
<a href="http://tutorials.jenkov.com/svg">SVG Tutorial</a>.</p>
</div>
<div class="paragraph">
<p>The SVG visualization by the Chi simulator exploits this structure. You access
the elements, and literally change the value of their properties or copy part
of the tree. The
<a href="http://xmlgraphics.apache.org/batik/">Apache Batik SVG Toolkit</a>
used for drawing the SVG image at the
screen notices the changes, and updates the displayed image.</p>
</div>
<div class="paragraph">
<p>By updating the SVG tree every time when the state of the simulation changes,
you can display how a system evolves over time as an animated image.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tut-chapter-svg-example">SVG visualization example</h3>
<div class="paragraph">
<p>To illustrate how to make an SVG visualization, a simple generator, buffer,
server, buffer, server, exit (GBSBSE) process line is used.
Below the generator and exit process definitions, and the model:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc G(chan! real to; real ptime):
    int n = 0;

    while n &lt; 100:
        to!time; delay ptime; n = n + 1
    end
end

proc E(chan? real from):
    real x;

    while true:
        from?x
    end
end

model M():
    list(3) chan real c;
    list(2) chan real bs;

    run G(c[0], 1.1),

        B(0, c[0], bs[0], 3),
        S(0, bs[0], c[1], 1.0, exponential(10.0), exponential(4.0)),

        B(1, c[1], bs[1], 3),
        S(1, bs[1], c[2], 0.9, exponential(10.0), exponential(4.0)),

        E(c[2]);
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This system should be visualized, where the number of items in each buffer
should be displayed, and the state of each server (waiting for input,
processing, or waiting for output) should also be shown.
The <a href="./tutorial/gbse.svg">gbse.svg</a>
SVG file was made for this purpose, which
looks like</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tutorial/sbb.png" alt="sbb">
</div>
</div>
<div class="paragraph">
<p>in an editor. The black rectangle represents the displayed area when the
visualization is running. It has two light-green rectangles in it, representing
the first and second buffer. The darker green rectangles inside will vary in height
to show the number of items in each buffer.</p>
</div>
<div class="paragraph">
<p>The circle at the left of the displayed area is never displayed in the
visualization. However, each server makes a copy of it, and places it at an
appropriate position in the display. While for two servers, one could just as
well perform the copying beforehand, as was done with the buffer graphics, but
the copying technique demonstrates how to scale visualizations for displaying
a larger number of items without a lot of effort.</p>
</div>
<div class="sect3">
<h4 id="tut-buffer-visualization">Buffer visualization</h4>
<div class="paragraph">
<p>The left darker green rectangle has an <code>id</code> with value <code>buf0</code>, while the
right rectangle has an <code>id</code> containing <code>buf1</code>. Through the <code>id</code>, you can
access the properties, in this case, the height, for example
<code>attr buf0.height = 50</code>. This will set the <code>height</code> property of the SVG element
named <code>buf0</code> to <code>50</code>.</p>
</div>
<div class="paragraph">
<p>The SVG visualization is not in the Chi model itself, it is an external
entity. You access it by opening a 'file', and writing the commands such as
above, as lines of text.
The code of the buffer is shown below.</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc B(int num; chan? real from; chan! real to; int cap):
    list real xs;
    real x;
    file f = open(&quot;SVG:gbse.svg&quot;, &quot;w&quot;);

    while true:
        select size(xs) &gt; 0, to!xs[0]:
            xs = xs[1:];
        alt size(xs) &lt; cap, from?x:
            xs = xs + [x]
        end
        writeln(f, &quot;attr buf%d.height = %d&quot;, num, size(xs) * 50);
    end
    close(f);
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>It is a normal finite buffer process, except for three additional lines. The
first change is the <code>file f = open("SVG:gbse.svg", "w");</code> line. It creates a
connection to the SVG visualization due to the <code>SVG:</code> prefix of the file
name. <code>gbse.svg</code> is the name of the <code>.svg</code> file described above. The
'file' should be opened for writing (since you will be sending commands to
it).</p>
</div>
<div class="paragraph">
<p>The second line is the
<code>writeln(f, "attr buf%d.height = %d", num, size(xs) * 50);</code> line,
which constructs a line of text to set the height of the darker
green rectangle to a value proportional to the number of elements in the
buffer. There is however a <a href="#svg-vertical-trickery">vertical coordinate trick</a>
needed to make it all work.</p>
</div>
<div class="paragraph">
<p>The third line is the <code>close(f);</code> line at the end of the process. It closes
the connection to the SVG visualization.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect3">
<h4 id="svg-vertical-trickery">Vertical coordinates trickery</h4>
<div class="paragraph">
<p>In SVG, the vertical coordinates run from the top of the screen to the bottom.
If you just draw a rectangle, its base position <code>(x,y)</code> is at the top-left
corner, with <code>width</code> going to the right of the screen, and <code>height</code>
towards the bottom. In other words, if you change the height of a simple
SVG rectangle by a program like the buffer process, the rectangle will grow
downwards instead of upwards!</p>
</div>
<div class="paragraph">
<p>To make it grow upwards instead, you can</p>
</div>
<div class="ulist">
<ul>
<li>
<p>change both the <code>height</code> and the <code>y</code> coordinate of the rectangle at the
same time (you move the top of the rectangle in opposite direction with its
growth in height, so it looks like the rectangle grows upwards), or</p>
</li>
<li>
<p>flip the coordinate system of the rectangle by inserting a '180 degrees
rotation' transformation around the rectangle (you tell SVG to draw the
rectangle 'upside down', thus if you make it higher, it grows downwards, but
the flipped coordinate displays it as growth upwards.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="tut-server-process">Server process</h4>
<div class="paragraph">
<p>The server process code looks as follows (ignore all the <code>writeln</code> lines for
now).</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc S(int num; chan? real from; chan! real to; real ptime; dist real up, down):
    real event, x;
    file f = open(&quot;SVG:gbse.svg&quot;, &quot;w&quot;);

    writeln(f, &quot;copy server, , _x%d&quot;, num);
    writeln(f, &quot;absmove s_x%d (%d, 325)&quot;, num, num*420+150);

    while true:
        event = time + sample up;

        # Up; process items.
        while event &gt; time:
            writeln(f, &quot;attr s_x%d.fill=yellow&quot;, num);
            from?x;
            writeln(f, &quot;attr s_x%d.fill=green&quot;, num);
            delay ptime;
            writeln(f, &quot;attr s_x%d.fill=magenta&quot;, num);
            to!x;
        end

        # Down; repair machine.
        writeln(f, &quot;attr s_x%d.fill=red&quot;, num);
        delay sample down;
    end
    close(f);
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The server runs forever, starting with sampling how long it will be up
(<code>event = time + sample up</code>). Until it has reached that time
(<code>while event &gt; time:</code>), it cycles through getting a product, processing
it for <code>uptime</code> time units, and sending the product out again. After a
few cycles, it has reached the <code>event</code> time, goes down, and waits for repair
(<code>delay sample down;</code>). Once the machine is repaired it starts again.
Visualization of the servers is discussed below.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-visualizing-the-server">Visualizing the server</h4>
<div class="paragraph">
<p>A server is to be visualized with a circle that changes color depending on
what the server is doing. Yellow means it is waiting for a product, green
means processing, magenta means it is waiting to pass the finished product
to the next station, and red means the machine is down. After repairing, it
will continue processing.</p>
</div>
<div class="paragraph">
<p>As with the buffer process, the SVG visualization first opens a file
connection to the visualizer and the SVG file with the
<code>file f = open("SVG:gbse.svg", "w");</code> line. The filename of the <code>.svg</code> file
must be the same as with the buffer process (the visualizer can only show
one SVG file at a time).</p>
</div>
<div class="paragraph">
<p>To display server state in the SVG visualization, we need a circle (called <em>arc</em> in
SVG) named <code>s_0</code> and <code>s_1</code> (for server 0 and server 1), positioned behind
its buffer. If there are not too many servers, and their number is fixed, one
could simply add those arcs to the SVG file and be done with it.
However, if you have a lot of servers, or you don&#8217;t know in advance how many
you will have, you cannot add them beforehand, you need to construct the SVG
elements 'on the fly'.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-copying-svg-elements">Copying SVG elements</h4>
<div class="paragraph">
<p>For showing the server states, arcs named <code>s_0</code> and <code>s_1</code> are required in
SVG, which are created by copying and moving an SVG element. In this case, a
server is represented by just one SVG element, so you can copy and move that
one element. In general however, you want to copy several elements at the same
time (for example you might want to copy graphical elements to display a work
station, a server with its buffer).</p>
</div>
<div class="paragraph">
<p>SVG has group elements, where you can put any number of (graphical) elements inside.
When you copy a group, you copy its entire contents. The <code>gbse.svg</code> file as
a group called <code>server</code>, containing an arc element called <code>s</code>. The server
group is copied and moved, which causes the arc element to be copied and moved
as well.</p>
</div>
<div class="paragraph">
<p>Inside an SVG file, each element must have a unique <code>id</code>, that is, each
element must have a unique name. When making a copy, the copied elements must
thus also be given a new name. The entire operation is performed with sending
a <code>copy [node], [prefix], [suffix]</code> command to the SVG visualizer. It
takes the element named <code>[node]</code>, and makes a full copy of it
(all elements inside it are also copied). For each copied element the
<code>[prefix]</code> is added in front of its <code>id</code> name, and the <code>[suffix]</code> is
added behind it.</p>
</div>
<div class="paragraph">
<p>The <code>writeln(f, "copy server, , _x%d", num);</code> line in the Chi simulation
performs the copy operation for the servers. It takes the <code>server</code> group
element (which contains an <code>s</code> arc element), and adds nothing in front of
the names (there is no text between the first and the second comma). It
appends the names with <code>_x0</code> for the first server, and <code>_x1</code> for the
second server. The result is thus a copy of the <code>server</code> group, called
<code>server_x0</code> or <code>server_x1</code>, containing an arc <code>s_x0</code> respectively
<code>s_x1</code>.</p>
</div>
<div class="paragraph">
<p>Note that the copy command performs copying, and nothing else. Since the
copied element is exactly at the same position as the original, you don&#8217;t see
copies. This is however fixed by a move command explained next.</p>
</div>
</div>
<div class="sect3">
<h4 id="tut-moving-svg-elements">Moving SVG elements</h4>
<div class="paragraph">
<p>You often want to position an SVG element at some point in the display. The
simplest way to do that is to change its <code>x</code> and <code>y</code> attributes, much
like the <code>height</code> attribute of the buffer rectangle was modified. Another
solution is to perform a relative move, using transform/translate.</p>
</div>
<div class="paragraph">
<p>This works, until you add a transformation element that changes the coordinate
system. Sometimes you do this consciously, for example adding a 'flip'
transformation to fix the vertical coordinates. At other times the SVG editor
may insert one, for example when you rotate or scale some part of the drawing.</p>
</div>
<div class="paragraph">
<p>The Chi SVG visualizer has a <code>absmove [node] ([xpos], [ypos])</code>
command to handle this case. It computes a transformation to get the top-left
corner of the element named <code>[node]</code> at position (<code>[xpos]</code>, <code>[ypos]</code>).
Keep in mind that the vertical coordinate starts at the top, and goes down.</p>
</div>
<div class="paragraph">
<p>There are limitations to this command, in some case it may fail (see the
<a href="#ref-chapter-svg-visualization">reference manual</a> for details about the
command). It is recommended to use this command one time on an element to move
it to a known base position. Once it is at a known position, change the <code>x</code>
and <code>y</code> coordinates of a child element (to avoid disturbing the base
position), to move relative to that base position. Another solution is to
perform a relative move, using transform/translate.</p>
</div>
<div class="paragraph">
<p>In the Chi simulation, the
<code>writeln(f, "absmove s_x%d (%d, 325)", num, num*420+150);</code> line moves the
copied <code>s_x0</code> and <code>s_x1</code> arcs to the right
position in the display.</p>
</div>
<div class="paragraph">
<p>With the arcs in the right position in the display, the servers can display
their activities by changing the color of the <code>fill</code> attribute.</p>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="ref-chapter-reference-manual">Chi Reference Manual</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This manual explains the allowed Chi language constructs and their semantics.
Topics discussed here are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#ref-chapter-global-definitions">Global definitions</a></p>
</li>
<li>
<p><a href="#ref-chapter-statements">Statements</a></p>
</li>
<li>
<p><a href="#ref-chapter-expressions">Expressions</a></p>
</li>
<li>
<p><a href="#ref-chapter-standard-library">Standard library functions</a></p>
</li>
<li>
<p><a href="#ref-chapter-distributions">Distributions</a></p>
</li>
<li>
<p><a href="#ref-chapter-types">Types</a></p>
</li>
<li>
<p><a href="#ref-chapter-lexical-syntax">Lexical syntax</a></p>
</li>
<li>
<p><a href="#ref-chapter-migration">Model migration</a></p>
</li>
<li>
<p><a href="#ref-chapter-svg-visualization">SVG visualization</a></p>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="ref-chapter-global-definitions">Global definitions</h3>
<div class="paragraph">
<p>At global level, a Chi program is a sequence of definitions, as shown in the
following diagram</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/program.png" alt="program">
</div>
</div>
<div class="paragraph">
<p>Each of the definitions is explained below.
The syntax diagram suggests that a <code>;</code> separator is obligatory between
definitions. The implementation is more liberal, you may omit the separator
when a definition ends with the <code>end</code> keyword. Also, it is allowed to use a
separator after the last definition.</p>
</div>
<div class="paragraph">
<p>The name of each global definition has to be unique.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
<div class="sect3">
<h4 id="ref-enum-definitions">Enumeration definitions</h4>
<div class="paragraph">
<p>With enumerations, you create a new enumeration type containing a number of
names (called enumeration values).
The syntax is given below.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/enumdef.png" alt="enumdef">
</div>
</div>
<div class="paragraph">
<p>The enumeration definitions start with the keyword <code>enum</code>, followed by a
sequence of definitions separated with a <code>,</code>. Each definition
associates an enumeration type name with a set of enumeration value names.
For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">enum FlagColours  = {red, white, blue},
     MachineState = {idle, heating, processing};</code></pre>
</div>
</div>
<div class="paragraph">
<p>The enumeration type names act as normal types, and the enumeration values are
its values. The values have to be unique words.</p>
</div>
<div class="paragraph">
<p>For example, you can create a variable, and compare values like:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">MachineState state = idle;
...
while state != processing:
    ...
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Note that enumeration values have no order, you cannot increment or decrement
variables with an enumeration type, and you can only compare values with
equality and inequality.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-type-definitions">Type definitions</h4>
<div class="paragraph">
<p>Type definitions allow you to assign a name to a type. By using a name instead
of the type itself, readability of the program increases.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/typedef.png" alt="typedef">
</div>
</div>
<div class="paragraph">
<p>A type definition starts with the keyword <code>type</code>, followed by a number of
'assignments' that associate a type name with a type, separated with a <code>,</code>.
For further details about type names and types, see <a href="#ref-chapter-types">Types</a>.</p>
</div>
<div class="paragraph">
<p>An example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">type lot   = real,
     batch = list lot;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here a <code>lot</code> type name is introduced that is implemented with a real number,
and a <code>batch</code> type name is created, which is a list of <code>lot</code>.</p>
</div>
<div class="paragraph">
<p>These type names can be used at every place where you can use a type, for
example in variable declarations:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">batch xs;
lot x;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Note that you cannot define use a type name in its own definition.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-constant-definitions">Constant definitions</h4>
<div class="paragraph">
<p>Constant definitions allow you to give a name to a fixed value to enhance
readability. It also makes it easier to change a value between different
experiments. For example, if you have a constant named <code>speed</code>, and you want
to investigate how its value affects performance, you only have to change
value in the constant definition, instead of finding and changing numbers in
the entire program.</p>
</div>
<div class="paragraph">
<p>The syntax of constant definitions is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/constantdef.png" alt="constantdef">
</div>
</div>
<div class="paragraph">
<p>An example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">const real speed = 4.8,
      dict(string : list int) recipes = { &quot;short&quot; : [1,4,8],
                                          &quot;long&quot;  : [1,1,2,3,4,5] };</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, a <code>speed</code> real value is defined, and <code>recipes</code> value, a
dictionary of string to numbers. The constant names can be used at every point
where you can use an expression. See the <a href="#ref-chapter-expressions">Expressions</a>
section for details about expressions.</p>
</div>
<div class="paragraph">
<p>Note that you cannot use a constant name in its own definition.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-process-definitions">Process definitions</h4>
<div class="paragraph">
<p>A process is an entity that shows behavior over time. A process definition is
a template for such a process. It is defined as follows</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/procdef.png" alt="procdef">
</div>
</div>
<div class="paragraph">
<p>The definition starts with the keyword <code>proc</code> optionally followed by an exit
type. The name of the process definition, and its formal parameters concludes
the header.
In the body, the behavior is described using statements.</p>
</div>
<div class="paragraph">
<p>Formal parameters are further explained in <a href="#ref-formal-parameters">Formal parameters</a>,
statements are explained in the <a href="#ref-chapter-statements">Statements</a> section.</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc P():
  writeln(&quot;Hello&quot;);
  delay 15;
  writeln(&quot;Finished&quot;)
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>In the example, a process definition with the name <code>P</code> is defined, without
parameters, that outputs a line of text when starting, and another line of
text 15 time units later (and then finishes execution).</p>
</div>
<div class="paragraph">
<p>Creating and running a process is done with <a href="#ref-sub-process-statements">Sub-process statements</a>
(<code>start</code> or <code>run</code>) from another process or from a model.</p>
</div>
<div class="paragraph">
<p>If a process definition has no exit type specified, it may not use the
<code>exit</code> statement, nor may it start other processes that have an exit type
(see also <a href="#ref-sub-process-statements">Sub-process statements</a>).
Process definitions that have an exit type may use the <code>exit</code> statement
directly (see <a href="#ref-exit-statement">Exit statement</a> for details on the statement), and it
may start other processes without exit type, or with the same exit type.</p>
</div>
<div class="paragraph">
<p>Since values returned by the <code>exit</code> statement may get printed onto the
output, you may only use exit types that are printable. These are all the
'normal' data values, from simple booleans to lists, sets, and dictionaries of
data values, but not channels, files, etc.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-model-definitions">Model definitions</h4>
<div class="paragraph">
<p>A model behaves like a process, the only difference is that a model is run
as first process. It is the 'starting point' of a simulation.
As such, a model can only take data values which you can write down as literal
value. For example, giving it a channel or a process instance is not allowed.</p>
</div>
<div class="paragraph">
<p>Like the process, a model also has a definition. It is defined below</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/modeldef.png" alt="modeldef">
</div>
</div>
<div class="paragraph">
<p>The syntax is exactly the same as process definitions explained in
<a href="#ref-process-definitions">Process definitions</a>, except it starts with
a <code>model</code> keyword instead.
A model can be started directly in the simulator (see
<a href="#tool-chapter-software-operation">Software operation</a>), or as part of an experiment, explained in
<a href="#tut-experiment">Simulating several scenarios</a>, and <a href="#ref-xper-definitions">Experiment definitions</a>.
If the model definition has no exit type, it may not use the <code>exit</code>
statement directly, nor may it start other processes that have an exit type.
If an exit type is specified, the model may use the <code>exit</code> statement
to end the model simulation (see <a href="#ref-sub-process-statements">Sub-process statements</a> for
details), and it may start other processes, either without exit type, or with
a matching exit type.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-function-definitions">Function definitions</h4>
<div class="paragraph">
<p>In programs, computations are executed to make decisions. These computations
can be long and complex. A function definition attaches a name to a
computation, so it can be moved to a separate place in the file.</p>
</div>
<div class="paragraph">
<p>Another common pattern is that the same computation is needed at several
places in the program. Rather than duplicating it (which creates consistency
problems when updating the computation), write it in a function  definition,
and call it by name when needed.</p>
</div>
<div class="paragraph">
<p>The syntax of a function definition is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/funcdef.png" alt="funcdef">
</div>
</div>
<div class="paragraph">
<p>In the syntax, the only thing that changes compared with the syntax in
<a href="#ref-process-definitions">Process definitions</a> or <a href="#ref-model-definitions">Model definitions</a> is the
additional <code>Type</code> node that defines the type resulting from the computation.</p>
</div>
<div class="paragraph">
<p>However, since a function represents a computation (that is, calculation of an
output value from input values) rather than having behavior over time, the
<code>Body</code> part has additional restrictions.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A computation is performed instantly, no time passes. This means that you
cannot delay or wait in a function.</p>
</li>
<li>
<p>A computation outputs a result. You cannot have a function that has no
result.</p>
</li>
<li>
<p>A computation is repeatable. That means if you run the
same computation again with the same input values, you get the same result
<em>every time</em>. Also in the environment of the function, there should be no
changes. This idea is known as <em>mathematical functions</em>.</p>
<div class="paragraph">
<p>A consequence of having mathematical functions is that you cannot interact
with 'outside'. No querying of the current time, no communication, no select
statement, and no use of distributions.</p>
</div>
<div class="paragraph">
<p>Technically, this would also imply no input/output, but for practical
reasons this restriction has been lifted. However, as a general rule, avoid
using it.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-xper-definitions">Experiment definitions</h4>
<div class="paragraph">
<p>An experiment can execute one or more model simulations, collect their exit
values, and combine them into a experiment result.
Its syntax is shown below</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/xperdef.png" alt="xperdef">
</div>
</div>
<div class="paragraph">
<p>An experiment definition has some function-like restrictions, like not being
able to use sub-process statements, no communication, and no use of time. On
the other hand, it does not return a value, and it can start model
simulations that have a non-void exit type (<a href="#ref-void-type">Void type</a> discusses the
void type).</p>
</div>
<div class="paragraph">
<p>The definition is very similar to other definitions. It starts with an
<code>xper</code> keyword, followed by the name of the definition. The name can be used
to start an experiment with the simulator (see <a href="#tool-chapter-software-operation">Software operation</a>
for details on starting the simulator).
If formal parameters are specified with the experiment definition (see
<a href="#ref-formal-parameters">Formal parameters</a> below), the experiment can be parameterized with
values.
Like models, an experiment can only take data values which you can write down
as literal value. For example, giving it a channel or a process instance is
not allowed.</p>
</div>
<div class="paragraph">
<p>The body of an experiment is just like the body of a
<a href="#ref-function-definitions">Function definitions</a> (no interaction with processes or time).
Unlike a function, an experiment never returns a value with the
<a href="#ref-return-statement">Return statement</a>.</p>
</div>
<div class="paragraph">
<p>The primary goal of an <code>xper</code> is to allow you to run one or more model
simulations that give an exit value. For this purpose, you can 'call' a model
like a function, for example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">xper X():
    real total;
    int n;

    while n &lt; 10:
        total = total + M();
        n = n + 1
    end

    writeln(&quot;Average is %.2f&quot;, total / 10);
end

model real M():
    dist real d = exponential(7.5);
    exit sample d;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The model above is very short to keep the example compact. In practice it will
be larger, start several concurrent processes, and do a lengthy simulation
before it decides what the answer should be.
The experiment <code>X</code> makes ten calls to the model. Each call causes the
model to be run, until the model or one of its processes executes the <code>exit</code>
statement. At that point, the model and all its processes are killed, and the
value supplied with the exit statement becomes the return value of the model
call, adding it to <code>total</code>.
After the ten model simulations, the experiment outputs the average value of
all model simulations.</p>
</div>
<div class="paragraph">
<p>Note that the called model (or one of its started processes) <strong>must</strong> end with
the <code>exit</code> statement, it is an error when the model ends by finishing its
last model statement.</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-formal-parameters">Formal parameters</h4>
<div class="paragraph">
<p>Definitions above often take values as parameter to allow customizing their
behavior during execution.
The definition of those parameters are called <em>formal parameters</em>,
The syntax of formal parameters is shown below</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/formalparms.png" alt="formalparms">
</div>
</div>
<div class="paragraph">
<p>As you can see, they are just variable declarations (explained in the
<a href="#ref-variable-declarations">Local variables</a> section), except you may not add an initial
value, since their values are obtained during use of the definition.</p>
</div>
<div class="paragraph">
<p>To a definition, the formal parameters act like variables. You may
use them just like other variables.</p>
</div>
<div class="paragraph">
<p>An example, where <code>int x, y; string rel</code> are the formal parameters of
process definition <code>P</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc P(int x, y; string rel):
    writeln(&quot;%d %s %d&quot;, x, rel, x-y)
end

...

run P(2, -1, &quot;is less than&quot;);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The formal parameters introduce additional variables in the process, that can
be just just like any other variable. Here, they are just printed to the
screen.
Elsewhere in the program, the definition gets used (instantiated), and a value
is supplied for the additional variables. Such values are called
<em>actual parameters</em>.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="ref-chapter-statements">Statements</h3>
<div class="paragraph">
<p>



Statements express how a process or function in a system works. They define
what is done and in which order. Many statements use data for their decisions,
which is stored in local variables. The combined local variables and
statements are called 'body' with the following syntax.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/body.png" alt="body">
</div>
</div>
<div class="paragraph">
<p>Data values available to the process are the global constants (see
<a href="#ref-constant-definitions">Constant definitions</a>) and enumeration values (see
<a href="#ref-enum-definitions">Enumeration definitions</a>). The formal parameters of the surrounding
process definition (explained in <a href="#ref-process-definitions">Process definitions</a>) or the
surrounding function definition (explained in <a href="#ref-function-definitions">Function definitions</a>)
are added as well.</p>
</div>
<div class="paragraph">
<p>Data storage that can be modified by the process are the local variables,
defined by the <code>VarDefinitions</code> block in the <code>Body</code> diagram
above (variable definitions are explained below in
<a href="#ref-variable-declarations">Local variables</a>).</p>
</div>
<div class="paragraph">
<p>The data values and the modifiable data storage is used by the statements of
the <code>Body</code> in the path after <code>1</code>. For ease of reference they are grouped
by kind of statement as shown in the <code>Statement</code> diagram below.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/statement.png" alt="statement">
</div>
</div>
<div class="ulist">
<ul>
<li>
<p>The <code>AssignmentStatement</code> is used to assign new values to the local
variables (and explained further in <a href="#ref-assignment-statement">Assignment statement</a>).</p>
</li>
<li>
<p>The <code>IterativeStatement</code> allows repeated execution of the same statements
by means of the <code>for</code> and <code>while</code> statements (further explained in
<a href="#ref-iterative-statements">Iterative statements</a>).</p>
</li>
<li>
<p>The <code>ChoiceStatement</code> allows selection on which statement to perform next
by means of the <code>if</code> statement (explained in <a href="#ref-choice-statement">Choice statement</a>).</p>
</li>
<li>
<p>The <code>run</code> and <code>start</code> statements of the <code>SubProcessStatement</code> group
(explained in <a href="#ref-sub-process-statements">Sub-process statements</a>) start new processes.</p>
</li>
<li>
<p>Communication with other processes using channels is done with send,
receive, and <code>select</code> statements in <code>CommunicationStatement</code> (explained
in <a href="#ref-communication-statements">Communication statements</a>)</p>
</li>
<li>
<p>Finally, the <code>OtherStatements</code> group contains several different
statements (explained further in <a href="#ref-other-statements">Other statements</a>).
The more commonly used statements in that group are the <code>delay</code> statement,
the <code>write</code> statement, and the <code>return</code> statement.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The syntax diagram of <code>Body</code> states that statements are separated from each
other with a semi colon (<code>;</code>). The compiler allows more freedom. Semicolons
may be omitted before and after a <code>end</code> keyword, and a semi colon may be
added after the last statement.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
<div class="sect3">
<h4 id="ref-variable-declarations">Local variables</h4>
<div class="paragraph">
<p>Local variables are introduced in a process or function using the following
syntax</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/vardef.png" alt="vardef">
</div>
</div>
<div class="paragraph">
<p>Variable definitions start with a <code>Type</code> node (its syntax if explained in
<a href="#ref-chapter-types">Types</a>), followed by a sequence of variable names where
each variable may be initialized with a value by means of the <code>= Expression</code>
path. If no value is assigned, the variable gets the default value of the
type. Use a semi colon to terminate the sequence of new variables.</p>
</div>
<div class="paragraph">
<p>Next, another set of variables may be defined by going back to the start of
the diagram, and giving another <code>Type</code> node, or the diagram can be ended,
and the statements of the process or function can be given.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-assignment-statement">Assignment statement</h4>
<div class="paragraph">
<p>An assignment statement assigns one or more values to the local variables.
Its syntax is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/assignment_statement.png" alt="assignment statement">
</div>
</div>
<div class="paragraph">
<p>The assignment statement computes the value of every <code>Expression</code> at the
right. If there is one expression, its value is also the value to assign. If
there are more expressions, a tuple value is constructed, combining all values
into one tuple (see <a href="#ref-tuple-expression">Tuple expression</a> for a discussion of tuple
values).</p>
</div>
<div class="paragraph">
<p>
At the left, a number of <code>Addressable</code> blocks define where the computed
value is assigned to.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/addressable.png" alt="addressable">
</div>
</div>
<div class="paragraph">
<p>An <code>Addressable</code> is a variable. If the variable has a tuple type (see
<a href="#ref-tuple-type">Tuple type</a>) a field of the tuple may be assigned only using Path 1.
Similarly, if the variable is a list (see <a href="#ref-list-type">List type</a>) or a
dictionary (see <a href="#ref-dictionary-type">Dictionary type</a>) assignment is done to one
element by using Path 2. The <code>Expression</code> here is evaluated before <em>any</em>
assignment by this statement is performed.
Since selected elements may also have a type that allows selection, element
selection can be repeated.</p>
</div>
<div class="paragraph">
<p>After processing the element selections at the left, it is known where
values are assigned to. If there is exactly one addressable at the left, its
type must match with the type of the value at the right (which may be a
constructed tuple value as explained above). The value gets copied into the
variable (or in its element if one is selected).
If there are several addressable values at the left, the number of values must
be equal to the length of the tuple from the expression(s) at the right, and
each field of the right tuple must pair-wise match with the type of the
addressed element at the left. In the latter case, all assignments are done at
the same moment.</p>
</div>
<div class="paragraph">
<p>For a few examples, a number of variable declarations are needed:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">int x, y;
real r;
list(10) int xs;
tuple(real v; int w) t;
func tuple(real v; int w) (int) f;

...  # Initialization of the variables omitted</code></pre>
</div>
</div>
<div class="paragraph">
<p>The variable declarations introduce integer variables <code>x</code> and <code>y</code>, a real
number variable <code>r</code>, a list of 10 integers <code>xs</code>, a tuple <code>t</code> with two
fields, and a function variable <code>f</code>.</p>
</div>
<div class="paragraph">
<p>For reasons of clarity, initialization of the variables has been omitted.
Also, expressions at the right are simple values. However, you may use all
allowed expression operations explained in the next chapter
(<a href="#ref-chapter-expressions">Expressions</a>) to obtain a value to assign.
The first assignments show assignment of values to variables where there is
one explicit value for every assigned variable:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">x = 3;
t = f(y);
x, y = 4, 5;
xs[0], t.v = x+x, r;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first assignment statement assigns 3 to <code>x</code>. The second assignment
assigns the return value of the function call <code>f(y)</code> to tuple <code>t</code>. The
third assignment assigns 4 to <code>x</code> and 5 to <code>y</code> at the same time. The
fourth assignment assigns the value of <code>x+x</code> to the first element of the
list <code>xs</code>, and the value of <code>r</code> to the <code>v</code> field of tuple <code>t</code>.</p>
</div>
<div class="paragraph">
<p>The next assignments show combining or splitting of tuples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">t = r, y;
r, x = t;
r, x = f(y);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first assignment assigns a new value to every field of tuple <code>t</code>
(<code>t.v</code> gets the value of <code>r</code>, while <code>t.w</code> gets the value of <code>y</code>). This
is called <em>packing</em>, it 'packs' the sequence of values into one tuple. The
opposite operation is demonstrated in the second assignment. The value of each
field of <code>t</code> is assigned to a separate variable. The types of the variables
at the left have to  pair-wise match with the field types of the tuple at the
right. This assignment is called <em>unpacking</em>, it 'unpacks' a tuple value into
its separate elements.
The third assignment does the same as the second assignment, the difference is
that the value at the right is obtained from a function call. The origin of
the value is however irrelevant to the assignment statement.</p>
</div>
<div class="paragraph">
<p>To demonstrate the order of evaluation, the following assignment, under the
assumption that variable <code>x</code> holds value 3:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">x, xs[x-1] = 7, x+2;</code></pre>
</div>
</div>
<div class="paragraph">
<p>The assignment first computes all values at the right. Since there are more
than one expression, they are combined into a tuple:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">x, xs[x-1] = (7, 5);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Next, the addressable values are calculated:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">x, xs[2] = (7, 5);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Finally the values are assigned, <code>x</code> gets a new value 7, while the third
element of <code>xs</code> gets the value of expression <code>x+2</code>.</p>
</div>
<div class="paragraph">
<p>The expressions at the right as well as the expressions to select elements in
lists and dictionaries are always evaluated using values from before the
assignment.</p>
</div>
<div class="paragraph">
<p>It is forbidden to assign the same variable or selected element more than
once:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">x, x = 3, 3         # Error, assigned 'x' twice.
xs[0], xs[1] = 0, 1 # Allowed, different selected elements.
xs[0], xs[x] = 0, 1 # Allowed if x != 0 .</code></pre>
</div>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-iterative-statements">Iterative statements</h4>
<div class="paragraph">
<p>The iterative statements are</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/iterative_statement.png" alt="iterative statement">
</div>
</div>
<div class="paragraph">
<p>The Chi language has two statements for repeatedly executing a body (a
sequence of statements), a <code>while</code> statement and a <code>for</code> statement.
The former is the generic iterative statement, the latter simplifies the
common case of iterating over a collection of values.</p>
</div>
<div class="paragraph">
<p>The <code>break</code> and <code>continue</code> statements change the flow of control in the
iterative statements.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="sect4">
<h5 id="ref-while-loop-statement">While loop statement</h5>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/while_statement.png" alt="while statement">
</div>
</div>
<div class="paragraph">
<p>A while loop starts with the keyword <code>while</code> with a boolean condition.
Between the colon and the <code>end</code> keyword, the body of statements is given,
which is executed repeatedly.</p>
</div>
<div class="paragraph">
<p>Executing an iterative <code>while</code> statement starts with evaluating the boolean
condition. If it does not hold, the <code>while</code> statement ends (and execution
continues with the statement following the while statement). If the condition
holds, the statements in the body are executed from start to end (unless a
<code>break</code> or <code>continue</code> statement is executed, as explained below).
After the last statement has been executed, the <code>while</code> statement starts
again from the beginning, by evaluating the boolean condition again.</p>
</div>
<div class="paragraph">
<p>As an example, consider the following code:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">int s, i;

while i &lt; 10:
    s = s + i
    i = i + 1
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>At first, the <code>i &lt; 10</code> condition holds, and the body of the <code>while</code>
statement (two assignment statements) is executed.
After the body has finished, <code>i</code> has been incremented, but is still less
than <code>10</code>. The condition again holds, and the body is again executed, etc.
This process continues, until the final statement of the body increments <code>i</code>
to <code>10</code>. The condition does not hold, and execution of the <code>while</code>
statement ends.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="ref-for-loop-statement">For loop statement</h5>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/for_statement.png" alt="for statement">
</div>
</div>
<div class="paragraph">
<p>A common case for iterating is to execute some statements for every value in a
collection, for example a list:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">list int xs;
int x;
int i;

while i &lt; size(xs):
    x = xs[i]
    ...
    i = i + 1
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>where the <code>...</code> line represents the statements that should be executed for
each value <code>x</code> of the list. This is a very common case. Chi has a special
statement for it, the <code>for</code> statement. It looks like:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">list int xs;

for x in xs:
    ...
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This code performs the same operation, the statements represented with <code>...</code>
are executed for each value <code>x</code> from list <code>xs</code>, but it is shorter and
easier to write.
The advantages are mainly a reduction in the amount of code that must be
written.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>No need to create and update the temporary index variable <code>i</code>.</p>
</li>
<li>
<p>Variable <code>x</code> is declared implicitly, no need to write a full variable
declaration for it.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The behavior is slightly different in some circumstances.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>There is no index variable <code>i</code> that can be accessed afterwards.</p>
</li>
<li>
<p>When the <code>...</code> statements modify the source variable (<code>xs</code> in the
example), the <code>while</code> statement above uses the changed value. The <code>for</code>
statement continues to use the original value of the source variable.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Continuing use of the original source value can be an advantage or a
disadvantage, depending on the case. Using the new value gives more
flexibility, keeping the old value makes the <code>for</code> statement more
predictable, for example indices in the source variable stay valid.</p>
</div>
<div class="paragraph">
<p>Besides iterating over a list with <code>for</code>, you can also iterate over element
values of a set, or over key-value tuples of a dictionary, for example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">dict(int:int) d = {1:10, 2:20};

for k, v in d:
    writeln(&quot;%s: %s&quot;, k, v);
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>When iterating over a set or a dictionary, the order of the elements is
undefined. In the above example, the first pair is either <code>(1, 10)</code> or
<code>(2, 20)</code>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="ref-break-statement">Break statement</h5>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/break_statement.png" alt="break statement">
</div>
</div>
<div class="paragraph">
<p>The <code>break</code> statement may only be used inside the body of a loop statement.
When executed, the inner-most loop statement ends immediately, and execution
continues with the first statement after the inner-most loop statement.
An example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi"># Get a slice of the xs list, up-to the position of value x in the list
func get_until(list int xs, int x):
    int index;

    while index &lt; size(xs):
        if xs[index] == x:
            break
        end;
        index = index + 1
    end
    return xs[:index]
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>In the example, elements of the list <code>xs</code> are inspected until an element
with a value equal to <code>x</code> is found. At that point, the loop ends with the
<code>break</code> statement, and the function returns a slice of the list.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="ref-continue-statement">Continue statement</h5>
<div class="paragraph">
<p>Another common case when executing the body of an inner-most loop is that the
remaining statements of the body should be skipped this time. It can be
expressed with an <code>if</code> statement, but a <code>continue</code> statement is often
easier.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/continue_statement.png" alt="continue statement">
</div>
</div>
<div class="paragraph">
<p>The syntax of the continue statement is just <code>continue</code>.
An example to demonstrate its operation:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">int s;

for x in xs:
    if x mod 5 == 0:
        continue
    end
    s = s + x
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>for</code> statement iterates over every value in list <code>xs</code>. When the value
is a multiple of 5 (expressed by the condition <code>x mod 5 == 0</code>), the
<code>continue</code> is executed, which skips the remaining statements of the body of
the <code>for</code> statement, namely the <code>s = s + x</code> assignment. The result is that
after executing the <code>for</code> statement, variable <code>s</code> contains the sum of all
values of the list that are not a multiple of 5.</p>
</div>
<div class="paragraph">
<p>


</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="ref-choice-statement">Choice statement</h4>
<div class="paragraph">
<p>The choice statement, also known as 'if statement', selects one alternative
from a list based on the current value of a boolean expression. The
alternatives are tried in turn, until a boolean expression one an alternative
yields true. The statements of that alternative are executed, and the choice
statement ends. The choice statement also ends when all boolean expressions
yield false. The boolean expression of the <code>else</code> alternative always holds.</p>
</div>
<div class="paragraph">
<p>The syntax of the choice statement is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/choice_statement.png" alt="choice statement">
</div>
</div>
<div class="paragraph">
<p>Processing starts with evaluating the <code>BooleanExpression</code> behind the <code>if</code>.
If it evaluates to <code>true</code>, the statements behind it are executed, and the
choice statement ends.</p>
</div>
<div class="paragraph">
<p>If the boolean expression behind the <code>if</code> does not hold, the sequence
<code>elif</code> alternatives is tried. Starting from the first one, each boolean
expression is evaluated. If it holds, the statements of that alternative are
performed, and the choice statement ends. If the boolean expression does not
hold, the next <code>elif</code> alternative is tried.</p>
</div>
<div class="paragraph">
<p>When there are no <code>elif</code> alternatives or when all boolean expressions of
the <code>elif</code> alternatives do not hold, and there is an <code>else</code> alternative,
the statements behind the <code>else</code> are executed and the choice statement ends.
If there is no <code>else</code> alternative, the choice statement ends without
choosing any alternative.</p>
</div>
<div class="paragraph">
<p>An example with just one alternative:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">if x == 1:
    x = 2
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>which tests for <code>x == 1</code>. If it holds, <code>x = 2</code> is performed, else no
alternative is chosen.</p>
</div>
<div class="paragraph">
<p>An longer example with several alternatives:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">if x == 1:
     y = 5
elif x == 2:
    y = 6; x = 6
else:
    y = 7
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This choice statement first tests whether <code>x</code> is equal to <code>1</code>. If it is,
the <code>y = 5</code> statement is executed, and the choice statement finishes. If the
first test fails, the test <code>x == 2</code> is computed. If it holds, the statements
<code>y = 6; x = 6</code> are performed, and the choice statement ends. If the second
test also fails, the <code>y = 7</code> statement is performed.</p>
</div>
<div class="paragraph">
<p>The essential points of this statement are</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The choice is computed now, you cannot wait for a condition to become true.</p>
</li>
<li>
<p>Each alternative is tried from the top down, until the first expression
that yields true.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The second point also implies that for an alternative to be chosen, the
boolean expressions of all previous alternatives have to yield false.</p>
</div>
<div class="paragraph">
<p>In the above example, while executing the <code>y = 7</code> alternative, you
know that <code>x</code> is neither <code>1</code> nor <code>2</code>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-sub-process-statements">Sub-process statements</h4>
<div class="paragraph">
<p>The sub-process statements deal with creating and managing of new processes.
The statement may only be used in <a href="#ref-process-definitions">Process definitions</a> and
<a href="#ref-model-definitions">Model definitions</a>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/subprocess_statement.png" alt="subprocess statement">
</div>
</div>
<div class="paragraph">
<p>The <code>RunStartStatement</code> block creates new processes (see
<a href="#ref-run-and-start-statements">Run and start statements</a> for details), while the <code>FinishStatement</code>
waits for a process to end (further explanation at <a href="#ref-finish-statement">Finish statement</a>).</p>
</div>
<div class="paragraph">
<p>


</p>
</div>
<div class="sect4">
<h5 id="ref-run-and-start-statements">Run and start statements</h5>
<div class="paragraph">
<p>The <code>run</code> and <code>start</code> commands take a sequence of process instance as
their argument.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/run_start.png" alt="run start">
</div>
</div>
<div class="paragraph">
<p>Both statements start all instances listed in the sequence. The <code>start</code>
statement ends directly after starting the processes, while the <code>run</code>
statement waits until all the started instances have ended.
Using <code>run</code> is generally recommended for creating new processes.</p>
</div>
<div class="paragraph">
<p>

A process instance has the following syntax.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/process_instance.png" alt="process instance">
</div>
</div>
<div class="paragraph">
<p>The elementary process instance is created using Path 1. It consists of a
process name (which must be one of the names of the
<a href="#ref-process-definitions">Process definitions</a>), followed by a sequence of actual parameters
for the process between parentheses. The number of actual parameters and their
types must match pair-wise with the number and type of the formal parameters
of the referenced process definition.
Channel directions of the formal parameters must be a sub-set of the channel
directions of the actual parameters.</p>
</div>
<div class="paragraph">
<p>The optional assignment of the process to a process variable (which must be of
type <code>inst</code>, see <a href="#ref-inst-type">Instance type</a>) allows for checking whether the
started process has ended, or for waiting on that condition in a <code>select</code>
statement (explained in <a href="#ref-select-statement">Select statement</a>), or with a <code>finish</code>
statement (explained in <a href="#ref-finish-statement">Finish statement</a>).</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">chan c;
inst p, q;

run P(18, c), Q(19, c);
start p = P(18, c), q = Q(19, c);</code></pre>
</div>
</div>
<div class="paragraph">
<p>First two processes are completely run, namely the instances <code>P(18, c)</code>, and
<code>Q(19, c)</code>. When both have ended, the <code>start</code> statement is executed, which
starts the same processes, and assigned the <code>P</code> process instance to instance
variable <code>p</code> and the <code>Q</code> process instance to variable <code>q</code>. After
starting the processes, the <code>start</code> ends. Unless one of started processes
has already ended, in the statement following the <code>start</code>, three processes
are running, namely the process that executed the start statement, and the two
started process instances referenced by variables <code>p</code> and <code>q</code>. (There may
be more processes of course, created either before the above statements were
executed, or the <code>P</code> or <code>Q</code> process may have created more processes.)</p>
</div>
<div class="paragraph">
<p>Path 2 of the <code>ProcessInstance</code> diagram is used to construct many new
processes by means of an <code>unwind</code> loop.
Each value in the <code>Expression</code> gets assigned to the iterator variable
sequence of <code>VariableName</code> blocks (and this may be done several times as the
syntax supports several <code>Expression</code> loops). For each combination of
assignments, the process instances behind the colon are created. The <code>end</code>
keyword denotes the end of the <code>unwind</code>.</p>
</div>
<div class="paragraph">
<p>Typical use of <code>unwind</code> is to start many similar processes, for example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">list int xs = [1, 2]

run
    unwind i in range(5),
           j in range(3),
           x in xs: P(i, j, x)
    end;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This <code>run</code> statement runs 5*3*2 processes: <code>P(0, 0, 1)</code>,
<code>P(0, 0, 2)</code>, <code>P(0, 1, 1)</code>, &#8230;&#8203;, <code>P(0, 2, 2)</code>, <code>P(1, 0, 1)</code>, &#8230;&#8203;,
<code>P(4, 2, 2)</code>.</p>
</div>
<div class="paragraph">
<p>Both the <code>run</code> and the <code>start</code> statements can always instantiate new
processes that have no exit type specified.
(see <a href="#ref-process-definitions">Process definitions</a> for details about exit types in process
definitions). If the definition containing the sub-process statement has an
exit type, the statements can also instantiate processes with the same exit
type.</p>
</div>
<div class="paragraph">
<p>This requirement ensures that all exit statements in a model simulation give
exit values of the same type.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="ref-finish-statement">Finish statement</h5>
<div class="paragraph">
<p>The <code>finish</code> statement allows waiting for the end of a process instance.
The statement may only be used in <a href="#ref-process-definitions">Process definitions</a> and
<a href="#ref-model-definitions">Model definitions</a>.
Its syntax is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/finish_statement.png" alt="finish statement">
</div>
</div>
<div class="paragraph">
<p>Each process variable must be of type <code>inst</code> (see <a href="#ref-inst-type">Instance type</a> for
details). The statement ends when all referenced process instances have ended.
For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">chan bool c;
inst p, q;

start p = P(18, c), q = Q(19, c);
finish p, q;</code></pre>
</div>
</div>
<div class="paragraph">
<p>During the <code>start</code> statement (see <a href="#ref-run-and-start-statements">Run and start statements</a>), instance
variables <code>p</code> and <code>q</code> get a process instance assigned (this may also
happen in different <code>start</code> statements).
The <code>finish</code> statement waits until both process instances have ended.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="ref-communication-statements">Communication statements</h4>
<div class="paragraph">
<p>Communication with another process is the only means to forward information
from one process to another processes, making it the primary means to create
co-operating processes in the modeled system.
The statement may only be used in <a href="#ref-process-definitions">Process definitions</a> and
<a href="#ref-model-definitions">Model definitions</a>.</p>
</div>
<div class="paragraph">
<p>All communication is point-to-point (from one sender to one receiver) and
synchronous (send and receive occur together). A communication often exchanges
a message (a value), but communication without exchange of data is also
possible (like waving 'hi' to someone else, the information being sent is 'I
am here', but that information is already implied by the communication itself).
The latter form of communication is called <em>synchronization</em>.</p>
</div>
<div class="paragraph">
<p>Send and receive does not specify the remote process directly, instead a
channel is used (see <a href="#ref-channel-type">Channel type</a> and <a href="#ref-channel-expression">Channel expressions</a>
sections for more informations about channels and how to create them).
Using a channel increases flexibility, the same channel can be used by several
processes (allowing communication with one of them). Channels can also be
created and exchanged during execution, for even more flexibility.</p>
</div>
<div class="paragraph">
<p>Setting up a communication channel between two processes is often done in the
following way:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">chan void sync;   # Synchronization channel
chan int  dch;    # Channel with integer number messages

run P(sync, dch), Q(sync, dch);</code></pre>
</div>
</div>
<div class="paragraph">
<p>In a parent process, two channels are created, a synchronization channel
<code>sync</code>, and a communication channel with data called <code>dch</code>. The channel
values are given to processes <code>P</code> and <code>Q</code> through their formal parameters.</p>
</div>
<div class="paragraph">
<p>The communication statements are</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/communication_statement.png" alt="communication statement">
</div>
</div>
<div class="paragraph">
<p>The elementary communication statements for sending and receiving at a single
channel are the <a href="#ref-send-statement">Send statement</a> and the <a href="#ref-receive-statement">Receive statement</a>.
The <a href="#ref-select-statement">Select statement</a> is used for monitoring several channels and
conditions at the same time, until at least one of them becomes available.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="sect4">
<h5 id="ref-send-statement">Send statement</h5>
<div class="paragraph">
<p>The send statement send signals or data away through a channel.
The statement may only be used in <a href="#ref-process-definitions">Process definitions</a> and
<a href="#ref-model-definitions">Model definitions</a>.
It has the following syntax:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/send_statement.png" alt="send statement">
</div>
</div>
<div class="paragraph">
<p>The statement takes a channel value (derived from
<code>ChannelExpression</code>), and waits until another process can receive on the
same channel. When that happens, and the channel is a synchronization channel,
a signal 'Communication has occurred' is being sent, if the channel also
carries data, the <code>Expression</code> value is computed and sent to the other
process.
For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc P(chan void a, chan! int b):
    a!;
    b!21;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Process <code>P</code> takes two parameters, a synchronization channel locally called
<code>a</code> and a outgoing channel called <code>b</code> carrying integer values.
In the process body, it first synchronizes over the channel stored in <code>a</code>,
and then sends the value <code>21</code> of the channel stored in <code>b</code>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="ref-receive-statement">Receive statement</h5>
<div class="paragraph">
<p>The receive statement receives signals or data from a channel.
The statement may only be used in <a href="#ref-process-definitions">Process definitions</a> and
<a href="#ref-model-definitions">Model definitions</a>.
It has the following syntax:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/receive_statement.png" alt="receive statement">
</div>
</div>
<div class="paragraph">
<p>The statement takes a channel value (derived from the <code>ChannelExpression</code>),
and waits until another process can send on the same channel. For
synchronization channels, it receives just a signal that the communication has
occurred, for channels carrying data, the data value is received and stored in
the variable indicated by <code>Addressable</code>.
For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc Q(chan void a, chan int b):
    int x;

    a?;
    b?x;
    writeln(&quot;%s&quot;, x);
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Process <code>Q</code> takes a synchronization channel called <code>a</code> and a data channel
for integer values called <code>b</code> as parameters.
The process first waits for a synchronization over channel <code>a</code>, and then
waits for receiving an integer value over channel <code>b</code> which is stored in
local variable <code>x</code>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="ref-select-statement">Select statement</h5>
<div class="paragraph">
<p>The <a href="#ref-send-statement">Send statement</a> and the <a href="#ref-receive-statement">Receive statement</a> wait for
communication over a single channel. In some cases, it is unknown which
channel will be ready first. Additionally, there may be time-dependent
internal activities that must be monitored as well.
The select statement is the general purpose solution for such cases.
The statement may only be used in <a href="#ref-process-definitions">Process definitions</a> and
<a href="#ref-model-definitions">Model definitions</a>.</p>
</div>
<div class="paragraph">
<p>Its syntax is:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/select_statement.png" alt="select statement">
</div>
</div>
<div class="paragraph">
<p>The statement has one or more <code>SelectCondition</code> alternatives that are all
monitored. The first alternative is prefixed with <code>select</code> to denote it is a
the start of a select statement, the other alternatives each start with
<code>alt</code> (which is an abbreviation of 'alternative').</p>
</div>
<div class="paragraph">
<p>The statement monitors all conditions simultaneously, waiting for at least one
to become possible. At that moment, one of the conditions is selected to be
executed, and the select statement ends.</p>
</div>
<div class="paragraph">
<p>The syntax of a <code>SelectCondition</code> is:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/select_condition.png" alt="select condition">
</div>
</div>
<div class="paragraph">
<p>In its simplest form, a <code>SelectCondition</code> is a <code>SelectAlternative</code> (taking
Path 1). At Path 2, the condition is eventually also an <code>SelectAlternative</code>,
but prefixed with an <code>unwind</code> construct, and with an additional <code>end</code>
keyword at the end to terminate the unwind.</p>
</div>
<div class="paragraph">
<p>The unwind construct allows for a compact notation of a large number of
alternatives that must be monitored. Examples are provided below.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/select_alternative.png" alt="select alternative">
</div>
</div>
<div class="paragraph">
<p>Using Path 1, a <code>SelectAlternative</code> can be a <a href="#ref-send-statement">Send statement</a> or a
<a href="#ref-receive-statement">Receive statement</a>, which may optionally have a
<code>BooleanExpression</code> condition prefix. Path 2 allows for a condition without
a send or receive statement.</p>
</div>
<div class="paragraph">
<p>The alternative checks the condition and monitors the channel. If the
condition holds <em>and</em> the channel has a communication partner, the alternative
can be chosen by the select statement. (Of course, omitting a condition skips
the check, and not specifying a send or receive statement skips monitoring of
the channel.)
When an alternative is chosen by the select statement, the send or receive
statement are performed (if it was present). If additional statements were
given in the alternative using Path 3, they are executed after the
communication has occurred (if a send or receive was present).</p>
</div>
<div class="paragraph">
<p>A few examples to demonstrate use of the select statement:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">timer t = timer(5.2);

select
    a?
alt
    b!7:
        writeln(&quot;7 sent&quot;)
alt
    ready(t):
        writeln(&quot;done&quot;)
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>This select waits until it can receive a signal from channel <code>a</code>, it can
send value <code>7</code> over channel <code>b</code>, or until <code>ready(t)</code> holds (which
happens <code>5.2</code> time units after starting the <code>select</code>, see
<a href="#tut-using-timers">Timers</a> for details). If <code>b!7</code> was selected, the
<code>writeln("7 sent")</code> is executed after the communication over channel <code>b</code>.
If the <code>ready(t)</code> alternative is chosen, the <code>writeln("done")</code> is
executed.</p>
</div>
<div class="paragraph">
<p>A buffer can be specified with:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">list int xs;
int x;

select
    a?x:
        xs = xs + [x]
alt
    not empty(xs), b!xs[0]:
        xs = xs[1:]
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The select either receives a value through channel <code>a</code>, or it sends the
first element of list <code>xs</code> over channel <code>b</code> if the list is not empty (the
condition must hold and the channel must be able to send an item at the same
time to select the second alternative).</p>
</div>
<div class="paragraph">
<p>After communication has been performed, the first alternative appends the
newly received value <code>x</code> to the list (the received value is stored in <code>x</code>
before the assignment is executed). In the second alternative, the assignment
statement drops the first element of the list (which just got sent away over
channel <code>b</code>).</p>
</div>
<div class="paragraph">
<p>The <code>unwind</code> loop 'unwinds' alternatives, for example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">list(5) chan int cs;
int x;

select
    unwind i, c in enumerate(cs):
        c?x:
            writeln(&quot;Received %s from channel number %d&quot;, x, i)
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here <code>cs</code> is a list  of channels, for example <code>list(5) chan int cs</code>. (See
<a href="#ref-list-type">List type</a> for details about lists.) The <code>unwind</code> iterates over
the <code>enumerate(cs)</code> (see <a href="#ref-list-expression">List expressions</a> for details about
<code>enumerate</code>), assigning the index and the channel to local <code>i</code> and <code>c</code>
variables. The <code>SelectAlternative</code> uses the variables to express the actions
to perform (wait for a receive, and output some text saying that a value has
been received).</p>
</div>
<div class="paragraph">
<p>The above is equivalent to (if list <code>cs</code> has length 5):</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">select
    cs[0]?x:
        writeln(&quot;Received %s from channel number %d&quot;, x, 0)
alt
    cs[1]?x:
        writeln(&quot;Received %s from channel number %d&quot;, x, 1)

...

alt
    cs[4]?x:
        writeln(&quot;Received %s from channel number %d&quot;, x, 4)</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>unwind</code> however works for any length of list <code>cs</code>. In addition, the
<code>unwind</code> allows for nested loops to unfold for example
<code>list list bool ds</code>, or to send one of several values over one of several
channels.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="ref-other-statements">Other statements</h4>
<div class="paragraph">
<p>Finally, there are a number of other useful statements.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/other_statements.png" alt="other statements">
</div>
</div>
<div class="paragraph">
<p>The <a href="#ref-delay-statement">Delay statement</a> waits for the given amount of time units,
the <a href="#ref-write-statement">Write statement</a> outputs text to the screen or a file,
the <a href="#ref-close-statement">Close statement</a> closes a file,
the <a href="#ref-return-statement">Return statement</a> returns a value from a function.
the <a href="#ref-exit-statement">Exit statement</a> ends the execution of all processes, and
the <a href="#ref-pass-statement">Pass statement</a> does nothing.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="sect4">
<h5 id="ref-delay-statement">Delay statement</h5>
<div class="paragraph">
<p>The <code>delay</code> statement is useful to wait some time.
The statement may only be used in <a href="#ref-process-definitions">Process definitions</a> and
<a href="#ref-model-definitions">Model definitions</a>.
Its syntax is:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/delay_statement.png" alt="delay statement">
</div>
</div>
<div class="paragraph">
<p>The <code>IntegerExpression</code> or <code>RealExpression</code> is evaluated, and is the
amount of time that the
statement waits. The value of the expression is computed only at the start, it
is not evaluated while waiting. Changes in its value has thus no effect.
A negative value ends the statement immediately, you cannot go back in time.</p>
</div>
<div class="paragraph">
<p>Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">delay 1.5   # Delay for 1.5 time units.</code></pre>
</div>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="ref-write-statement">Write statement</h5>
<div class="paragraph">
<p>The write statement is used to output text to the screen or to a file.
Its syntax is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/write_statement.png" alt="write statement">
</div>
</div>
<div class="paragraph">
<p>The <em>format string</em> at 2 is a literal string value (further explained at
<a href="#ref-string-expression">String expressions</a>) which defines what gets written.
Its text is copied to the output, except for two types of patterns which are
replaced before being copied. Use of the <code>writeln</code> (write line) keyword
causes an additional <code>\n</code> to be written afterwards.</p>
</div>
<div class="paragraph">
<p>The first group of pattern are the back-slash patterns. They all start with
the <code>\</code> character, followed by another character that defines the character
written to the output. The back-slash patterns are listed in the table below.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Pattern</th>
<th class="tableblock halign-left valign-top">Replaced by</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>\n</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The new-line character (U+000A)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>\t</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The tab character (U+0009)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>\"</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The double-quote character (U+0022)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>\\</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The back-slash character (U+005C)</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The second group of patterns are the percent patterns. Each percent pattern
starts with a <code>%</code> character. It is (normally) replaced by the (formatted)
value of a corresponding expression listed after the format string (the first
expression is used as replacement for the first percent pattern, the second
expression for the second pattern, etc). How the value is formatted depends on
the <em>format specifier</em>, the first letter after the percent character. Between
the percent character and the format specifier may be a <em>format definition</em>
giving control on how the value is output.</p>
</div>
<div class="paragraph">
<p>The format definition consists of five parts, each part is optional.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A <code>-</code> character, denoting alignment of the value to the left. Cannot be
combined with a <code>0</code>, and needs a <em>width</em>.</p>
</li>
<li>
<p>A <code>+</code> character, denoting the value with always be printed with a sign,
only for formatting decimal integers, and real numbers.</p>
</li>
<li>
<p>A <code>0</code> character, denoting the value will be prefixed with zeros, only for
integer numbers. Cannot be combined with <code>-</code>, and needs a <em>width</em>.</p>
</li>
<li>
<p>A <em>width</em> as decimal number, denoting the minimal amount of space used for
the value. The value will be padded with space (or zeros if the <code>0</code> part
has been specified).</p>
</li>
<li>
<p>A <code>.</code> and a <em>precision</em> as decimal number, denoting the number of digits
to use for the fraction, only for real numbers.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The format definition is a single letter, the table below lists them and their
function.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Definition</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>b</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Output boolean value.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>d</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Output integer value as decimal number.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>x</code>, <code>X</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Output integer value as hexadecimal number.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>f</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Output real value as number with a fraction.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>e</code>, <code>E</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Output real value in exponential notation.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>g</code>, <code>G</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Output real value either as <code>f</code> or as <code>e</code> (<code>E</code>) depending on the value</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>s</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Output value as a string (works for every printable value)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>%</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Output a <code>%</code> character</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="ref-close-statement">Close statement</h5>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/close_statement.png" alt="close statement">
</div>
</div>
<div class="paragraph">
<p>The <code>close</code> statement takes a value of type <code>file</code> as argument (see
<a href="#ref-file-type">File type</a> for details about the file type). It closes the given
file, which means that the file is no longer available for read or write. In
case data was previously written to the file, the <code>close</code> statement ensures
that the data ends up in the file itself.</p>
</div>
<div class="paragraph">
<p>Note that a close of a file is global in the system, none of the processes can
use the file any longer.</p>
</div>
<div class="paragraph">
<p>In <a href="#tut-reading-from-file">Reading from a file</a> and <a href="#tut-writing-to-file">Writing to a file</a>, use of the
close statement is shown.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
<div class="sect4">
<h5 id="ref-return-statement">Return statement</h5>
<div class="paragraph">
<p>The return statement may only be used in a <a href="#ref-function-definitions">Function definitions</a>.
Its syntax is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/return_statement.png" alt="return statement">
</div>
</div>
<div class="paragraph">
<p>The statement starts with a <code>return</code> keyword, followed by one or more
(comma-separated) expressions that form the value to return to the caller of
the function.</p>
</div>
<div class="paragraph">
<p>The value of the expressions are calculated, and combined to a single return
value. The type of the value must match with the return type of the function.
Execution of the function statements stops (even when inside a loop or in an
alternative of an <code>if</code> statement), and the computed value is returned to the
caller of the function.</p>
</div>
<div class="paragraph">
<p>Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">return 4          # Return integer value 4 to the caller.

return true, 3.7  # Return value of type tuple(bool b; real r).</code></pre>
</div>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
<div class="sect4">
<h5 id="ref-exit-statement">Exit statement</h5>
<div class="paragraph">
<p>The <code>exit</code> statement may only be used in <a href="#ref-process-definitions">Process definitions</a> and
<a href="#ref-model-definitions">Model definitions</a>. Its syntax is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/exit_statement.png" alt="exit statement">
</div>
</div>
<div class="paragraph">
<p>The exit statement allows for immediately stopping the current model
simulation. The statement may be used in <a href="#ref-process-definitions">Process definitions</a> and
<a href="#ref-model-definitions">Model definitions</a>. If arguments are provided, they become the exit
value of the model simulation. Such values can be processed further in an
<a href="#tut-experiment">Simulating several scenarios</a>, see also <a href="#ref-xper-definitions">Experiment definitions</a> on how to run a
model in an experiment.</p>
</div>
<div class="paragraph">
<p>The type of the combined arguments must match with the exit type of the
process or model that uses the statement. If no arguments are given, the exit
type must be a <code>void</code> type (see also <a href="#ref-void-type">Void type</a>).</p>
</div>
<div class="paragraph">
<p>If an experiment is running, execution continues by returning from the model
instantiation call. Otherwise, the simulation as a whole is terminated.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="ref-pass-statement">Pass statement</h5>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/pass_statement.png" alt="pass statement">
</div>
</div>
<div class="paragraph">
<p>The <code>pass</code> statement does nothing. Its purpose is to act as a place holder
for a statement at a point where there is nothing useful to do (for example to
make an empty process), or to
explicitly state nothing is being done at some point:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">if x == 3:
    pass
else:
    x = x + 1
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Here, <code>pass</code> is used to explicitly state that nothing is done when <code>x == 3</code>.
Such cases are often a matter of style, usually it is possible to rewrite
the code and eliminate the <code>pass</code> statement.</p>
</div>
<div class="paragraph">
<p>

</p>
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="ref-chapter-expressions">Expressions</h3>
<div class="paragraph">
<p>Expressions are computations to obtain a value.
The generic syntax of an expression is shown below.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/generic_expression.png" alt="generic expression">
</div>
</div>
<div class="ulist">
<ul>
<li>
<p>As shown in Path 1, a name may be used in an expression. It must refer to a
value that can be used in an expression.
Names are explained further at <a href="#ref-lexical-names">Names</a>.</p>
<div class="paragraph">
<p>The first four entries are quite normal, function names can be used for
variables with a function type (see <a href="#ref-function-type">Function type</a>) and process
names for variables with a process type (see <a href="#ref-process-type">Process type</a>). The
latter two are mainly useful as actual parameters of functions or processes.</p>
</div>
</li>
<li>
<p>Path 2 states that you can write parentheses around an expression. Its main
use is to force a different order of applying the unary and binary operators
(see <a href="#ref-operator-priorities">Operator priorities</a>). Parentheses may also be used to
clarify the meaning of a complicated expression.</p>
</li>
<li>
<p>Path 3 gives access to the other parts of expressions.
<a href="#ref-typed-expression">Typed expressions</a> gives the details about typed expressions.</p>
</li>
</ul>
</div>
<div class="sect3">
<h4 id="ref-typed-expression">Typed expressions</h4>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/typed_expression.png" alt="typed expression">
</div>
</div>
<div class="paragraph">
<p>The number of operators in expressions is quite large. Also, each node has an
associated type, and the allowed operators depend heavily on the types of the
sub-expressions. To make expressions easier to access, they have been split.
If possible the (result) type is leading, but in some cases (like the
<code>ReadExpression</code> for example) this is not feasible.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The expressions with a boolean type are denoted by the <code>BooleanExpression</code>
block and explained further in <a href="#ref-boolean-expression">Boolean expressions</a>.</p>
</li>
<li>
<p>The expressions with an integer type are denoted by the <code>IntegerExpression</code>
block and explained further in <a href="#ref-integer-expression">Integer expressions</a>.</p>
</li>
<li>
<p>The expressions with a real number type are denoted by the <code>RealExpression</code>
block and explained further in <a href="#ref-real-expression">Real number expressions</a>.</p>
</li>
<li>
<p>The expressions with a string type are denoted by the <code>StringExpression</code>
block and explained further in <a href="#ref-string-expression">String expressions</a>.</p>
</li>
<li>
<p>The expressions with a list type are denoted by the <code>ListExpression</code>
block and explained further in <a href="#ref-string-expression">String expressions</a>.</p>
</li>
<li>
<p>The expressions with a set type are denoted by the <code>SetExpression</code>
block and explained further in <a href="#ref-set-expression">Set expressions</a>.</p>
</li>
<li>
<p>The expressions with a dictionary type are denoted by the
<code>DictionaryExpression</code> block and explained further in
<a href="#ref-dictionary-expression">Dictionary expressions</a>.</p>
</li>
<li>
<p>The expressions with a tuple type are denoted by the <code>TupleExpression</code>
block and explained further in <a href="#ref-tuple-expression">Tuple expression</a>.</p>
</li>
<li>
<p>The expressions with a file handle type are denoted by the
<code>FileExpression</code> block and explained further in
<a href="#ref-file-expression">File handle expressions</a>.</p>
</li>
<li>
<p>The function to read values from an external source is shown in the
<code>ReadExpression</code> block, and further discussed in
<a href="#ref-read-expression">Read expression</a>.</p>
</li>
<li>
<p>The expressions with a timer type are denoted by the <code>TimerExpression</code>
block and explained further in <a href="#ref-timer-expression">Timer expressions</a>.</p>
</li>
<li>
<p>The expressions with a channel type are denoted by the <code>ChannelExpression</code>
block and explained further in <a href="#ref-channel-expression">Channel expressions</a>.</p>
</li>
<li>
<p>The expressions with a distribution type are denoted by the
<code>DistributionExpression</code> block and explained further
in <a href="#ref-distribution-expression">Distribution expressions</a>.</p>
</li>
<li>
<p>The expressions with a process type are denoted by the <code>ProcessExpression</code>
block and explained further in <a href="#ref-process-expression">Process expressions</a>.</p>
</li>
<li>
<p>The expressions with an instance type are denoted by the
<code>InstanceExpression</code> block and explained further in
<a href="#ref-instance-expression">Instance expressions</a>.</p>
</li>
<li>
<p>The expressions that convert one type to another are denoted by the
<code>CastExpression</code> block, and explained further in
<a href="#ref-cast-expression">Cast expressions</a>.</p>
</li>
<li>
<p>The expressions that perform a function call are denoted by the
<code>FunctionCallExpression</code> block, and explained further in
<a href="#ref-functioncall-expression">Function call expressions</a>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-enum-value-expression">Enumeration value</h4>
<div class="paragraph">
<p>Enumeration values may be used as literal value in an expression</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/enum_value.png" alt="enum value">
</div>
</div>
<div class="paragraph">
<p>See <a href="#ref-enum-definitions">Enumeration definitions</a> for a discussion about enumeration definitions
and enumeration values.</p>
</div>
<div class="paragraph">
<p>There are two binary operators for enumeration values.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Expression</th>
<th class="tableblock halign-left valign-top">Type <strong>lhs</strong></th>
<th class="tableblock halign-left valign-top">Type <strong>rhs</strong></th>
<th class="tableblock halign-left valign-top">Type result</th>
<th class="tableblock halign-left valign-top">Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>==</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>E</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>E</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for equality</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>!=</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>E</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>E</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for inequality</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Two enumeration values from the same enumeration definition <strong>E</strong> can be
compared against each other for equality (or in-equality).
Example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">enum FlagColours  = {red, white, blue};

...

bool same = (red == white);</code></pre>
</div>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-boolean-expression">Boolean expressions</h4>
<div class="paragraph">
<p>The literal values for the boolean data type are</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/bool_expression.png" alt="bool expression">
</div>
</div>
<div class="paragraph">
<p>The values <code>true</code> and <code>false</code> are also the only available values of the
boolean data type.</p>
</div>
<div class="paragraph">
<p>The <code>not</code> operation is the only boolean unary operator.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Expression</th>
<th class="tableblock halign-left valign-top">Type <strong>op</strong></th>
<th class="tableblock halign-left valign-top">Type result</th>
<th class="tableblock halign-left valign-top">Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>not</code> <strong>op</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>op</strong> value is inverted.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The <code>and</code>, the <code>or</code>, and the equality tests are available for boolean
values.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Expression</th>
<th class="tableblock halign-left valign-top">Type <strong>lhs</strong></th>
<th class="tableblock halign-left valign-top">Type <strong>rhs</strong></th>
<th class="tableblock halign-left valign-top">Type result</th>
<th class="tableblock halign-left valign-top">Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>and</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Both operands hold</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>or</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">At least one operand holds</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>==</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for equality</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>!=</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for inequality</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-integer-expression">Integer expressions</h4>
<div class="paragraph">
<p>The syntax of an integer literal number is (at character level)</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/literal_integer_number.png" alt="literal integer number">
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
This diagram works at lexical level (at the level of single
characters), white space or comments are not allowed between elements in this
diagram.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>An integer number is either <code>0</code>, or a sequence of decimal digits, starting
with a non-zero digit.</p>
</div>
<div class="paragraph">
<p>There are two unary operators on integer numbers.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Expression</th>
<th class="tableblock halign-left valign-top">Type <strong>op</strong></th>
<th class="tableblock halign-left valign-top">Type result</th>
<th class="tableblock halign-left valign-top">Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>-</code> <strong>op</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>op</strong> value is negated.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>+</code> <strong>op</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>op</strong> value is copied.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>With the unary <code>-</code> operation, the sign of the operand gets toggled. The
<code>+</code> unary operation simply copies its argument.</p>
</div>
<div class="paragraph">
<p>There are many binary operations for integer numbers, see the table below.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Expression</th>
<th class="tableblock halign-left valign-top">Type <strong>lhs</strong></th>
<th class="tableblock halign-left valign-top">Type <strong>rhs</strong></th>
<th class="tableblock halign-left valign-top">Type result</th>
<th class="tableblock halign-left valign-top">Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>+</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Integer addition</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>-</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Integer subtraction</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>*</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Integer multiplication</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>/</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Real division</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>div</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Integer divide operation</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>mod</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Modulo operation</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>^</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Power operation</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>&lt;</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for less than</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>&lt;=</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for less or equal</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>==</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for equality</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>!=</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for inequality</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>&gt;=</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for bigger or equal</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>&gt;</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for bigger than</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The divide operator <code>/</code> and the power operator <code>^</code> always gives a real
result, integer division is performed with <code>div</code>. The operation always rounds
down, that is <strong>a</strong> <code>div</code> <strong>b</strong> == <code>floor</code>(<strong>a</strong> <code>/</code> <strong>b</strong>) for all integer
values <strong>a</strong> and <strong>b</strong>. The <code>mod</code> operation returns the remainder from the
<code>div</code>, that is <strong>a</strong> <code>mod</code> <strong>b</strong> == <strong>a</strong> - <strong>b</strong> * (<strong>a</strong> <code>div</code> <strong>b</strong>). The
table below gives examples. For clarity, the sign of the numbers is explicitly
added everywhere.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Example</th>
<th class="tableblock halign-left valign-top">Result</th>
<th class="tableblock halign-left valign-top">Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>+7 div +4</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">+1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>floor(+7/+4) = floor(+1.75) = +1</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>+7 mod +4</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">+3</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>+7 - +4 * (+7 div +4) = +7 - +4 * +1 = +7 - +4 = +3</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>+7 div -4</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>floor(+7/-4) = floor(-1.75) = -2</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>+7 mod -4</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>+7 - -4 * (+7 div -4) = +7 - -4 * -2 = +7 - +8 = -1</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>-7 div +4</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>floor(-7/+4) = floor(-1.75) = -2</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>-7 mod +4</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">+1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>-7 - +4 * (-7 div +4) = -7 - +4 * -2 = -7 - -8 = +1</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>-7 div -4</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">+1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>floor(-7/-4) = floor(+1.75) = +1</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>-7 mod -4</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-3</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>-7 - -4 * (-7 div -4) = -7 - -4 * +1 = -7 - -4 = -3</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The Chi simulator uses 32 bit integer variables, which means that only values
from -2,147,483,647 to 2,147,483,647 (with an inclusive upper bound) can be
used. Using a value outside the valid range will yield invalid results.
Sometimes such values are detected and reported.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
The technical minimum value for integers is -2,147,483,648, but this
number cannot be entered as literal value due to parser limitations.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-real-expression">Real number expressions</h4>
<div class="paragraph">
<p>Real numbers are an important means to express values in the contiguous domain.
The type of a real number expression is a <code>real</code> type, see
<a href="#ref-real-type">Real type</a> for more information about the type.
The syntax of real number values is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/real_number_values.png" alt="real number values">
</div>
</div>
<div class="paragraph">
<p>There are two ways to construct real numbers, by writing a literal real
number, or by using <code>time</code> which returns the current time in the model.</p>
</div>
<div class="paragraph">
<p>The syntax of a literal real number (at character level) is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/lexical_real_number.png" alt="lexical real number">
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
This diagram works at lexical level (at the level of single
characters), white space or comments are not allowed between elements in this
diagram.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>A literal real number starts with one or more digits, and then either a dot or
an exponent. In the former case, an exponent is allowed as well. Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">3.14
0.314e1
314E-2</code></pre>
</div>
</div>
<div class="paragraph">
<p>A real number <strong>always</strong> has either a dot character, or an exponent notation in
the number.</p>
</div>
<div class="paragraph">
<p>Many of the integer operations can also be performed on real numbers. The unary
operators are the same, except for the type of the argument.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Expression</th>
<th class="tableblock halign-left valign-top">Type <strong>op</strong></th>
<th class="tableblock halign-left valign-top">Type result</th>
<th class="tableblock halign-left valign-top">Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>-</code> <strong>op</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>op</strong> value is negated.</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>+</code> <strong>op</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>op</strong> value is copied.</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>With the unary <code>-</code> operation, the sign of the operand gets toggled. The
<code>+</code> unary operation simply copies its argument.</p>
</div>
<div class="paragraph">
<p>The binary operators on real numbers is almost the same as the binary operators
on integer numbers. Only the <code>div</code> and <code>mod</code> operations are not here.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Expression</th>
<th class="tableblock halign-left valign-top">Type <strong>lhs</strong></th>
<th class="tableblock halign-left valign-top">Type <strong>rhs</strong></th>
<th class="tableblock halign-left valign-top">Type result</th>
<th class="tableblock halign-left valign-top">Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>+</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Addition</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>-</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Subtraction</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>*</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Multiplication</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>/</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Real division</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>^</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Power operation</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>&lt;</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for less than</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>&lt;=</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for less or equal</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>==</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for equality</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>!=</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for inequality</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>&gt;=</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for bigger or equal</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>&gt;</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int,real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for bigger than</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>With these operations, one of the operands has to be a real number value,
while the other operand can be either an integer value or a real number value.</p>
</div>
<div class="paragraph">
<p>The standard library functions for real numbers contain a lot of math
functions. They can be found in <a href="#ref-real-stdlib">Real number functions</a>.</p>
</div>
<div class="paragraph">
<p>The Chi simulator uses <a href="http://en.wikipedia.org/wiki/IEEE_floating_point">64-bit IEEE 754 floating point</a>
numbers to represent real
number values. Using a value outside the valid range of this format will yield
invalid results. Sometimes such values are detected and reported.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-string-expression">String expressions</h4>
<div class="paragraph">
<p>Strings are sequences of characters. Their most frequent use is to construct
text to output to the screen. A string literal is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/lexical_string_literal.png" alt="lexical string literal">
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
This diagram works at lexical level (at the level of single
characters), white space or comments are not allowed between elements in this
diagram.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>A string literal starts with a quote character <code>"</code>, and ends with another
quote character. In between, you may have a sequence of characters. Most
characters can be written literally (eg write a <code>a</code> to get an 'a' in the
string). The exceptions are a backslash <code>\</code>, a quote <code>"</code>, a TAB, and a NL
(newline) character. For those characters, write a backslash, followed by
<code>\</code>, <code>"</code>, <code>t</code>, or <code>n</code> respectively. (A TAB character moves the cursor
to the next multiple of 8 positions at a line, a NL moves the cursor to the
start of the next line.)</p>
</div>
<div class="paragraph">
<p>Strings have the following binary expressions.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Expression</th>
<th class="tableblock halign-left valign-top">Type <strong>lhs</strong></th>
<th class="tableblock halign-left valign-top">Type <strong>rhs</strong></th>
<th class="tableblock halign-left valign-top">Type result</th>
<th class="tableblock halign-left valign-top">Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>+</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Concatenation</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>[</code> <strong>rhs</strong> <code>]</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element access</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>[</code> <strong>low</strong> <code>:</code> <strong>high</strong> <code>]</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int, int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Slicing with step <code>1</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>[</code> <strong>low</strong> <code>:</code> <strong>high</strong> <code>:</code> <strong>step</strong> <code>]</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int, int, int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Slicing</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>&lt;</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for less than</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>&lt;=</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for less or equal</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>==</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for equality</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>!=</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for inequality</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>&gt;=</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for bigger or equal</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>&gt;</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for bigger than</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The <strong>concatenation</strong> operator joins two strings (<code>"a" + "bc"</code> gives <code>"abc"</code>).</p>
</div>
<div class="paragraph">
<p>The <strong>element access</strong> and <strong>slicing</strong> operators use numeric indices to denote a
character in the string. First character has index value <code>0</code>, second
character has index <code>1</code>, and so on. Negative indices count from the back of
the string, for example index value <code>-1</code> points to the last character of a
string.
Unlike lists, both the <strong>element access</strong> and the <strong>slicing</strong> operators return a
string. The former constructs a string with only the indicated character,
while the latter constructs a sub-string where the first character is at index
<strong>low</strong>, the second character at index <strong>low</strong> + <strong>step</strong>, and so on, until
index value <strong>high</strong> is reached or crossed. That final character is not included
in the result (that it, the <strong>high</strong> boundary is excluded from the result).
If <strong>low</strong> is omitted, it is 0, if <strong>high</strong> is omitted, it is the length of the
string (<code>size(</code> <strong>lhs</strong> <code>)</code>). If <strong>step</strong> is omitted, it is <code>1</code>.
A few examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">string s = &quot;abcdef&quot;;

s[4]        # results in &quot;e&quot;
s[2:4]      # results in &quot;cd&quot;
s[1::2]     # results in &quot;bdf&quot;
s[-1:0:-2]  # results in &quot;fdb&quot;
s[-1:-7:-1] # results in &quot;fedcba&quot;
s[:4]       # results in &quot;abcd&quot;
s[-1:]      # results in &quot;f&quot; (from the last character to the end)</code></pre>
</div>
</div>
<div class="paragraph">
<p>In the comparison operations, strings use lexicographical order.</p>
</div>
<div class="paragraph">
<p>There are also a few standard library functions on strings, see
<a href="#ref-string-stdlib">String functions</a> for details.</p>
</div>
<div class="paragraph">
<p>Note that length of the string is not the same as the number of characters
needed for writing the string literal:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">size(&quot;a&quot;)  # results in 1, string is 1 character long (namely 'a').
size(&quot;\n&quot;) # results in 1, string contains one NL character.</code></pre>
</div>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-list-expression">List expressions</h4>
<div class="paragraph">
<p>Lists are very versatile data structures, the Chi language has a large number
of operations and functions for them.</p>
</div>
<div class="paragraph">
<p>The most elementary list expression is a literal list. It has the following
syntax.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/literal_list.png" alt="literal list">
</div>
</div>
<div class="paragraph">
<p>The first line shows the syntax of an empty list. The <code>Type</code> block denotes
the element type of the list, for example <code>&lt;int&gt;[]</code> is an empty list of
integer values.</p>
</div>
<div class="paragraph">
<p>The second line shows how to write a non-empty literal list value. It is a
comma-separated sequence of expressions surrounded by square brackets.
The type of all expressions must be the same, and this is also the element type
of the list.</p>
</div>
<div class="paragraph">
<p>Some examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">list int xs;
list int ys = &lt;int&gt;[];
list int zs = [1, 4, 28];</code></pre>
</div>
</div>
<div class="paragraph">
<p>Variable <code>ys</code> is assigned an empty list with integer element type.
Since an empty list is the default value of a variable, <code>xs</code> has the same
value. Variable <code>zs</code> is initialized with a list holding three elements.</p>
</div>
<div class="paragraph">
<p>Two list values are equal when they have the same number of element values,
and each value is pair-wise equal.</p>
</div>
<div class="paragraph">
<p>Lists have no unary operators, the binary operators of lists are</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Expression</th>
<th class="tableblock halign-left valign-top">Type <strong>lhs</strong></th>
<th class="tableblock halign-left valign-top">Type <strong>rhs</strong></th>
<th class="tableblock halign-left valign-top">Type result</th>
<th class="tableblock halign-left valign-top">Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>[</code> <strong>rhs</strong> <code>]</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">list T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element access</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>[</code> <strong>low</strong> <code>:</code> <strong>high</strong> <code>]</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">list T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int, int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">list T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Slicing with step <code>1</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>[</code> <strong>low</strong> <code>:</code> <strong>high</strong> <code>:</code> <strong>step</strong> <code>]</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">list T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int, int, int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">list T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Slicing</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>+</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">list T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">list T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">list T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Concatenation</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>-</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">list T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">list T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">list T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">List subtraction</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>==</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">list T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">list T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for equality</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>!=</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">list T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">list T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for inequality</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>in</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">list T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element test</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The <strong>element access</strong> operator '<strong>lhs</strong> <code>[</code> <strong>rhs</strong> <code>]</code> ' indexes with
zero-based positions, for example <code>xs[0]</code>
retrieves the first element value, <code>xs[1]</code> retrieves the second value, etc.
Negative indices count from the back of the list, <code>xs[-1]</code> retrieves the last
element of the list (that is, <code>xs[size(xs)-1]</code>), <code>xs[-2]</code> gets the second
to last element, ect. It is not allowed to index positions that do not exist.
Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">list int xs = [4, 7, 18];
int x;

x = xs[0];  # assigns 4
x = xs[2];  # assigns 18
x = xs[-1]; # assigns 18
x = xs[-2]; # assigns 7

xs[2]  # ERROR, OUT OF BOUNDS
xs[-4] # ERROR, OUT OF BOUNDS</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <strong>slicing</strong> operator '<strong>lhs</strong> <code>[</code> <strong>low</strong> <code>:</code> <strong>high</strong> <code>]</code> ' extracts
(sub-)lists from the <strong>lhs</strong> source. The <strong>low</strong> and <strong>high</strong> index expressions may
be omitted (and default to <code>0</code> respectively <code>size(</code> <strong>lhs</strong> <code>)</code> in that
case). As with element access, negative indices count from the back of the
list. The result is the list of values starting at index <strong>low</strong>, and up to but
not including the index <strong>high</strong>. If the <strong>low</strong> value is higher or equal to
<strong>high</strong>, the resulting list is empty. For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">list int xs = [4, 7, 18];
list int ys;

ys = xs[0:2];  # assigns [4, 7]
ys = xs[:2];   # == xs[0:2]
ys = xs[1:];   # == xs[1:3], assigns [7, 18]
ys = xs[:];    # == xs[0:3] == xs

ys = xs[1:2];  # assigns [7] (note, it is a list!)
ys = xs[0:0];  # assigns &lt;int&gt;[]
ys = xs[2:1];  # assigns &lt;int&gt;[], lower bound too high
ys = xs[0:-1]; # == xs[0:2]</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <strong>slicing</strong> operator with the <strong>step</strong> expression (that is, the expression with
the form '<strong>lhs</strong> <code>[</code> <strong>low</strong> <code>:</code> <strong>high</strong> <code>:</code> <strong>step</strong> <code>]</code> ') can also
skip elements (with step values other than <code>1</code>) and traverse lists from back
to front (with negative step values). Omitting the <strong>step</strong> expression or using
<code>0</code> as its value, uses the step value <code>1</code>. This extended form does not
count from the back of the list for negative indices, since the <strong>high</strong> value
may need to be negative with a negative step size.</p>
</div>
<div class="paragraph">
<p>The first element of the result is at '<strong>lhs</strong> [<strong>low</strong> ]'. The
second element is at '<strong>lhs</strong> [<strong>low</strong> + <strong>step</strong> ]', the third element at
'<strong>lhs</strong> [<strong>low</strong> + 2 * <strong>step</strong> ]' and so on. For a positive <strong>step</strong> value,
the index of the last element is the highest value less than <strong>high</strong>, for a
negative <strong>step</strong> value, the last element is the smallest index bigger than
<strong>high</strong> (that is, boundary <strong>high</strong> is excluded from the result).
The (sub-)list is empty when the first value ('<strong>lhs</strong> [ <strong>low</strong> ]') already
violates the conditions of the <strong>high</strong> boundary.</p>
</div>
<div class="paragraph">
<p>Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">list int xs = [4, 7, 18];
list int ys;

ys = xs[::2];  # == xs[0:3:2], assigns [4, 18]
ys = xs[::-1]; # == xs[2:-1:-1], assigns [18, 7, 4]</code></pre>
</div>
</div>
<div class="paragraph">
<p>With the latter example, not that the <code>-1</code> end value in <code>xs[2:-1:-1]</code>
really means index <code>-1</code>, it is <strong>not</strong> rewritten!!</p>
</div>
<div class="paragraph">
<p>The <strong>concatenation</strong> operator <code>+</code> 'glues' two lists together by constructing a
new list, copying the value of the <strong>lhs</strong> list, and appending the values of the
<strong>rhs</strong>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">[1, 2] + [3, 4] == [1, 2, 3, 4]
&lt;int&gt;[] + [1]   == [1]
[5] + &lt;int&gt;[]   == [5]</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <strong>subtraction</strong> operator <code>-</code> subtracts two lists. It copies the <strong>lhs</strong> list,
and each element in the <strong>rhs</strong> list is searched in the copy, and the left-most
equal value is deleted. Searched values that do not exist are silently ignored.
The result of the operation has the same type as the <strong>lhs</strong> list.
Some examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">[1, 2, 4, 2] - [4]        # results in [1, 2, 2], 4 is removed.
[1, 2, 4, 2] - [6]        # results in [1, 2, 4 2], 6 does not exist.
[1, 2, 4, 2] - [1, 4]     # results in [2, 2], 1 and 4 are removed.
[1, 2, 4, 2] - [2]        # results in [1, 4, 2], first 2 is removed.
[1, 2, 4, 2] - [2, 2]     # results in [1, 4].
[1, 2, 4, 2] - [2, 2, 2]  # results in [1, 4], no match for the 3rd '2'.</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <strong>element test</strong> operator <code>in</code> tests whether the value <strong>lhs</strong> exists in list
<strong>rhs</strong>. This operation is expensive to compute, if you need this operation
frequently, consider using a set instead.
Some examples of the element test operation:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">1 in [1, 2, 3]          == true
4 in [1, 2, 3]          == false  # there is no 4 in [1, 2, 3]
[1] in [[2], [1]]       == true
[2, 1] in [[1, 2]]      == false  # [2, 1] != [1, 2]
&lt;int&gt;[] in &lt;list int&gt;[] == false  # empty list contains no values.</code></pre>
</div>
</div>
<div class="paragraph">
<p>There are also standard library functions for lists, see
<a href="#ref-list-stdlib">List functions</a> for details.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-set-expression">Set expressions</h4>
<div class="paragraph">
<p>Literal sets are written like</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/literal_set.png" alt="literal set">
</div>
</div>
<div class="paragraph">
<p>The first line shows the syntax of an empty set. The <code>Type</code> block denotes
the element type of the set, for example <code>&lt;int&gt;{}</code> is an empty set of
integer values.</p>
</div>
<div class="paragraph">
<p>The second line shows how to write a non-empty literal set value. It is a
comma-separated sequence of expressions surrounded by curly brackets.
The type of all expressions must be the same, and this is also the element type
of the set. The order of the values in the literal is not relevant, and
duplicate values are silently discarded. For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">set real xr = {1.0, 2.5, -31.28, 1.0}</code></pre>
</div>
</div>
<div class="paragraph">
<p>assigns the set <code>{-31.28, 1.0, 2.5}</code> (any permutation of the values is
allowed). By convention, elements are written in increasing order in this
document.</p>
</div>
<div class="paragraph">
<p>Two set values are equal when they have the same number of element values
contained, and each value of one set is also in the other set. The order of the
elements in a set is not relevant, any permutation is equivalent.</p>
</div>
<div class="paragraph">
<p>Like lists, sets have no unary operators. They do have binary operators though,
which are</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Expression</th>
<th class="tableblock halign-left valign-top">Type <strong>lhs</strong></th>
<th class="tableblock halign-left valign-top">Type <strong>rhs</strong></th>
<th class="tableblock halign-left valign-top">Type result</th>
<th class="tableblock halign-left valign-top">Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>+</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">set T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">set T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">set T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Set union</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>-</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">set T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">set T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">set T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Set difference</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>*</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">set T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">set T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">set T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Set intersection</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>==</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">set T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">set T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for equality</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>!=</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">set T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">set T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for inequality</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>in</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">set T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element test</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>sub</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">set T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">set T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sub-set test</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The <strong>union</strong> of two sets means that the <strong>lhs</strong> elements and the <strong>rhs</strong> elements
are merged into one set (and duplicates are silently discarded).
<strong>Set difference</strong> makes a copy of the <strong>lhs</strong> set, and removes all elements that
are also in the <strong>rhs</strong> operand.
The result of the operation has the same type as the <strong>lhs</strong> set.
<strong>Set intersection</strong> works the other way around, its result is a set with
elements that exist both in <strong>lhs</strong> and in <strong>rhs</strong>. Some examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">set int xr = {1, 3, 7};
set int yr;

yr = xr + {1, 2};  # assigns {1, 2, 3, 7}
yr = xs - {1, 2};  # assigns {3, 7}
yr = xs * {1, 2};  # assigns {1}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <strong>element test</strong> of sets tests whether the value <strong>lhs</strong> is an element in the
set <strong>rhs</strong>. This operation is very fast.
The <strong>sub-set test</strong> does the same for every element value in the <strong>lhs</strong> operand.
It returns <code>true</code> is every value of the left set is also in the right set.
A few examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">1 in {1, 3, 7}  == true
9 in {1, 3, 7}  == false

{1} sub {1, 3, 7}       == true
{9} sub {1, 3, 7}       == false
{1, 9} sub {1, 3, 7}    == false # All elements must be present.
{1, 3, 7} sub {1, 3, 7} == true # All sets are a sub-set of themselves.</code></pre>
</div>
</div>
<div class="paragraph">
<p>There are also standard library functions for sets, see
<a href="#ref-set-stdlib">Set functions</a> for details.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-dictionary-expression">Dictionary expressions</h4>
<div class="paragraph">
<p>Literal dictionaries are written using the syntax shown below</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/literal_dictionary.png" alt="literal dictionary">
</div>
</div>
<div class="paragraph">
<p>An empty dictionary needs the key and value type prefix, for
example <code>&lt;string:int&gt;{}</code> is an empty dictionary with strings as key, and
integer numbers as value.
Literal values of such a dictionary are:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">dict(string, int) d;  # Initialized with the empty dictionary.

d = {&quot;one&quot;: 1, &quot;twenty-three&quot;: 23};</code></pre>
</div>
</div>
<div class="paragraph">
<p>The key-value pairs can be put in any order. Also, the key value must be
unique. Two dictionaries are equal when they have the same number of keys, each
key in one dictionary is also in the other dictionary, and the value
associated with each key also match pair-wise.</p>
</div>
<div class="paragraph">
<p>The binary operators of dictionaries are</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Expression</th>
<th class="tableblock halign-left valign-top">Type <strong>lhs</strong></th>
<th class="tableblock halign-left valign-top">Type <strong>rhs</strong></th>
<th class="tableblock halign-left valign-top">Type result</th>
<th class="tableblock halign-left valign-top">Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>[</code> <strong>rhs</strong> <code>]</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dict(K:V)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">K</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">V</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element access</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>+</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dict(K:V)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dict(K:V)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dict(K:V)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Update</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>-</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dict(K:V)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dict(K:V)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dict(K:V)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Subtraction</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>-</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dict(K:V)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">list K</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dict(K:V)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Subtraction</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>-</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dict(K:V)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">set K</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dict(K:V)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Subtraction</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>==</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dict(K:V)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dict(K:V)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for equality</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>!=</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dict(K:V)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dict(K:V)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for inequality</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>in</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">K</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dict(K:V)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element test</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>sub</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dict(K:V)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dict(K:V)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sub-set test</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The <strong>element access</strong> operator accesses the value of a key. Querying the value
of a non-existing key value is not allowed, however when used at the left side
of an assignment, it acts as an adding operation. A few examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">dict(int:bool) d = {1:true, 2:false};
bool b;

b = d[1];     # assigns 'true' (the value of key 1).
d[1] = false; # updates the value of key '1' to 'false'.
d[8] = true;  # adds pair 8:true to the dictionary.</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>+</code> operation on dictionaries is an <strong>update</strong> operation. It copies the
<strong>lhs</strong> dictionary, and assigns each key-value pair of the <strong>rhs</strong> dictionary to
the copy, overwriting values copied from the <strong>lhs</strong>.
For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">dict(int:bool) d = {1:true, 2:false};

d + {1:false}   # result is {1:false, 2:false}
d + {3:false}   # result is {1:true, 2:false, 3:false}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <strong>subtraction</strong> operator only takes keys into consideration, that is, it
makes a copy of the <strong>lhs</strong> dictionary, and removes key-value pairs where the key
is also in the <strong>rhs</strong> argument (for subtraction of lists and sets, the elements
are used, instead of the keys):</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">dict(int:bool) d = {1:true, 2:false};

d - {1:false}   # results in {2:false}, value of '1' is not relevant
d - [1]         # results in {2:false}
d - {1}         # results in {2:false}</code></pre>
</div>
</div>
<div class="paragraph">
<p>As with list subtraction and set difference, the type of the result is the
same as the type of the <strong>lhs</strong> dictionary.</p>
</div>
<div class="paragraph">
<p>The <strong>element test</strong> tests for presence of a key value, and the <strong>sub-set</strong>
operation tests whether all keys of the <strong>lhs</strong> value are also in the <strong>rhs</strong>
value. Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">dict(int:bool) d = {1:true, 2:false};
bool b;

b = 2 in d;  # assigns 'true', 2 is a key in d.
b = 5 in d;  # assigns 'false', 5 is not a key in d.

{1:false} sub d # results in 'true', all keys are in d.</code></pre>
</div>
</div>
<div class="paragraph">
<p>There are also standard library functions for dictionaries, see
<a href="#ref-dictionary-stdlib">Dictionary functions</a> for details.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-tuple-expression">Tuple expression</h4>
<div class="paragraph">
<p>A tuple expression is a value of a tuple type (explained in
<a href="#ref-tuple-type">Tuple type</a>). A tuple expression literal value is written like</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/literal_tuple.png" alt="literal tuple">
</div>
</div>
<div class="paragraph">
<p>A literal tuple is a comma separated sequence of expressions of length two or
longer, surrounded by a
pair of parentheses. The number of expressions and the type of each expression
decide the tuple type. For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">type tup = tuple(bool b; real r);

tup t = (true, 3.48);</code></pre>
</div>
</div>
<div class="paragraph">
<p>The type named <code>tup</code> is a tuple type with a boolean field and a real field.
The expression <code>(true, 3.48)</code> constructs the same tuple type, thus it can be
assigned to variable <code>t</code>. Names of the fields are not relevant in this
matching, for example variable declaration (and initialization)
<code>tuple(bool z; real w) u = t</code> is allowed, since the types of
the fields match in a pair-wise manner.</p>
</div>
<div class="paragraph">
<p>A field of a tuple can be accessed both for read and for assignment by the name
of the field:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">bool c;

c = t.b;     # Read the 'b' field.
t.b = false; # Assign a new value to the 'b' field.</code></pre>
</div>
</div>
<div class="paragraph">
<p>In the latter case, only the assigned field changes, all other fields keep the
same value.</p>
</div>
<div class="paragraph">
<p>Tuples can also be packed and unpacked. Packing is assignment to all fields,
while unpacking is reading of all fields into separate variables:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">real q;

t = false, 3.8; # Packing of values into a tuple.

c, q = t;       # Unpacking into separate variables.</code></pre>
</div>
</div>
<div class="paragraph">
<p>Packing is very closely related to literal tuples above. The difference is
that packing can be done only like above in an assignment to a tuple value,
while a literal tuple works everywhere.</p>
</div>
<div class="paragraph">
<p>Unpacking is very useful when the right side (<code>t</code> in the example) is more
complex, for example, the return value of a function call, as
in <code>c, q = f();</code>. In such cases you don&#8217;t need to construct an intermediate
tuple variable.</p>
</div>
<div class="paragraph">
<p>Packing and unpacking is also used in multi-assignment statements:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">a, b = 3, 4;   # Assign 3 to 'a', and 4 to 'b'.

a, b = b, a;   # Swap values of 'a' and 'b'.</code></pre>
</div>
</div>
<div class="paragraph">
<p>The latter works due to the intermediate tuple that is created as part in the
assignment.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-file-expression">File handle expressions</h4>
<div class="paragraph">
<p>Variables of type <code>file</code> are created using a variable declaration with a
<code>file</code> type, see <a href="#ref-file-type">File type</a> for details about the type.</p>
</div>
<div class="paragraph">
<p>You cannot write a literal value for a file type (nor can you read or write
values of this type), file values are created by means of the <code>open</code> function
in the standard library, see <a href="#ref-file-stdlib">File functions</a>.</p>
</div>
<div class="paragraph">
<p>You can test whether two files are the same with the binary <code>==</code> and <code>!=</code>
operators.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Expression</th>
<th class="tableblock halign-left valign-top">Type <strong>lhs</strong></th>
<th class="tableblock halign-left valign-top">Type <strong>rhs</strong></th>
<th class="tableblock halign-left valign-top">Type result</th>
<th class="tableblock halign-left valign-top">Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>==</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">file</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">file</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for equality</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>!=</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">file</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">file</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for inequality</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Values of type <code>file</code> are used for writing output to a file using the
<a href="#ref-write-statement">Write statement</a>, or for reading values from a file using the
<code>read</code> function explained in <a href="#ref-read-expression">Read expression</a>.
After use, a file should be closed with a <code>close</code> statement explained at
<a href="#ref-close-statement">Close statement</a>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-read-expression">Read expression</h4>
<div class="paragraph">
<p>The read expression reads a value of a given type from the keyboard or from a
file. It has two forms:</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><code>T</code> <strong>read</strong>(<code>T</code>)</dt>
<dd>
<p>Read a value of type <code>T</code> from the keyboard.</p>
</dd>
<dt class="hdlist1"><code>T</code> <strong>read</strong>(<code>file f, T</code>)</dt>
<dd>
<p>Read a value of type <code>T</code> from the file opened for reading by file <code>f</code>
(see the <code>open</code> function in <a href="#ref-file-stdlib">File functions</a> for details about
opening files).</p>
</dd>
</dl>
</div>
<div class="paragraph">
<p>You can read values from types that contain data used for calculation, that is
values of types <code>bool</code>, <code>int</code>, <code>real</code>, <code>string</code>, <code>list T</code>, <code>set T</code>,
and <code>dict(K:V)</code>. Types <code>T</code>, <code>K</code>, and <code>V</code> must also be readable types of
data (that is, get chosen from the above list of types).</p>
</div>
<div class="paragraph">
<p>Reading a value takes a text (with the same syntax as Chi literal values of
the same type), and converts it into a value that can be manipulated in the Chi
model. Values read from the text have to be constant, for example the input
<code>time</code> cannot be interpreted as real number with the same value as the
current simulation time.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-timer-expression">Timer expressions</h4>
<div class="paragraph">
<p>Timers are clocks that count down to 0. They are used to track the amount of
time you still have to wait.
Timers can be stored in data of type <code>timer</code> (see <a href="#ref-timer-type">Timer type</a> for
details of the type).</p>
</div>
<div class="paragraph">
<p>The standard library function <code>ready</code> exists to test whether a timer has
expired. See <a href="#ref-timer-stdlib">Timer functions</a> for details.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-channel-expression">Channel expressions</h4>
<div class="paragraph">
<p>Channels are used to connect processes with each other. See the
<a href="#ref-channel-type">Channel type</a> for details.</p>
</div>
<div class="paragraph">
<p>Usually, channels are created by variable declarations, as in:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">chan void s;
chan int c, d;</code></pre>
</div>
</div>
<div class="paragraph">
<p>This creates three channels, one synchronization channel <code>s</code>, and two
channels (<code>c</code>, and <code>d</code>) communicating integers.</p>
</div>
<div class="paragraph">
<p>There is also a <code>channel</code> function to make new channels:</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1"><code>chan T</code> <strong>channel</strong>(<code>T</code>)</dt>
<dd>
<p>Construct a new channel communicating data type <code>T</code>. When <code>T</code> is
<code>void</code>, a synchronization channel is created instead.</p>
</dd>
</dl>
</div>
<div class="paragraph">
<p>The only binary expressions on channels are equality comparison operations.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Expression</th>
<th class="tableblock halign-left valign-top">Type <strong>lhs</strong></th>
<th class="tableblock halign-left valign-top">Type <strong>rhs</strong></th>
<th class="tableblock halign-left valign-top">Type result</th>
<th class="tableblock halign-left valign-top">Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>==</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">chan T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">chan T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for equality</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>lhs</strong> <code>!=</code> <strong>rhs</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">chan T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">chan T</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Test for inequality</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>where <code>T</code> can be either a normal type, or <code>void</code>.
There has to be an overlap between the channel directions (that is, you cannot
compare a receive-only channel with a send-only channel).</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-distribution-expression">Distribution expressions</h4>
<div class="paragraph">
<p>A distribution represents a stochastic distribution for drawing random numbers.
It use a pseudo-random number generator. See
<a href="#tut-chapter-stochastic-behavior">Modeling stochastic behavior</a> for a discussion how random numbers are
used.</p>
</div>
<div class="paragraph">
<p>Variables of type distribution (see <a href="#ref-distribution-type">Distribution type</a>) are
initialized by using a distribution function from the standard library, see
<a href="#ref-chapter-distributions">Distributions</a> for an overview.</p>
</div>
<div class="paragraph">
<p>There is only one operator for variables with a distribution type, as shown
below</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Expression</th>
<th class="tableblock halign-left valign-top">Type <strong>op</strong></th>
<th class="tableblock halign-left valign-top">Type result</th>
<th class="tableblock halign-left valign-top">Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sample</code> <strong>op</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dist bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample <strong>op</strong> distribution</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sample</code> <strong>op</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dist int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample <strong>op</strong> distribution</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sample</code> <strong>op</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">dist real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sample <strong>op</strong> distribution</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The <code>sample</code> operator draws a random number from a distribution.
For example rolling a dice:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">model Dice():
    dist int d = uniform(1, 7);

    # Roll the dice 5 times
    for i in range(5):
        writeln(&quot;Rolled %d&quot;, sample d);
    end
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-process-expression">Process expressions</h4>
<div class="paragraph">
<p>A process expression refers to a process definition. It can be used to
parameterize the process that is being instantiated, by passing such a value
to a <code>run</code> or <code>start</code> statement. (See <a href="#ref-run-and-start-statements">Run and start statements</a> for
details on how to create a new process.)
An example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc A(int x):
    writeln(&quot;A(%d)&quot;, x);
end

proc B(int x):
    writeln(&quot;B(%d)&quot;, x);
end

proc P(proc (int) ab):
    run ab(3);
end

model M():
    run P(A); # Pass 'proc A' into P.
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>Formal parameter <code>ab</code> of process <code>P</code> is a process variable that refers to
a process taking an integer parameter. The given process definition is
instantiated. Since in the model definition, <code>A</code> is given to process <code>P</code>,
the output of the above model is <code>A(3)</code>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-instance-expression">Instance expressions</h4>
<div class="paragraph">
<p>Process instances represent running processes in the model. Their use is to
store a reference to such a running process, to allow testing for finishing.</p>
</div>
<div class="paragraph">
<p>An instance variable is assigned during a <code>start</code> statement. (See
<a href="#ref-run-and-start-statements">Run and start statements</a> for details on how to start a new process.)</p>
</div>
<div class="paragraph">
<p>The instance variable is used to test for termination of the instantiated
process, or to wait for it:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">proc Wait():
    delay 4.52;
end

model M():
    inst w;

    start w = Wait();

    delay 1.2;
    writeln(&quot;is Wait finished? %b&quot;, finished(w));

    # Wait until the process has finished.
    finish w;
end</code></pre>
</div>
</div>
<div class="paragraph">
<p><code>Wait</code> is a process that waits a while before terminating. In the <code>start</code>
statement, instance variable <code>w</code> is set up to refer to instantiated process
<code>Wait</code>. After assignment, you can use the variable for testing whether the
process has terminated. In the example, the test result is written to the
screen, but this could also be used as a guard in a select statement (See
<a href="#ref-select-statement">Select statement</a> for details).</p>
</div>
<div class="paragraph">
<p>The other thing that you can do is to wait for termination of the process by
means of the <code>finish</code> statement, see also <a href="#ref-finish-statement">Finish statement</a>.</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-matrix-expression">Matrix expression</h4>
<div class="paragraph">
<p>The syntax of a matrix literal value is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/literal_matrix.png" alt="literal matrix">
</div>
</div>
<div class="paragraph">
<p>The literal starts with a <code>[</code> symbol, and ends with a <code>]</code> symbol.
In between it has at least two comma-separated lists of real number values,
separated with a <code>;</code> symbol.</p>
</div>
<div class="paragraph">
<p>Each comma-separated list of real number values is a row of the matrix. The
number of columns of each row is the same at each row, which means the number
of real number values must be the same with each list.
As an example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">matrix(2, 3) m = [1.0, 2.0, 3.0;
                  4.0, 5.0, 6.0]</code></pre>
</div>
</div>
<div class="paragraph">
<p><code>m</code> is a matrix with two rows and three columns. A comma separates two
columns from each other, a semi colon separates two rows.</p>
</div>
<div class="paragraph">
<p>The syntax demands at least one semi colon in a literal matrix value, which
means you cannot write a matrix literal with a single row directly. Instead,
write a cast expression that converts a list of real numbers to a matrix with
a single row. See <a href="#ref-cast-expression">Cast expressions</a> for an explanation of cast
expressions.</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-cast-expression">Cast expressions</h4>
<div class="paragraph">
<p>A cast expression converts a value from one type to another. The syntax of a
cast expression is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/cast_expression.png" alt="cast expression">
</div>
</div>
<div class="paragraph">
<p>You write the result type, followed by an expression between parentheses.
The value of the expression is converted to the given type.
For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">real v = 3.81;
timer t;

t = timer(v);  # Convert from real to timer (third entry in the table)</code></pre>
</div>
</div>
<div class="paragraph">
<p>The conversion from a list to a matrix (the first entry in the table) is a
special case in the sense that you also need to specify the size of the
resulting matrix, as in:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">list real xs = [1, 2, 3];

writeln(&quot;matrix with one row and three columns: %s&quot;, matrix(1, 3, xs));</code></pre>
</div>
</div>
<div class="paragraph">
<p>The expected number of rows and columns given in the first two arguments must
be constant. When the conversion is performed, the length of the given list
must be the same as the number of columns stated in the second argument.</p>
</div>
<div class="paragraph">
<p>The number of available conversions is quite limited, below is a table that
lists them.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Value type</th>
<th class="tableblock halign-left valign-top">Result type</th>
<th class="tableblock halign-left valign-top">Remarks</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">list</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">matrix</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Conversion of a list to a matrix with one row</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">list</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">set</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Construct a set from a list</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">timer</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Setting up a timer</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">timer</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Reading the current value of a timer</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Parsing a boolean value from a string</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Parsing an integer number from a string</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Parsing a real number from a string</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">bool</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Converting a boolean to a string representation</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Converting an integer to a string representation</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Converting a real number to a string representation</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">real</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Widening an integer number to a real number</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>The first entry exists for creating matrices with one row (which you cannot
write syntactically). The second entry constructs a set from a list of values.
The element type of the list and the resulting set are the same.</p>
</div>
<div class="paragraph">
<p>The pair of conversions between timer
type and real number type is for setting and reading timers, see
<a href="#tut-using-timers">Timers</a> for their use.</p>
</div>
<div class="paragraph">
<p>The conversions from string to boolean or numeric allows parsing of a
string. The other way around is also possible, although this is usually done
as part of a <strong>write</strong> statement (see <a href="#ref-write-statement">Write statement</a> for details).</p>
</div>
<div class="paragraph">
<p>The final entry is for widening an integer to a real number. The other way
around (from a real number to an integer number) does not exist as cast, but
there are stdlib functions <strong>ceil</strong>, <strong>floor</strong>, and <strong>round</strong> available instead
(explained in <a href="#ref-real-stdlib">Real number functions</a>).</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-functioncall-expression">Function call expressions</h4>
<div class="paragraph">
<p>A function call starts a function to compute its result value from the input
parameters. The syntax is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/func_call_expression.png" alt="func call expression">
</div>
</div>
<div class="paragraph">
<p>The <code>Expression</code> before the open parenthesis represents the function to
call. Often this is a simple name like <code>size</code> (the name of one of the
standard library functions), but you can have more complicated expressions.</p>
</div>
<div class="paragraph">
<p>The sequence of expressions inside the parentheses denote the values of the
input parameters of the functions. Their type has to match with the type
stated in the formal parameter at the corresponding position.</p>
</div>
<div class="paragraph">
<p>The result of the function call is a value with the same type as stated in the
return type of the function definition.</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-operator-priorities">Operator priorities</h4>
<div class="paragraph">
<p>Operator priorities aim to reduce the number of parentheses needed in
expressions. They do this by make choices in the order of applying operators on
their arguments. For example, <code>1 + 2 * 3</code> can be interpreted as
<code>(1 + 2) * 3</code> (if the addition operation is applied first), or as
<code>1 + (2 * 3)</code> (if the multiplication operation is performed first).</p>
</div>
<div class="paragraph">
<p>In the following table, the order of applying operators in the Chi language
is defined.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Priority</th>
<th class="tableblock halign-left valign-top">Operators</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(unary) <code>sample</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">unary <code>+</code>, unary <code>-</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">3</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>^</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">4</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>*</code>, <code>/</code>, <code>div</code>, <code>mod</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">5</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>+</code>, <code>-</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">6</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>&lt;</code>, <code>&lt;=</code>, <code>==</code>, <code>!=</code>, <code>&gt;=</code>, <code>&gt;</code>, <code>in</code>, <code>sub</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">7</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">(unary) <code>not</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>and</code></p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">9</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>or</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>Operators with a smaller priority number get applied before operators with a
higher priority number. Operators with the same priority get applied from left
to right.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="ref-chapter-standard-library">Standard library functions</h3>
<div class="paragraph">
<p>
The Chi language has many general purpose functions available.
They are organized by type and kind of use.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#ref-integer-stdlib">Integer functions</a></p>
</li>
<li>
<p><a href="#ref-real-stdlib">Real number functions</a></p>
</li>
<li>
<p><a href="#ref-string-stdlib">String functions</a></p>
</li>
<li>
<p><a href="#ref-list-stdlib">List functions</a></p>
</li>
<li>
<p><a href="#ref-set-stdlib">Set functions</a></p>
</li>
<li>
<p><a href="#ref-dictionary-stdlib">Dictionary functions</a></p>
</li>
<li>
<p><a href="#ref-chapter-distributions">Distributions</a></p>
</li>
<li>
<p><a href="#ref-timer-stdlib">Timer functions</a></p>
</li>
<li>
<p><a href="#ref-file-stdlib">File functions</a></p>
</li>
<li>
<p><a href="#ref-instance-stdlib">Process instance functions</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="sect3">
<h4 id="ref-integer-stdlib">Integer functions</h4>
<div class="paragraph">
<p>The following standard library functions on integers exist</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>int</code> <strong>abs</strong><code>(int val)</code></p>
<div class="paragraph">
<p>Return the absolute value of <code>val</code>.</p>
</div>
</li>
<li>
<p><code>int</code> <strong>sign</strong><code>(int val)</code></p>
<div class="paragraph">
<p>Return <code>-1</code> if val less than zero, <code>1</code> if val more than zero, and
<code>0</code> otherwise.</p>
</div>
</li>
<li>
<p><code>int</code> <strong>max</strong><code>(int a, b, ...)</code></p>
<div class="paragraph">
<p>Return the biggest value of the parameters.</p>
</div>
</li>
<li>
<p><code>int</code> <strong>min</strong><code>(int a, b, ...)</code></p>
<div class="paragraph">
<p>Return the smallest value of the parameters.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-real-stdlib">Real number functions</h4>
<div class="paragraph">
<p>The following standard library functions on real numbers exist</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>real</code> <strong>abs</strong><code>(real val)</code></p>
<div class="paragraph">
<p>Return the absolute value of <code>val</code>.</p>
</div>
</li>
<li>
<p><code>int</code> <strong>sign</strong><code>(real val)</code></p>
<div class="paragraph">
<p>Return <code>-1</code> if val less than zero, <code>1</code> if val more than zero, and
<code>0</code> otherwise.</p>
</div>
</li>
<li>
<p><code>real</code> <strong>max</strong><code>(real a, b, ...)</code></p>
<div class="paragraph">
<p>Return the biggest value of the parameters. Integer parameters are
silently promoted to real.</p>
</div>
</li>
<li>
<p><code>real</code> <strong>min</strong><code>(real a, b, ...)</code></p>
<div class="paragraph">
<p>Return the smallest value of the parameters. Integer parameters are
silently promoted to real.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>Conversion from real number to integer can be performed in three different
ways.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>int</code> <strong>ceil</strong><code>(real val)</code></p>
<div class="paragraph">
<p>Return smallest integer bigger or equal to <code>val</code>.</p>
</div>
</li>
<li>
<p><code>int</code> <strong>floor</strong><code>(real val)</code></p>
<div class="paragraph">
<p>Return biggest integer less or equal to <code>val</code>.</p>
</div>
</li>
<li>
<p><code>int</code> <strong>round</strong><code>(real val)</code></p>
<div class="paragraph">
<p>Round to nearest integer value (up if distance is <code>0.5</code>).</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>The following power and logarithmic functions exist.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>real</code> <strong>sqrt</strong><code>(real val)</code></p>
<div class="paragraph">
<p>Return the square root of <code>val</code> (argument must be non-negative).</p>
</div>
</li>
<li>
<p><code>real</code> <strong>cbrt</strong><code>(real val)</code></p>
<div class="paragraph">
<p>Return the cube root of <code>val</code> (<code>val^(1/3)</code>).</p>
</div>
</li>
<li>
<p><code>real</code> <strong>exp</strong><code>(real x)</code></p>
<div class="paragraph">
<p>Compute <code>e^x</code>.</p>
</div>
</li>
<li>
<p><code>real</code> <strong>ln</strong><code>(real x)</code></p>
<div class="paragraph">
<p>Compute the natural logarithm of <code>x</code>.</p>
</div>
</li>
<li>
<p><code>real</code> <strong>log</strong><code>(real x)</code></p>
<div class="paragraph">
<p>Compute the base-10 logarithm of <code>x</code>.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>Finally, there are trigonometric functions available.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>real</code> <strong>cos</strong><code>(real a)</code></p>
<div class="paragraph">
<p>Cosine function of angle <code>a</code> (in radians).</p>
</div>
</li>
<li>
<p><code>real</code> <strong>sin</strong><code>(real angle)</code></p>
<div class="paragraph">
<p>Sine function of angle <code>a</code> (in radians).</p>
</div>
</li>
<li>
<p><code>real</code> <strong>tan</strong><code>(real angle)</code></p>
<div class="paragraph">
<p>Tangent function of angle <code>a</code> (in radians).</p>
</div>
</li>
<li>
<p><code>real</code> <strong>acos</strong><code>(real val)</code></p>
<div class="paragraph">
<p>Arc cosine function of value <code>val</code>.</p>
</div>
</li>
<li>
<p><code>real</code> <strong>asin</strong><code>(real val)</code></p>
<div class="paragraph">
<p>Arc sine function of value <code>val</code>.</p>
</div>
</li>
<li>
<p><code>real</code> <strong>atan</strong><code>(real val)</code></p>
<div class="paragraph">
<p>Arc tangent function of value <code>val</code>.</p>
</div>
</li>
<li>
<p><code>real</code> <strong>cosh</strong><code>(real val)</code></p>
<div class="paragraph">
<p>Hyperbolic cosine function of value <code>val</code>.</p>
</div>
</li>
<li>
<p><code>real</code> <strong>sinh</strong><code>(real val)</code></p>
<div class="paragraph">
<p>Hyperbolic sine function of value <code>val</code>.</p>
</div>
</li>
<li>
<p><code>real</code> <strong>tanh</strong><code>(real val)</code></p>
<div class="paragraph">
<p>Hyperbolic tangent function of value <code>val</code>.</p>
</div>
</li>
<li>
<p><code>real</code> <strong>acosh</strong><code>(real val)</code></p>
<div class="paragraph">
<p>Inverse hyperbolic cosine function of value <code>val</code>.</p>
</div>
</li>
<li>
<p><code>real</code> <strong>asinh</strong><code>(real val)</code></p>
<div class="paragraph">
<p>Inverse hyperbolic sine function of value <code>val</code>.</p>
</div>
</li>
<li>
<p><code>real</code> <strong>atanh</strong><code>(real val)</code></p>
<div class="paragraph">
<p>Inverse hyperbolic tangent function of value <code>val</code>.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-string-stdlib">String functions</h4>
<div class="paragraph">
<p>The following string functions exist in the standard library.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>int</code> <strong>size</strong><code>(string s)</code></p>
<div class="paragraph">
<p>Get the number of characters in string <code>s</code>.</p>
</div>
</li>
<li>
<p><code>string</code> <strong>max</strong><code>(string a, b, ...)</code></p>
<div class="paragraph">
<p>Return the biggest string of the parameters.</p>
</div>
</li>
<li>
<p><code>string</code> <strong>min</strong><code>(string a, b, ...)</code></p>
<div class="paragraph">
<p>Return the smallest string of the parameters.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-list-stdlib">List functions</h4>
<div class="paragraph">
<p>Getting an element out of list can be done in two ways.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>tuple(T value, list T ys)</code> <strong>pop</strong><code>(list T xs)</code></p>
<div class="paragraph">
<p>Get the first element of non-empty list <code>xs</code> (with arbitrary element type
<code>T</code>), and return a tuple with the first element and the list without the
first element.</p>
</div>
</li>
<li>
<p><code>list T</code> <strong>del</strong><code>(list T xs, int index)</code></p>
<div class="paragraph">
<p>Remove element <code>xs[index]</code> from list <code>xs</code> (with arbitrary type <code>T</code>).
The index position must exist in the list. Returns a
list without the removed element.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>For getting information about the number of elements in a list, the following
functions are available.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>bool</code> <strong>empty</strong><code>(list T xs)</code></p>
<div class="paragraph">
<p>Is list <code>xs</code> empty (for any element type <code>T</code>)?
Returns <code>true</code> when <code>xs</code> contains no elements, and <code>false</code> when it has at
least one element.</p>
</div>
</li>
<li>
<p><code>int</code> <strong>size</strong><code>(list T xs)</code></p>
<div class="paragraph">
<p>Get the number of elements in list <code>xs</code> (for any element type <code>T</code>).</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>List functions mainly useful for using with a <code>for</code> statement (explained in
<a href="#ref-for-loop-statement">For loop statement</a>) follow next.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>list tuple(int index, T value)</code> <strong>enumerate</strong><code>(list T xs)</code></p>
<div class="paragraph">
<p>Construct a copy of the list <code>xs</code> with arbitrary element type <code>T</code>, with
each element replaced by a tuple containing the index of the element as
well as the element itself.
For example, <code>enumerate(["a", "b"])</code> results in the list
<code>[(0, "a"), (1, "b")]</code>.</p>
</div>
</li>
<li>
<p><code>list int</code> <strong>range</strong><code>(int end)</code></p>
<div class="paragraph">
<p>Construct a list with integer values running from <code>0</code> to (but not including)
<code>end</code>. For example <code>range(3)</code> produces list <code>[0, 1, 2]</code>.</p>
</div>
</li>
<li>
<p><code>list int</code> <strong>range</strong><code>(int start, end)</code></p>
<div class="paragraph">
<p>Construct a list with integer values running from <code>start</code> to (but not including)
<code>end</code>. For example, <code>range(3, 7)</code> produces list <code>[3, 4, 5, 6]</code>.</p>
</div>
</li>
<li>
<p><code>list int</code> <strong>range</strong><code>(int start, end, step)</code></p>
<div class="paragraph">
<p>Construct a list with integer values running from <code>start</code> to (but not
including) <code>end</code>, while incrementing the value with step size <code>step</code>.
For example <code>range(3, 8, 2)</code> produces <code>list [3, 5, 7]</code>. Negative step sizes
are also allowed to construct lists with decrementing values, but <code>start</code> has
to be larger than <code>end</code> in that case.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>For occasionally getting the biggest or smallest element of a list, the <code>min</code>
and <code>max</code> functions are available. These functions take a lot of time, if
smallest or biggest values are needed often, it may be better to use a sorted
list.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>T</code> <strong>min</strong><code>(list T xs)</code></p>
<div class="paragraph">
<p>Return the smallest element value of type <code>T</code> (<code>T</code> must be type
int, real, or string) from non-empty list <code>xs</code>.</p>
</div>
</li>
<li>
<p><code>T</code> <strong>max</strong><code>(list T xs)</code></p>
<div class="paragraph">
<p>Return the biggest element value of type <code>T</code> (<code>T</code> must be type
int, real, or string) from non-empty list <code>xs</code>.</p>
</div>
</li>
<li>
<p><code>list</code> <code>T</code> <strong>sort</strong><code>(list T xs, func bool pred(T a, b))</code></p>
<div class="paragraph">
<p>Sort list <code>xs</code> such that the predicate function <code>pred</code> holds for
every pair of elements in the list, and return the sorted list.</p>
</div>
<div class="paragraph">
<p>The predicate function <code>pred</code> must implement a total ordering on the
values. See also the <a href="#tut-sorted-lists">sorted lists</a> discussion
in the tutorial.</p>
</div>
</li>
<li>
<p><code>list</code> <code>T</code> <strong>insert</strong><code>(list T xs, T x, func bool pred(T a, b))</code></p>
<div class="paragraph">
<p>Given an already sorted list <code>xs</code> with respect to predicate function <code>pred</code>
(with arbitrary element type <code>T</code>), insert element value <code>x</code> into the list
such that the predicate function <code>pred</code> again holds for every pair of
elements in the list. Return the list with the inserted <code>element</code>.</p>
</div>
<div class="paragraph">
<p>The predicate function <code>pred</code> must implement a total ordering on the
values. See also the <a href="#tut-sorted-lists">sorted lists</a> discussion
in the tutorial.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-set-stdlib">Set functions</h4>
<div class="paragraph">
<p>Similar to lists, there are two functions for getting an element from a set.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>tuple(T val, set T yr)</code> <strong>pop</strong><code>(set T xr)</code></p>
<div class="paragraph">
<p>Get an element of non-empty set <code>xr</code> (with arbitrary element type <code>T</code>), and
return a tuple with the retrieved element and the set without the retrieved
element. Note that the order of elements in a set has no meaning, and may
change at any moment.</p>
</div>
</li>
<li>
<p><code>list tuple(int index, T val)</code> <strong>enumerate</strong><code>(set T xr)</code></p>
<div class="paragraph">
<p>Construct a list of tuples with position <code>index</code> and element value <code>val</code>
from the set <code>xr</code> with arbitrary element type <code>T</code>. Note that the <code>index</code>
has no meaning in the set.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>Removing a single element from a set can be done with the function below.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>set T</code> <strong>del</strong><code>(set T xr, T value)</code></p>
<div class="paragraph">
<p>Remove from set <code>xr</code> (with arbitrary element type <code>T</code>) element
<code>value</code> if it exists in the set. Returns a set without the (possibly)
removed element.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>For getting information about the number of elements in a set, the following
functions are available.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>bool</code> <strong>empty</strong><code>(set T xr)</code></p>
<div class="paragraph">
<p>Is set <code>xr</code> empty (for any element type <code>T</code>)?
Returns <code>true</code> when <code>xr</code> contains no elements, and <code>false</code> when it has at
least one element.</p>
</div>
</li>
<li>
<p><code>int</code> <strong>size</strong><code>(set T xr)</code></p>
<div class="paragraph">
<p>Get the number of elements in set <code>xr</code> (for any element type <code>T</code>).</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>For occasionally getting the biggest or smallest element of a set, the <code>min</code>
and <code>max</code> functions are available. These functions take a lot of time, if
smallest or biggest values are needed often, it may be better to make a sorted
list.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>T</code> <strong>min</strong><code>(set T xr)</code></p>
<div class="paragraph">
<p>Return the smallest element value of type <code>T</code> (<code>T</code> must be type
<code>int</code>, <code>real</code>, or <code>string</code>) from non-empty set <code>xr</code>.</p>
</div>
</li>
<li>
<p><code>T</code> <strong>max</strong><code>(set T xr)</code></p>
<div class="paragraph">
<p>Return the biggest element value of type <code>T</code> (<code>T</code> must be type
<code>int</code>, <code>real</code>, or <code>string</code>) from non-empty set <code>xr</code>.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-dictionary-stdlib">Dictionary functions</h4>
<div class="paragraph">
<p>Getting a value or a sequence of values from a dictionary can be done with the
following functions.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>tuple(K key, V val, dict(K:V) e)</code> <strong>pop</strong><code>(dict(K:V) d)</code></p>
<div class="paragraph">
<p>Get a key-value pair from non-empty dictionary <code>d</code> (with arbitrary key
type <code>K</code> and arbitrary value type <code>V</code>), and return a tuple with the
retrieved key, the retrieved value, and the dictionary without the
retrieved element.</p>
</div>
</li>
<li>
<p><code>list tuple(int index, K key, V val)</code> <strong>enumerate</strong><code>(dict(K:V) d)</code></p>
<div class="paragraph">
<p>Construct a list of tuples with position <code>index</code>, key <code>key</code> and value
<code>val</code> from dictionary <code>d</code> (with arbitrary key type <code>K</code> and arbitrary
value type <code>V</code>). Note that the <code>index</code> has no meaning in the
dictionary. In combination with a for statement (explained in
<a href="#ref-for-loop-statement">For loop statement</a>), it is also possible to iterate over the
dictionary directly.</p>
</div>
</li>
<li>
<p><code>list K</code> <strong>dictkeys</strong><code>(dict(K:V) d)</code></p>
<div class="paragraph">
<p>Return the keys of dictionary <code>d</code> (with any key type <code>K</code> and value type
<code>V</code>) as a list with element type <code>K</code>. Since a dictionary has no order,
the order of the elements in the resulting list is also undefined.</p>
</div>
</li>
<li>
<p><code>list V</code> <strong>dictvalues</strong><code>(dict(K:V) d)</code></p>
<div class="paragraph">
<p>Return the values of dictionary <code>d</code> (with any key type <code>K</code> and value type
<code>V</code>) as a list with element type <code>V</code>. Since a dictionary has no order,
the order of the elements in the resulting list is also undefined.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>Removing a single element from a dictionary can be done with the function below.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>dict(K:V)</code> <strong>del</strong><code>(dict(K:V) d, K key)</code></p>
<div class="paragraph">
<p>Remove element <code>key</code> from dictionary <code>d</code> (with arbitrary element key type <code>K</code> and
arbitrary value type <code>V</code>) if it exists in the dictionary.
Returns a dictionary without the (possibly) removed element.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>The number of keys in a dictionary can be queried with the following
functions.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>bool</code> <strong>empty</strong><code>(dict(K:V) d)</code></p>
<div class="paragraph">
<p>Is dictionary <code>d</code> empty? (with any key type <code>K</code> and value type <code>V</code>)
Returns <code>true</code> when <code>d</code> contains no elements, and <code>false</code> when it has at
least one key element.</p>
</div>
</li>
<li>
<p><code>int</code> <strong>size</strong><code>(dict(K:V) d)</code></p>
<div class="paragraph">
<p>Get the number of key elements in dictionary <code>d</code> (with any key type <code>K</code>
and value type <code>V</code>).</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>For occasionally getting the biggest or smallest key value of a dictionary, the
<code>min</code> and <code>max</code> functions are available. These functions take a lot of
time, if smallest or biggest keys are needed often, it may be better to use a
sorted list.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>K</code> <strong>min</strong><code>(dict(K:V) d)</code></p>
<div class="paragraph">
<p>Return the smallest key of type <code>K</code> (<code>K</code> must be type
<code>int</code>, <code>real</code>, or <code>string</code>) from non-empty dictionary <code>d</code>.</p>
</div>
</li>
<li>
<p><code>K</code> <strong>max</strong><code>(dict(K:V) d)</code></p>
<div class="paragraph">
<p>Return the biggest key of type <code>K</code> (<code>K</code> must be type
<code>int</code>, <code>real</code>, or <code>string</code>) from non-empty dictionary <code>d</code>.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-timer-stdlib">Timer functions</h4>
<div class="ulist">
<ul>
<li>
<p><code>bool</code> <strong>ready</strong><code>(timer t)</code></p>
<div class="paragraph">
<p>Return whether timer <code>t</code> has expired (or was never set). Returns <code>true</code>
if the timer has reached <code>0</code> or was never set, and <code>false</code> if it is still
running.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-file-stdlib">File functions</h4>
<div class="ulist">
<ul>
<li>
<p><code>bool</code> <strong>eof</strong><code>(file handle)</code></p>
<div class="paragraph">
<p>For files that are read, this function tests whether the end of the file
(EOF) has been reached. That is, it tests whether you have read the last
value in the <code>file</code>.</p>
</div>
<div class="paragraph">
<p>If the call returns <code>true</code>, there are no more values to read. If it
returns <code>false</code>, another value is still available.
For an example of how to use <code>eof</code> and <code>eol</code>, see
<a href="#tut-advanced-file-reading">Advanced reading from a file</a>.</p>
</div>
</li>
<li>
<p><code>bool</code> <strong>eol</strong><code>(file handle)</code></p>
<div class="paragraph">
<p>For files that are read, this function tests whether the end of a line
(EOL) has been reached. That is, it tests whether you have read the last
value at the current line.</p>
</div>
<div class="paragraph">
<p>If the call returns <code>true</code>, there are no more values to read at this
line. If it returns <code>false</code>, another value can be read.
For an example of how to use <code>eof</code> and <code>eol</code>, see
<a href="#tut-advanced-file-reading">Advanced reading from a file</a>.</p>
</div>
<div class="paragraph">
<p>Note that 'the same line' is applied only to the leading white space. It
does not say anything about the number lines that a value itself uses.
For example, you could spread a list or set with numbers over multiple lines.</p>
</div>
</li>
<li>
<p><code>int</code> <strong>newlines</strong><code>(file handle)</code></p>
<div class="paragraph">
<p>For files that are read, this function returns how many lines down the
next value can be found. It returns a negative number if the end of the
file has been reached.</p>
</div>
<div class="paragraph">
<p>For example, executing:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">int i;
file f = open(&quot;data.txt&quot;, &quot;r&quot;);

i = read(f, int);
writeln(&quot;read %d, eol count is %d&quot;, i, newlines(f));
i = read(f, int);
writeln(&quot;read %d, eol count is %d&quot;, i, newlines(f));
i = read(f, int);
writeln(&quot;read %d, eol count is %d&quot;, i, newlines(f));
close(f);</code></pre>
</div>
</div>
<div class="paragraph">
<p>where "data.txt" contains:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">123 345
789</code></pre>
</div>
</div>
<div class="paragraph">
<p>produces:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="console">read 123, eol count is 0
read 345, eol count is 1
read 789, eol count is -1</code></pre>
</div>
</div>
<div class="paragraph">
<p>After reading <code>123</code>, the next integer is at the same line, which is <code>0</code>
lines down. After reading <code>345</code>, the next value is at the next line,
which is <code>1</code> line down. After reading the final value, a negative line
count is returned to indicate lack of a next value.</p>
</div>
<div class="paragraph">
<p>Note that 'number of lines down' is applied only to the leading white
space. It does not say anything about the number lines that a value itself
uses, a set of list could use several lines.</p>
</div>
</li>
<li>
<p><code>file</code> <strong>open</strong><code>(string filename, string mode)</code></p>
<div class="paragraph">
<p>Open the file with name <code>filename</code> using access mode <code>mode</code>.
When the access mode is <code>"r"</code>, the file should exist and is opened for
reading. When the access mode is <code>"w"</code>, the file is either created or its
previous contents is erased. There is no way to append output to an
existing file.</p>
</div>
<div class="paragraph">
<p>Notice that filename is a normal Chi string, which means that the <code>\</code>
character needs to be escaped to <code>\\</code>. (That is, use a string like
<code>"mydir\\myfile.txt"</code> to open the file with the name <code>myfile.txt</code> in
directory (map) <code>mydir</code>.</p>
</div>
<div class="paragraph">
<p>Alternatively, you may want to use the forward slash <code>/</code> instead as path
component separator.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-instance-stdlib">Process instance functions</h4>
<div class="ulist">
<ul>
<li>
<p><code>bool</code> <strong>finished</strong><code>(inst p)</code></p>
<div class="paragraph">
<p>Return whether the process stored by process instance <code>p</code> has finished.
Returns <code>true</code> when the process has finished, and <code>false</code> if it has not ended yet.</p>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="sect2">
<h3 id="ref-chapter-distributions">Distributions</h3>
<div class="paragraph">
<p>

The Chi language has three kinds of distributions:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#ref-constant-distributions">Constant distributions</a>, distributions returning always the same value</p>
</li>
<li>
<p><a href="#ref-discrete-distributions">Discrete distributions</a>, distributions returning a boolean or integer value</p>
</li>
<li>
<p><a href="#ref-continuous-distributions">Continuous distributions</a>, distributions returning a real number value</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The constant distributions are used during creation of the Chi program.
Before adding stochastic behavior, you want to make sure the program itself
is correct. It is much easier to verify correctness without stochastic
behavior, but if you have to change the program again after the verification,
you may introduce new errors in the process.</p>
</div>
<div class="paragraph">
<p>The constant distributions solve this by allowing you to program with
stochastic sampling in the code, but it is not doing anything (since you get
the same predictable value on each sample operation). After verifying
correctness of the program, you only need to modify the distributions that you
use to get proper stochastic behavior.</p>
</div>
<div class="paragraph">
<p></p>
</div>
<div class="sect3">
<h4 id="ref-constant-distributions">Constant distributions</h4>
<div class="paragraph">
<p>The constant distributions have very predictable samples, which makes them
ideal for testing functioning of the program before adding stochastic
behavior.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>dist</code> <code>bool</code> <strong>constant</strong><code>(bool b)</code></p>
<div class="paragraph">
<p>Distribution always returning <code>b</code>.</p>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Range
</td>
<td class="hdlist2">
<p><code>b</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>b</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p>-</p>
</td>
</tr>
</table>
</div>
</li>
<li>
<p><code>dist</code> <code>int</code> <strong>constant</strong><code>(int i)</code></p>
<div class="paragraph">
<p>Distribution always returning <code>i</code>.</p>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Range
</td>
<td class="hdlist2">
<p><code>i</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>i</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p>-</p>
</td>
</tr>
</table>
</div>
</li>
<li>
<p><code>dist</code> <code>real</code> <strong>constant</strong><code>(real r)</code></p>
<div class="paragraph">
<p>Distribution always returning <code>r</code>.</p>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Range
</td>
<td class="hdlist2">
<p><code>r</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>r</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p>-</p>
</td>
</tr>
</table>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>





</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-discrete-distributions">Discrete distributions</h4>
<div class="paragraph">
<p>The discrete distributions return integer or boolean sample values.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>dist</code> <code>bool</code> <strong>bernoulli</strong><code>(real p)</code></p>
<div class="paragraph">
<p>Outcome of an experiment with chance <code>p</code> <code>(0 &lt;= p &lt;= 1)</code>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/distribution_plots/bernoulli.svg" alt="bernoulli">
</div>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Range
</td>
<td class="hdlist2">
<p><code>{false, true}</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>p</code> (where <code>false</code> is interpreted as <code>0</code>, and <code>true</code> is interpreted as <code>1</code>)</p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p><code>1 - p</code> (where <code>false</code> is interpreted as <code>0</code>, and <code>true</code> is interpreted as <code>1</code>)</p>
</td>
</tr>
<tr>
<td class="hdlist1">
See also
</td>
<td class="hdlist2">
<p>Bernoulli(p), <a href="#law-ref">[law-ref]</a>, page 302</p>
</td>
</tr>
</table>
</div>
</li>
<li>
<p><code>dist</code> <code>int</code> <strong>binomial</strong><code>(int n, real p)</code></p>
<div class="paragraph">
<p>Number of successes when performing <code>n</code> experiments <code>(n &gt; 0)</code> with chance <code>p</code> <code>(0 &lt;= p &lt;= 1)</code>.</p>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Range
</td>
<td class="hdlist2">
<p><code>{0, 1, ..., n}</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>n * p</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p><code>n * p * (1 - p)</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
See also
</td>
<td class="hdlist2">
<p>bin(n, p), <a href="#law-ref">[law-ref]</a>, page 304</p>
</td>
</tr>
</table>
</div>
</li>
<li>
<p><code>dist</code> <code>int</code> <strong>geometric</strong><code>(real p)</code></p>
<div class="paragraph">
<p>Geometric distribution, number of failures before success for an experiment with chance <code>p</code> <code>(0 &lt; p &lt;= 1)</code>.</p>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Range
</td>
<td class="hdlist2">
<p><code>{0, 1, ...}</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>(1 - p) / p</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p><code>(1 - p) / p^2</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
See also
</td>
<td class="hdlist2">
<p>geom(p), <a href="#law-ref">[law-ref]</a>, page 305</p>
</td>
</tr>
</table>
</div>
</li>
<li>
<p><code>dist</code> <code>int</code> <strong>poisson</strong><code>(real lambda)</code></p>
<div class="paragraph">
<p>Poisson distribution.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/distribution_plots/poisson.svg" alt="poisson">
</div>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Range
</td>
<td class="hdlist2">
<p><code>{0, 1, ...}</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>lambda</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p><code>lambda</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
See also
</td>
<td class="hdlist2">
<p>Poison(lambda), <a href="#law-ref">[law-ref]</a>, page 308</p>
</td>
</tr>
</table>
</div>
</li>
<li>
<p><code>dist</code> <code>int</code> <strong>uniform</strong><code>(int a, b)</code></p>
<div class="paragraph">
<p>Integer uniform distribution from <code>a</code> to <code>b</code> excluding the upper bound.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/distribution_plots/disc_uni.svg" alt="disc uni">
</div>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Range
</td>
<td class="hdlist2">
<p><code>{a, a+1, ..., b-1}</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>(a + b - 1) / 2</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p><code>((b - a)^2 - 1) / 12</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
See also
</td>
<td class="hdlist2">
<p>DU(a, b - 1), <a href="#law-ref">[law-ref]</a>, page 303</p>
</td>
</tr>
</table>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>









</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-continuous-distributions">Continuous distributions</h4>
<div class="ulist">
<ul>
<li>
<p><code>dist</code> <code>real</code> <strong>beta</strong><code>(real p, q)</code></p>
<div class="paragraph">
<p>Beta distribution with shape parameters <code>p</code> and <code>q</code>, with <code>p &gt; 0</code> and <code>q &gt; 0</code>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/distribution_plots/beta.svg" alt="beta">
</div>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Range
</td>
<td class="hdlist2">
<p><code>[0, 1]</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>p / (p + q)</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p><code>p * q / ((p + q)^2 * (p + q + 1))</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
See also
</td>
<td class="hdlist2">
<p>Beta(p, q), <a href="#law-ref">[law-ref]</a>, page 291</p>
</td>
</tr>
</table>
</div>
</li>
<li>
<p><code>dist</code> <code>real</code> <strong>erlang</strong><code>(double m, int k)</code></p>
<div class="paragraph">
<p>Erlang distribution with <code>k</code> a positive integer and <code>m &gt; 0</code>.
Equivalent to <code>gamma(k, m / k)</code>.</p>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>m</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p><code>m * m / k</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
See also
</td>
<td class="hdlist2">
<p>ERL(m, k), <a href="#banks-ref">[banks-ref]</a>, page 153</p>
</td>
</tr>
</table>
</div>
</li>
<li>
<p><code>dist</code> <code>real</code> <strong>exponential</strong><code>(real m)</code></p>
<div class="paragraph">
<p>(Negative) exponential distribution with mean <code>m</code>, with <code>m &gt; 0</code>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/distribution_plots/exponential.svg" alt="exponential">
</div>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Range
</td>
<td class="hdlist2">
<p><code>[0, infinite)</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>m</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p><code>m * m</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
See also
</td>
<td class="hdlist2">
<p>expo(m), <a href="#law-ref">[law-ref]</a>, page 283</p>
</td>
</tr>
</table>
</div>
</li>
<li>
<p><code>dist</code> <code>real</code> <strong>gamma</strong><code>(real a, b)</code></p>
<div class="paragraph">
<p>Gamma distribution, with shape parameter <code>a &gt; 0</code> and scale parameter <code>b &gt; 0</code>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/distribution_plots/gamma.svg" alt="gamma">
</div>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>a * b</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p><code>a * b^2</code></p>
</td>
</tr>
</table>
</div>
</li>
<li>
<p><code>dist</code> <code>real</code> <strong>lognormal</strong><code>(real m, v2)</code></p>
<div class="paragraph">
<p>Log-normal distribution.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/distribution_plots/lognormal.svg" alt="lognormal">
</div>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Range
</td>
<td class="hdlist2">
<p><code>[0, infinite)</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>exp(m + v2/2)</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p><code>exp(2*m + v2) * (exp(v2) - 1)</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
See also
</td>
<td class="hdlist2">
<p>N(m, v2), <a href="#law-ref">[law-ref]</a>, page 290</p>
</td>
</tr>
</table>
</div>
</li>
<li>
<p><code>dist</code> <code>real</code> <strong>normal</strong><code>(real m, v2)</code></p>
<div class="paragraph">
<p>Normal distribution.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/distribution_plots/normal.svg" alt="normal">
</div>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Range
</td>
<td class="hdlist2">
<p><code>(-infinite, infinite)</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>m</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p><code>v2</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
See also
</td>
<td class="hdlist2">
<p>N(m, v2), <a href="#law-ref">[law-ref]</a>, page 288</p>
</td>
</tr>
</table>
</div>
</li>
<li>
<p><code>dist</code> <code>real</code> <strong>random</strong><code>()</code></p>
<div class="paragraph">
<p>Random number generator.</p>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Range
</td>
<td class="hdlist2">
<p><code>[0, 1)</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>0.5</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p><code>1 / 12</code></p>
</td>
</tr>
</table>
</div>
</li>
<li>
<p><code>dist</code> <code>real</code> <strong>triangle</strong><code>(real a, b, c)</code></p>
<div class="paragraph">
<p>Triangle distribution, with <code>a &lt; b &lt; c</code>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/distribution_plots/triangle.svg" alt="triangle">
</div>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Range
</td>
<td class="hdlist2">
<p><code>[a, c]</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>(a + b + c) /3</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p><code>(a^2 + c^2 + b^2 - a*b - a*c - b*c) / 18</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
See also
</td>
<td class="hdlist2">
<p>Triangle(a, c, b), <a href="#law-ref">[law-ref]</a>, page 300</p>
</td>
</tr>
</table>
</div>
</li>
<li>
<p><code>dist</code> <code>real</code> <strong>uniform</strong><code>(real a, b)</code></p>
<div class="paragraph">
<p>Real uniform distribution from <code>a</code> to <code>b</code>, excluding upper bound.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/distribution_plots/cont_uni.svg" alt="cont uni">
</div>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Range
</td>
<td class="hdlist2">
<p><code>[a, b)</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>(a + b) / 2</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p><code>(b - a)^2 / 12</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
See also
</td>
<td class="hdlist2">
<p>U(a,b), <a href="#law-ref">[law-ref]</a>, page 282, except that distribution has an inclusive upper bound.</p>
</td>
</tr>
</table>
</div>
</li>
<li>
<p><code>dist</code> <code>real</code> <strong>weibull</strong><code>(real a, b)</code></p>
<div class="paragraph">
<p>Weibull distribution with shape parameter <code>a</code> and scale parameter <code>b</code>, with <code>a &gt; 0</code> and <code>b &gt; 0</code>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/distribution_plots/weibull.svg" alt="weibull">
</div>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
Range
</td>
<td class="hdlist2">
<p><code>[0, infinite)</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Mean
</td>
<td class="hdlist2">
<p><code>(b / a) * G(1 / a)</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
Variance
</td>
<td class="hdlist2">
<p><code>(b^2 / a) * (2 * G(2 / a) - (1 / a) * G(1 / a)^2)</code> with <code>G(x)</code> the Gamma function,
<code>G(x)</code> <code>=</code> integral over <code>t</code> from <code>0</code> to <code>infinity</code>, for <code>t^(x - 1) * exp(-t)</code></p>
</td>
</tr>
<tr>
<td class="hdlist1">
See also
</td>
<td class="hdlist2">
<p>Weibull(a, b), <a href="#law-ref">[law-ref]</a>, page 284</p>
</td>
</tr>
</table>
</div>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="ref-references">References</h4>
<div class="ulist bibliography">
<ul class="bibliography">
<li>
<p><a id="banks-ref"></a>[banks-ref] Handbook of Simulation,
Principles, Methodology, Advances, Applications, and Practice,
editor Jerry Banks,
publisher John Wiley &amp; Sons, inc, 1998</p>
</li>
<li>
<p><a id="law-ref"></a>[law-ref] Simulation Modeling &amp; Analysis, fourth edition,
by Averill M. Law,
publisher McGraw-Hill, International Edition, 2007,
ISBN 978-007-125519-6</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect2">
<h3 id="ref-chapter-types">Types</h3>
<div class="paragraph">
<p>
A type defines the set of possible values of an expression or a variable.
Its syntax is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/type.png" alt="type">
</div>
</div>
<div class="ulist">
<ul>
<li>
<p>The <code>ElementaryType</code> block contains types that do not build on other types.
They are explained further in <a href="#ref-elementary-type">Elementary types</a>.</p>
</li>
<li>
<p>The <code>ContainerType</code> block contains types that can store values of a single
other type, the 'list', 'set', and 'dictionary' type. These types are further
explained in <a href="#ref-container-type">Container types</a>.</p>
</li>
<li>
<p>The <code>TupleType</code> block describes 'tuples', a type that can hold values of
several other types.</p>
</li>
<li>
<p>The <code>ChannelType</code> blocks describes communication channels that connect
processes with each other, see <a href="#ref-channel-type">Channel type</a> for more explanation.</p>
</li>
<li>
<p>The <code>DistributionType</code> block contains the stochastic distribution type,
explained in <a href="#ref-distribution-type">Distribution type</a>.</p>
</li>
<li>
<p>The <code>FunctionType</code> can hold a function definition. It allows you to pass
a function to a process or another function. It is further explained in
<a href="#ref-function-type">Function type</a>.</p>
</li>
<li>
<p>The <code>ProcessType</code> can hold a process definition. It allows you to pass
a process definition to a another process. It is further explained in
<a href="#ref-process-type">Process type</a>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The <code>TypeName</code> is the name of a type defined with a <code>type</code> definition
(explained in <a href="#ref-type-definitions">Type definitions</a>). For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">type lot = real;

model M():
    lot x;

    ...
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>lot x</code> variable declaration (explained in <a href="#ref-variable-declarations">Local variables</a>)
uses the type definition of <code>lot</code> at the first line to define the type of
variable <code>x</code>.</p>
</div>
<div class="paragraph">
<p>The <code>EnumTypeName</code> is similar, except it uses an enumeration definition (see
<a href="#ref-enum-definitions">Enumeration definitions</a>) as type. For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">enum FlagColours = {red, white, blue};

model M():
    FlagColours x = white;

    ...
end</code></pre>
</div>
</div>
<div class="paragraph">
<p>The <code>FlagColours x</code> variable declaration defines that variable <code>x</code> has the
type of the enumeration, and can hold its values.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="sect3">
<h4 id="ref-elementary-type">Elementary types</h4>
<div class="paragraph">
<p>The elementary types do not depend on other types to define their set of
allowed values. Their syntax is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/elementary_type.png" alt="elementary type">
</div>
</div>
<div class="paragraph">
<p>As you can see, they are mostly just a single keyword. The
<code>ConstantExpression</code> nodes in the <code>matrix</code> type line are integer
expressions with a fixed (and known) value before execution of the program.
More information about the elementary types is provided below.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="sect4">
<h5 id="ref-boolean-type">Boolean type</h5>
<div class="paragraph">
<p>The <code>bool</code> keyword denotes the boolean data type. The allowed values are
<code>false</code> and <code>true</code>. While it is allowed to store boolean values in other
data types, their most frequent use is in expressions of statements that
decide what to do, for example, the condition in the <code>while</code>, <code>if</code> or
select statement (see <a href="#ref-while-loop-statement">While loop statement</a>,
<a href="#ref-choice-statement">Choice statement</a> and <a href="#ref-select-statement">Select statement</a>).
Expressions with booleans are explained in <a href="#ref-boolean-expression">Boolean expressions</a>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="ref-integer-type">Integer type</h5>
<div class="paragraph">
<p>The <code>int</code> keyword denotes the integer data type, integer numbers from
<code>2147483647</code> to <code>-2147483648</code> (a standard signed 32 bit number). Values outside
that range give undefined behavior.
Expressions with integers are explained in <a href="#ref-integer-expression">Integer expressions</a>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="ref-real-type">Real type</h5>
<div class="paragraph">
<p>The <code>real</code> keyword denotes the real number data type, real numbers between
<code>4.94065645841246544e-324</code> to <code>1.79769313486231570e+308</code> positive or negative (a
standard 8 bytes IEEE 754 number). As normal with floating point numbers in
computer systems, many  values are missing from the above range. Expect
rounding errors with each calculation.
Expressions with real numbers are explained in <a href="#ref-real-expression">Real number expressions</a>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="ref-string-type">String type</h5>
<div class="paragraph">
<p>The <code>string</code> keyword denotes strings, sequences of characters. It contains
all printable ASCII characters U+0020 to U+007E, and 'tab' (U+0009) and
'new line' (U+000A).
Expressions with strings are explained in <a href="#ref-string-expression">String expressions</a>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="ref-file-type">File type</h5>
<div class="paragraph">
<p>The <code>file</code> keyword denotes a file at the file system of the computer. It
allows reading and writing values of many data types (not all data types can
be read or written). Expressions with files are explained in
<a href="#ref-file-expression">File handle expressions</a>.
How to work with files is explained in <a href="#tut-chapter-input-and-output">Input and output</a>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="ref-inst-type">Instance type</h5>
<div class="paragraph">
<p>The <code>inst</code> keyword denotes an instance type, it can store a running
process. Its use is to check whether the stored process has ended.
The <a href="#ref-finish-statement">Finish statement</a> gives more details and provides an example.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="ref-timer-type">Timer type</h5>
<div class="paragraph">
<p>The <code>timer</code> keyword denotes a count-down timer. Variables of this type
measure time that has passed since their initialization. Expressions with
timers are given in <a href="#ref-timer-expression">Timer expressions</a>, a tutorial about using
timers can be found in <a href="#tut-using-timers">Timers</a>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="ref-matrix-type">Matrix type</h5>
<div class="paragraph">
<p>The <code>matrix</code> type takes two constant expressions that define the number of
rows and the number of columns of the matrix. The main purpose of the data
type is to allow temporary storage of matrices so they can be passed on to
other software. The Chi language also has expressions to write literal
matrices, see <a href="#ref-matrix-expression">Matrix expression</a> for details.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="ref-void-type">Void type</h5>
<div class="paragraph">
<p>The <code>void</code> type denotes that no data is involved. Values of type <code>void</code> do
not exist. The type is allowed at two places in the Chi specification, namely</p>
</div>
<div class="ulist">
<ul>
<li>
<p>As data type of synchronization channels. Further explanation can be found
at <a href="#ref-communication-statements">Communication statements</a> and <a href="#ref-channel-type">Channel type</a>.</p>
</li>
<li>
<p>As exit type of <a href="#ref-model-definitions">Model definitions</a> and
<a href="#ref-process-definitions">Process definitions</a>, to express that it may return an exit value
from an <a href="#ref-exit-statement">Exit statement</a> without arguments.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="ref-container-type">Container types</h4>
<div class="paragraph">
<p>The main function of container types is to organize and hold a collection of
values of another type (the <em>element type</em>).
The syntax diagram of the container types is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/container_type.png" alt="container type">
</div>
</div>
<div class="paragraph">
<p>The language has three container types, <em>lists</em> (explained in
<a href="#ref-list-type">List type</a>), <em>sets</em> (explained in <a href="#ref-set-type">Set type</a>), and
<em>dictionaries</em> (explained in <a href="#ref-dictionary-type">Dictionary type</a>).</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
<div class="sect4">
<h5 id="ref-list-type">List type</h5>
<div class="paragraph">
<p>The list type has an ordered collection of values from its element type as its
value. Duplicate element values are allowed.</p>
</div>
<div class="paragraph">
<p>The syntax of a list type is given below.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/list_type.png" alt="list type">
</div>
</div>
<div class="paragraph">
<p>It starts with the keyword <code>list</code>, optionally followed by a parenthesized
(non-negative) integer expression denoting the initial number of element
values in the collection, and finally the type of the element values.</p>
</div>
<div class="paragraph">
<p>The default size of the collection is the value of the integer expression, or
0 if there is no such expression. The value of the elements in the initial
list value depends on the type of the elements.</p>
</div>
<div class="paragraph">
<p>A few examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">list bool    # A list of boolean values, initial value is &lt;bool&gt;[]
list (2) int # A list of integer values, initial value is [0, 0]</code></pre>
</div>
</div>
<div class="paragraph">
<p>For a discussion of operations on values of this type,
see <a href="#ref-list-expression">List expressions</a>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="ref-set-type">Set type</h5>
<div class="paragraph">
<p>The set type has an unordered collection of values from its element type as
its value. Duplicate element values are silently discarded.</p>
</div>
<div class="paragraph">
<p>The syntax of the set type is given below.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/set_type.png" alt="set type">
</div>
</div>
<div class="paragraph">
<p>The set type starts with a <code>set</code> keyword, followed by the type of its
elements. Its initial value is the empty set.
An example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">set real  # A set of real numbers, initial value &lt;real&gt;{}.</code></pre>
</div>
</div>
<div class="paragraph">
<p>For a discussion of operations on values of this type, see
<a href="#ref-set-expression">Set expressions</a>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect4">
<h5 id="ref-dictionary-type">Dictionary type</h5>
<div class="paragraph">
<p>The dictionary type has an unordered collection of values of its key type, so
called keys. The keys are unique in the collection. In addition,
the dictionary has a value of its value type associated with each key.</p>
</div>
<div class="paragraph">
<p>The syntax of a dictionary type is given below.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/dictionary_type.png" alt="dictionary type">
</div>
</div>
<div class="paragraph">
<p>The syntax starts with a <code>dict</code> keyword, and the key type and value type
between parentheses, separated by a colon.
The initial value of a dictionary type is the empty dictionary. An example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">dict (bool : int)  # A dictionary with boolean keys, and integer values.
                   # Initial value &lt;bool:int&gt;{}.</code></pre>
</div>
</div>
<div class="paragraph">
<p>For a discussion of operations on values of this type, see
<a href="#ref-dictionary-expression">Dictionary expressions</a>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="ref-tuple-type">Tuple type</h4>
<div class="paragraph">
<p>A tuple contains a fixed number of values of (possibly) different types. Its
syntax is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/tuple_type.png" alt="tuple type">
</div>
</div>
<div class="paragraph">
<p>A tuple type starts with the keyword <code>tuple</code>, followed by the list of its
fields between parentheses. Each field has a name and a type. Sequences of
fields with the same type can share their type description, which reduces the
amount of text of the tuple type.
Tuple types must have at least two fields.</p>
</div>
<div class="paragraph">
<p>Examples:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="chi">tuple(int a, b)      # A tuple containing fields 'a' and 'b', both of type int
tuple(int a; int b)  # A tuple containing fields 'a' and 'b', both of type int

tuple(lot x; real start) # A tuple with a 'lot' and a 'real' type.</code></pre>
</div>
</div>
<div class="paragraph">
<p>The first two examples are equivalent, the first form is just a bit shorter in
notation. The third example is more common fields of different types that are
kept together in the modeled system.
Expressions with tuples are discussed in <a href="#ref-tuple-expression">Tuple expression</a>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-channel-type">Channel type</h4>
<div class="paragraph">
<p>The channel type defines the direction and the type of values transported.
The syntax of the channel type is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/channel_type.png" alt="channel type">
</div>
</div>
<div class="paragraph">
<p>The <code>chan</code> keyword denotes a channel type is being created. It may be
followed by allowed directions of transport, a <code>!</code> means that sending values
is allowed but not for receiving, and a <code>?</code> means that receiving values is
allowed and sending is not allowed. Finally <code>!?</code> means
both sending and receiving is allowed. The latter is also selected when no
direction is specified.
The language silently discards allowed directions. A channel usable for both
sending and receiving may be used as a channel for sending only (dropping
the ability to receive at that point). It does not allow adding directions, a
receive-only channel cannot be used for sending. It can also not be used as a
channel for sending and receiving, even if then latter is only used for
receiving values (that is, sending is never done).</p>
</div>
<div class="paragraph">
<p>The type of data that is transported with a communication is given by the
<code>Type</code> block. Signalling channels (that only synchronize without
transporting data) are indicated by the <code>void</code> keyword.
The only expressions available for channels are the equality tests, and a
function to create new channels, see
<a href="#ref-channel-expression">Channel expressions</a> for details.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-distribution-type">Distribution type</h4>
<div class="paragraph">
<p>The distribution type represents a stochastic distribution. The syntax is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/distribution_type.png" alt="distribution type">
</div>
</div>
<div class="paragraph">
<p>A stochastic distribution allows modeling of random behavior, but with a known
chance distribution. The <code>Type</code> block in the <code>DistributionType</code> diagram
defines the type of values drawn. For a discussion of expressions for the
distribution type, see <a href="#ref-distribution-expression">Distribution expressions</a>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-function-type">Function type</h4>
<div class="paragraph">
<p>The function type can hold a function. Its syntax is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/function_type.png" alt="function type">
</div>
</div>
<div class="paragraph">
<p>A function type starts with the keyword <code>func</code> followed by the return type
of the function and the type of the formal parameters.
The purpose of the function type is to pass functions to processes or other
functions, for example, the predicate function in <code>sort</code> and <code>insert</code>, see
<a href="#ref-list-stdlib">List functions</a>.</p>
</div>
<div class="paragraph">
<p>
</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-process-type">Process type</h4>
<div class="paragraph">
<p>The process type is similar to the function type (discussed in
<a href="#ref-function-type">Function type</a>), except this type can hold a process definition.
The syntax is</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./reference-manual/rail_diagrams/process_type.png" alt="process type">
</div>
</div>
<div class="paragraph">
<p>The type starts with the keyword <code>proc</code> followed by the formal parameters of
the process definition to store between parentheses.
Expressions with process types are explained in <a href="#ref-process-expression">Process expressions</a>.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="ref-chapter-lexical-syntax">Lexical syntax</h3>
<div class="paragraph">
<p>At the lowest level, a Chi specification file consists of a sequence of
characters. The characters are grouped together to form keywords, names,
literal values such as numbers, and symbols such as expression operators
like <code>+</code> and statement separator <code>;</code>. Also comments are recognized at this
level.</p>
</div>
<div class="sect3">
<h4 id="ref-whitespace">Whitespace</h4>
<div class="paragraph">
<p>The characters that delimit groups and lines from each other is known as
<em>whitespace</em>. It contains the 'tab' character (U0009), the 'line feed'
character (U000A), the 'carriage return' character (U000D), and the 'space'
character (U0020).</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-comment">Comment</h4>
<div class="paragraph">
<p>A comment is a line of text intended for annotating the program text. It can
also be used to (temporarily) add or remove statements.
In the latter case, do note that the meaning of the program may change.</p>
</div>
<div class="paragraph">
<p>A line of comment starts with a 'hash' character <code>#</code>, and continues
until a 'line feed' character (or the end of the file). All characters in the
comment are ignored by the simulator.</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-lexical-names">Names</h4>
<div class="paragraph">
<p>A name is a word-like group of characters. It may start with a <code>$</code> prefix.
After the prefix (if one is provided), first a letter (<code>A</code> to <code>Z</code> or <code>a</code>
to <code>z</code>) or an 'underscore' character <code>_</code> should be used, optionally
followed by more letters, 'underscore' characters, or digits <code>0</code> to <code>9</code>.</p>
</div>
<div class="paragraph">
<p>Some names are special in the sense that the Chi language reserves them for
its own use, for example the names <code>model</code> and <code>end</code>. Keywords are always
written using lowercase letters. In the grammar diagrams, the keywords are
shown in a rounded box. Names starting with a <code>$</code> prefix are never used as
keyword.</p>
</div>
<div class="paragraph">
<p>Names not used as keyword can be used to give entities in the Chi program a
unique identification. In the grammar of this reference manual names are split
according to the kind of entity that they refer to:</p>
</div>
<div class="dlist">
<dl>
<dt class="hdlist1">ConstantName</dt>
<dd>
<p>Name that refers to a constant value, see <a href="#ref-constant-definitions">Constant definitions</a>
for details.</p>
</dd>
<dt class="hdlist1">EnumtypeName</dt>
<dd>
<p>Name that refers to an enum type, see <a href="#ref-enum-definitions">Enumeration definitions</a> for
details.</p>
</dd>
<dt class="hdlist1">EnumvalueName</dt>
<dd>
<p>Name that refers to a value within an enum type, see
<a href="#ref-enum-value-expression">Enumeration value</a> for details.</p>
</dd>
<dt class="hdlist1">FieldName</dt>
<dd>
<p>Name that refers to a field in a tuple type, see <a href="#ref-tuple-type">Tuple type</a>
for more details about tuples.</p>
</dd>
<dt class="hdlist1">FunctionName</dt>
<dd>
<p>Name that refers to a function definition, see
<a href="#ref-function-definitions">Function definitions</a> for details.</p>
</dd>
<dt class="hdlist1">ModelName</dt>
<dd>
<p>Name that refers to a model definition, see <a href="#ref-model-definitions">Model definitions</a>
for details.</p>
</dd>
<dt class="hdlist1">ProcessName</dt>
<dd>
<p>Name that refers to a process definition, see
<a href="#ref-process-definitions">Process definitions</a> for details.</p>
</dd>
<dt class="hdlist1">TypeName</dt>
<dd>
<p>Name that refers to a type, see <a href="#ref-type-definitions">Type definitions</a> for details.</p>
</dd>
<dt class="hdlist1">VariableName</dt>
<dd>
<p>Name that refers to a variable (see <a href="#ref-variable-declarations">Local variables</a>) or
formal parameter in a process or function (see <a href="#ref-formal-parameters">Formal parameters</a>).</p>
</dd>
</dl>
</div>
<div class="paragraph">
<p>Names are also shown in a rounded box, but as shown above, start with an
uppercase letter and end with <code>Name</code>.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="ref-chapter-migration">Model migration</h3>
<div class="paragraph">
<p>There are currently no migrations to upgrade from older versions of Chi.</p>
</div>
</div>
<div class="sect2">
<h3 id="ref-chapter-svg-visualization">SVG visualization</h3>
<div class="paragraph">
<p>The Chi simulator has the possibility to display an SVG file during the
simulation. The model can modify the displayed image depending on the state of
the simulated system, thus visualizing the system.</p>
</div>
<div class="paragraph">
<p>Such a visualization is useful for getting a quick global verification, as
well as explaining the purpose of the model to people that do not know the
detailed ins and outs of the problem being solved.</p>
</div>
<div class="paragraph">
<p>Below are the technical details of the SVG visualization. The tutorial has a
<a href="#tut-chapter-svg-visualization">more gentle introduction</a> into the subject.</p>
</div>
<div class="sect3">
<h4 id="ref-svg-interface">SVG interface</h4>
<div class="paragraph">
<p>The SVG visualization itself is controlled by the simulator. Normally, it is
updated just before a time step is performed. The simulation can however
force an update with the <code>redraw</code> command (see below for details).</p>
</div>
<div class="paragraph">
<p>The simulation accesses the SVG visualization by opening a file for writing
with a name like <code>SVG:xyz.svg</code>. The <code>SVG:</code> prefix redirects the request to
the SVG visualizer, the <code>xyz.svg</code> suffix is the name of the SVG file to
display. The file should be available at the file system.</p>
</div>
<div class="paragraph">
<p>Different Chi processes may open the same file at the same time. The SVG
visualizer can only display one SVG file at a time, it is not allowed for
processes to open different <code>.svg</code> files.</p>
</div>
</div>
<div class="sect3">
<h4 id="ref-visualization-modification-commands">Visualization modification commands</h4>
<div class="paragraph">
<p>After opening the file, the content of the SVG file can be changed by
modifying the nodes. This is done by writing lines with commands (one command
at each line). Available commands are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><strong>Copy an element (recursively)</strong></p>
<div class="paragraph">
<p><code>copy [orig-id], [opt-prefix], [op-suffix]</code>, with <code>[orig-id]</code> the
id-name of the element to copy, <code>[opt-prefix]</code> an optional prefix that is
added to the <code>id</code> of all copied elements, and <code>[opt-suffix]</code> an optional
suffix that is added to the <code>id</code> of all copied elements. Since the <code>id</code>
of all elements must be unique, leaving both the prefix and the suffix empty
gives an error about duplicate <code>id</code> labels.</p>
</div>
<div class="paragraph">
<p>Note that the element (and its descendants) is only copied, but not moved.
In other words, after copying it is fully obscured by the original element.
The next step is normally an absolute move command or an attribute command
to perform a relative translate transformation.</p>
</div>
</li>
<li>
<p><strong>Move an element to an absolute position</strong></p>
<div class="paragraph">
<p><code>absmove [id] ([xpos], [ypos])</code> with <code>[id]</code> the id-name of the
element to move, <code>[xpos]</code> the horizontal position to move to, and
<code>[ypos]</code> the vertical position to move to. This operation adds a
translation to the <code>transform</code> attribute of the node such that the
top-left corner of the bounding rectangle is moved to the provided position.
It also takes the existing transformation into account, and in doing so,
will fail if the transformation cannot be reversed.</p>
</div>
<div class="paragraph">
<p>The origin of the coordinate system is at the top-left of the SVG
visualization window, with positive X running to the right, and positive Y
running down.</p>
</div>
<div class="paragraph">
<p>Avoid using this operation repeatedly on the same element. Instead move it
once to a base position, and perform relative translate transformations
on a child element to move it to the desired position.</p>
</div>
</li>
<li>
<p><strong>Change an attribute of an element</strong></p>
<div class="paragraph">
<p><code>attr [id].[atrribute] = [value]</code> with <code>[id]</code> the id-name of the
element, <code>[attribute]</code> the name of the attribute of the element to change,
and <code>[value]</code> the new value of the attribute.</p>
</div>
<div class="paragraph">
<p>A change overwrites any previous value of the attribute. Also, names of
attributes and syntax of values are not checked.</p>
</div>
</li>
<li>
<p><strong>Change the text of an element</strong></p>
<div class="paragraph">
<p><code>text [id] = [value]</code> with <code>[id]</code> the id-name of the element, and
<code>[value]</code> the new text.</p>
</div>
</li>
<li>
<p><strong>Force a redraw of the image</strong></p>
<div class="paragraph">
<p>Normally the program redraws the SVG image when it detects a change in time
after making changes in the image by using one of the previous commands.
With this command you can fake a change in time, thus allowing you to also
display intermediate states.</p>
</div>
<div class="paragraph">
<p>The command is mostly useful in experiments, where time never changes.</p>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="tool-chapter-tool-manual">Chi Tool Manual</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This manual explains how to use the Chi simulation software. Before using
the software however, you need to install it. The software is part of the
Eclipse ESCET software.</p>
</div>
<div class="paragraph">
<p>Once you&#8217;re finished installing, you can start to
<a href="#tool-chapter-software-operation">simulate</a> Chi programs. The easiest way to
start simulation is to press the <em>F9</em> key in a Chi text editor, or when a Chi
(a file with a <code>.chi</code> extension) is selected in the
<em>Project Explorer</em> or <em>Package Explorer</em> tab.</p>
</div>
<div class="paragraph">
<p><em>Topics</em></p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#tool-chapter-software-operation">Available operations on a <code>chi</code> file</a></p>
</li>
<li>
<p><a href="#tool-chapter-command-line">Command line options</a></p>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="tool-chapter-software-operation">Software operation</h3>
<div class="paragraph">
<p>The Chi simulator software performs two steps internally:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Type checking of the Chi source file, and building a simulator for it.</p>
</li>
<li>
<p>Running the created simulator.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Starting with a <code>.chi</code> source file, both steps have to be performed for a
simulation. As this is the common situation, the software normally combines
both steps.
If you run many experiments with the same file, it becomes useful to skip the
first step. How to do this is explained in <a href="#tool-compile-or-simulate">Compile only</a>.
In addition, the software can be run from the command line. In that case,
command-line options as explained in <a href="#tool-chapter-command-line">Command line options</a> need to be
specified.</p>
</div>
<div class="sect3">
<h4 id="tool-compile-and-simulate">Compile and simulate</h4>
<div class="paragraph">
<p>Normally, you want to simulate a <code>.chi</code> source file. The Chi simulator
software uses two steps internally (first checking the input and building the
simulator, then running the just created simulator), but these steps are
combined in the dialog.</p>
</div>
<div class="paragraph">
<p>The process starts by selecting the source file you want to use (a file with
a <code>.chi</code> extension) in the <em>Project Explorer</em> or <em>Package Explorer</em> tab, and opening the
popup menu with the right mouse button from that selection.
Alternatively, open the file in the editor, and use the right mouse button to
get a similar popup menu.</p>
</div>
<div class="paragraph">
<p>From the popup menu, select <em>Simulate Chi file</em> entry. The
selection causes the <em>Console</em> view to be opened in Eclipse, and a
dialog window pops up to set the simulator options like below.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tool-manual/chi_simulator_dialog.png" alt="chi simulator dialog">
</div>
</div>
<div class="paragraph">
<p>The dialog shows the source file being used in the <em>Input file path</em> box.
Below it, in the <em>Instance</em> box, you can enter how to run the
model or the experiment of the source file. The syntax of the input is the same
as you would
write it in your Chi file. For example, with a model definition
<code>model M(list real xs, int n): ... end</code>, you could write <code>M([1.5, 2.81], 15)</code> as
model instantiation. If you leave the entry empty, the simulator tries to find
an experiment without any parameters (for example <code>X()</code>). If that fails, it
tries to find a model without any parameters (typically <code>M()</code>). If both
attempts fail, or the simulator finds more than one such experiment or model,
an error is reported.</p>
</div>
<div class="paragraph">
<p>If you want to set an initial seed (see
<a href="#tut-simulating-stochastic-behavior">Simulating stochastic behavior</a> for a discussion), you can use the
<em>Initial seed value</em> box. Value <code>0</code> means 'create a new one'.</p>
</div>
<div class="paragraph">
<p>This is all you have to do, select <em>OK</em> at the bottom. The software
performs its two steps, and if no errors are found, it runs the model.</p>
</div>
<div class="sect4">
<h5 id="tool-quick-simulate">Quick simulate</h5>
<div class="paragraph">
<p>For files that do not need any further configuration before
they are run, there is a <em>Quick simulate Chi file</em>. This menu
option assumes the default configuration (a parameter-less experiment or
model needs to be run with a new seed), skips the dialog (saving you from
having to press <em>OK</em>) and immediately proceeds with processing the Chi file.</p>
</div>
<div class="paragraph">
<p>This functionality is also available from the Chi text editor, by pressing
the <em>F9</em> key. Alternatively, you can select a Chi file in the
<em>Project Explorer</em> or <em>Package Explorer</em>, and press the
<em>F9</em> key.</p>
</div>
</div>
</div>
<div class="sect3">
<h4 id="tool-compile-or-simulate">Compile only</h4>
<div class="paragraph">
<p>The above is convenient for simple experiments, but checking the input and
building a simulator each time is tedious if you want to do several
experiments with the same source file.
For this reason, each step can be done separately as well.</p>
</div>
<div class="paragraph">
<p>Only building a simulator starts in the same way as above, select a <code>.chi</code>
source file from the <em>Project Explorer</em>, the <em>Package Explorer</em>
or an editor window, and right-click at it. Select the <em>Simulate Chi file</em>
option from the popup menu. As the file only gets compiled, the
simulator options are of no interest. Instead switch to the <em>Compiler</em>
tab. It looks like this:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./tool-manual/chi_compiler_dialog.png" alt="chi compiler dialog">
</div>
</div>
<div class="paragraph">
<p>Most settings are only useful for developers, but at the bottom, check the
<em>Write the compiled Java code to a .cchi file</em> box, and click
<em>OK</em> at the bottom. Setting this option causes the simulator
software to check the input file, build a simulator, write the constructed
simulator to a <code>.cchi</code> file (a compiled Chi file), and quit. No simulation
of the Chi model is performed at this time.</p>
</div>
</div>
<div class="sect3">
<h4 id="tool-simulate-a-compiled-model">Simulate a compiled model</h4>
<div class="paragraph">
<p>You can simulate the Chi model from the <code>.cchi</code> file now, by selecting
that file as source file by right-clicking on it. Select the
<em>Simulate Chi file</em> or the <em>Quick simulate Chi file</em>
option as before, and proceed with setting the
simulator options and running the model as-if you selected a normal <code>.chi</code>
file, as explained in <a href="#tool-compile-and-simulate">Compile and simulate</a> above.</p>
</div>
</div>
<div class="sect3">
<h4 id="tool-terminating-a-simulation">Terminating a simulation</h4>
<div class="paragraph">
<p>A simulation ends when:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The model goes into a deadlock state,</p>
</li>
<li>
<p>An <code>exit</code> statement is performed (see <a href="#tut-exit">experiments</a>
in the tutorial),</p>
</li>
<li>
<p>The simulation is terminated by the user, via the console
<em>Terminate</em> button (explained below), or</p>
</li>
<li>
<p>A runtime error occurs.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The simulation can be stopped at any time by using the <em>Terminate</em> button
(image::./tool-manual/terminate_button.png[]),
located at the upper right corner of the console.
Note however that if the console does not have the focus, this button may not
be visible. If the button is not visible, click somewhere in the console to
make the button appear. If even then the button is still not available, it may
still appear if you <em>Maximize</em> the console. Also note that the
button has no effect while the simulator interactively asks for input from the
console. However, once the console input is provided, and <em>ENTER</em> is
pressed, the termination request will be processed.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="tool-chapter-command-line">Command line options</h3>
<div class="paragraph">
<p>When you run the Chi software from the command line, the interactive dialog
as shown in <a href="#tool-chapter-software-operation">Software operation</a> is not shown (at least not by
default), and everything has to be specified at the command line instead.</p>
</div>
<div class="paragraph">
<p>The Chi simulator software takes one input file, which is a filename
with <code>.chi</code> extension, or a filename with <code>.cchi</code> extension.</p>
</div>
<div class="paragraph">
<p>Below is a list of the available options of such a command line. Most of them
are for advanced uses only, and not of interest to most users.</p>
</div>
<div class="sect3">
<h4 id="tool-simulator-options">Simulator options</h4>
<div class="ulist">
<ul>
<li>
<p><code>--instance=&lt;instance&gt;</code>, <code>-i &lt;instance&gt;</code></p>
<div class="paragraph">
<p>Instantiate the model of the file as given by instance.
Default is instantiation of a model without parameters.</p>
</div>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="tool-general-application-options">General application options</h4>
<div class="ulist">
<ul>
<li>
<p><code>--help, -h</code></p>
<div class="paragraph">
<p>Prints the help text of the application to the console.</p>
</div>
</li>
<li>
<p><code>--option-dialog=&lt;bool&gt;</code></p>
<div class="paragraph">
<p>Whether to show the option dialog after the command line options have
been processed. Default is <code>off</code>.</p>
</div>
</li>
<li>
<p><code>--output-mode=&lt;outmode&gt;</code>, <code>-m &lt;outmode&gt;</code></p>
<div class="paragraph">
<p>The output mode. Specify <code>error</code> for errors only; <code>warning</code> for errors
and warnings only; <code>normal</code> (default) for errors, warnings, and normal
output; or <code>debug</code> for errors, warnings, normal, and debug output.</p>
</div>
</li>
<li>
<p><code>--show-license</code></p>
<div class="paragraph">
<p>Prints the license text of the application to the console.</p>
</div>
</li>
<li>
<p><code>--devmode=&lt;bool&gt;</code></p>
<div class="paragraph">
<p>Whether exceptional situations return limited user friendly information
(<code>--devmode=off</code>), or extended developer oriented information
(<code>--devmode=on</code>).
Default is user friendly information.</p>
</div>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="tool-compiler-options">Compiler options</h4>
<div class="ulist">
<ul>
<li>
<p><code>--emf=&lt;bool&gt;</code>, <code>-e &lt;bool&gt;</code></p>
<div class="paragraph">
<p>Whether or not to write the generated EMF model after type checking
(default is <code>off</code>).</p>
</div>
</li>
<li>
<p><code>--directory=&lt;dir&gt;</code>, <code>-d &lt;dir&gt;</code></p>
<div class="paragraph">
<p>Output directory for generated Java files. Output is not written when the
option is empty or not provided.</p>
</div>
</li>
<li>
<p><code>--java-compile=&lt;bool&gt;</code>, <code>-c &lt;bool&gt;</code></p>
<div class="paragraph">
<p>Whether or not to perform compilation of the generated Java code (default
is <code>on</code>).</p>
</div>
</li>
<li>
<p><code>--jar=&lt;bool&gt;</code>, <code>-j &lt;bool&gt;</code></p>
<div class="paragraph">
<p>Whether or not to write the compiled Java simulator classes (default is
<code>off</code>).</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="release-notes-chapter-index">Chi release notes</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The release notes for the releases of Chi and the associated tools, as
part of the Eclipse ESCET project, are listed below in reverse chronological
order.</p>
</div>
<div class="sect2">
<h3 id="version-0-1-unreleased">Version 0.1 (unreleased)</h3>
<div class="paragraph">
<p>The first release of Chi as part of the Eclipse ESCET project.</p>
</div>
<div class="paragraph">
<p></p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="legal-chapter-index">Legal</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The material in this documentation is
Copyright (c) 2010, 2020 Contributors to the Eclipse Foundation.</p>
</div>
<div class="paragraph">
<p>Eclipse ESCET and ESCET are trademarks of the Eclipse Foundation.
Eclipse, and the Eclipse Logo are registered trademarks of the
Eclipse Foundation. Other names may be trademarks of their
respective owners.</p>
</div>
<div class="paragraph">
<p><strong>License</strong></p>
</div>
<div class="paragraph">
<p>The Eclipse Foundation makes available all content in this document
("Content"). Unless otherwise indicated below, the Content is provided to you
under the terms and conditions of the MIT License. A copy of the MIT License
is available at <a href="https://opensource.org/licenses/MIT" class="bare">https://opensource.org/licenses/MIT</a>. For purposes of the
MIT License, "Software" will mean the Content.</p>
</div>
<div class="paragraph">
<p>If you did not receive this Content directly from the Eclipse Foundation,
the Content is being redistributed by another party ("Redistributor") and
different terms and conditions may apply to your use of any object code in
the Content. Check the Redistributor&#8217;s license that was provided with the
Content. If no such license exists, contact the Redistributor. Unless
otherwise indicated below, the terms and conditions of the MIT License
still apply to any source code in the Content and such source code may be
obtained at <a href="http://www.eclipse.org" class="bare">http://www.eclipse.org</a>.</p>
</div>
</div>
</div>
</div>
<style>
/* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */
pre.CodeRay{background:#f7f7f8}
.CodeRay .line-numbers{border-right:1px solid currentColor;opacity:.35;padding:0 .5em 0 0}
.CodeRay span.line-numbers{display:inline-block;margin-right:.75em}
.CodeRay .line-numbers strong{color:#000}
table.CodeRay{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.CodeRay td{vertical-align:top;line-height:inherit}
table.CodeRay td.line-numbers{text-align:right}
table.CodeRay td.code{padding:0 0 0 .75em}
.CodeRay .debug{color:#fff !important;background:#000080 !important}
.CodeRay .annotation{color:#007}
.CodeRay .attribute-name{color:#000080}
.CodeRay .attribute-value{color:#700}
.CodeRay .binary{color:#509}
.CodeRay .comment{color:#998;font-style:italic}
.CodeRay .char{color:#04d}
.CodeRay .char .content{color:#04d}
.CodeRay .char .delimiter{color:#039}
.CodeRay .class{color:#458;font-weight:bold}
.CodeRay .complex{color:#a08}
.CodeRay .constant,.CodeRay .predefined-constant{color:#008080}
.CodeRay .color{color:#099}
.CodeRay .class-variable{color:#369}
.CodeRay .decorator{color:#b0b}
.CodeRay .definition{color:#099}
.CodeRay .delimiter{color:#000}
.CodeRay .doc{color:#970}
.CodeRay .doctype{color:#34b}
.CodeRay .doc-string{color:#d42}
.CodeRay .escape{color:#666}
.CodeRay .entity{color:#800}
.CodeRay .error{color:#808}
.CodeRay .exception{color:inherit}
.CodeRay .filename{color:#099}
.CodeRay .function{color:#900;font-weight:bold}
.CodeRay .global-variable{color:#008080}
.CodeRay .hex{color:#058}
.CodeRay .integer,.CodeRay .float{color:#099}
.CodeRay .include{color:#555}
.CodeRay .inline{color:#000}
.CodeRay .inline .inline{background:#ccc}
.CodeRay .inline .inline .inline{background:#bbb}
.CodeRay .inline .inline-delimiter{color:#d14}
.CodeRay .inline-delimiter{color:#d14}
.CodeRay .important{color:#555;font-weight:bold}
.CodeRay .interpreted{color:#b2b}
.CodeRay .instance-variable{color:#008080}
.CodeRay .label{color:#970}
.CodeRay .local-variable{color:#963}
.CodeRay .octal{color:#40e}
.CodeRay .predefined{color:#369}
.CodeRay .preprocessor{color:#579}
.CodeRay .pseudo-class{color:#555}
.CodeRay .directive{font-weight:bold}
.CodeRay .type{font-weight:bold}
.CodeRay .predefined-type{color:inherit}
.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold}
.CodeRay .key{color:#808}
.CodeRay .key .delimiter{color:#606}
.CodeRay .key .char{color:#80f}
.CodeRay .value{color:#088}
.CodeRay .regexp .delimiter{color:#808}
.CodeRay .regexp .content{color:#808}
.CodeRay .regexp .modifier{color:#808}
.CodeRay .regexp .char{color:#d14}
.CodeRay .regexp .function{color:#404;font-weight:bold}
.CodeRay .string{color:#d20}
.CodeRay .string .string .string{background:#ffd0d0}
.CodeRay .string .content{color:#d14}
.CodeRay .string .char{color:#d14}
.CodeRay .string .delimiter{color:#d14}
.CodeRay .shell{color:#d14}
.CodeRay .shell .delimiter{color:#d14}
.CodeRay .symbol{color:#990073}
.CodeRay .symbol .content{color:#a60}
.CodeRay .symbol .delimiter{color:#630}
.CodeRay .tag{color:#008080}
.CodeRay .tag-special{color:#d70}
.CodeRay .variable{color:#036}
.CodeRay .insert{background:#afa}
.CodeRay .delete{background:#faa}
.CodeRay .change{color:#aaf;background:#007}
.CodeRay .head{color:#f8f;background:#505}
.CodeRay .insert .insert{color:#080}
.CodeRay .delete .delete{color:#800}
.CodeRay .change .change{color:#66f}
.CodeRay .head .head{color:#f4f}
</style>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  messageStyle: "none",
  tex2jax: {
    inlineMath: [["\\(", "\\)"]],
    displayMath: [["\\[", "\\]"]],
    ignoreClass: "nostem|nolatexmath"
  },
  asciimath2jax: {
    delimiters: [["\\$", "\\$"]],
    ignoreClass: "nostem|noasciimath"
  },
  TeX: { equationNumbers: { autoNumber: "none" } }
})
MathJax.Hub.Register.StartupHook("AsciiMath Jax Ready", function () {
  MathJax.InputJax.AsciiMath.postfilterHooks.Add(function (data, node) {
    if ((node = data.script.parentNode) && (node = node.parentNode) && node.classList.contains('stemblock')) {
      data.math.root.display = "block"
    }
    return data
  })
})
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_HTMLorMML"></script>
<!--
  Copyright (c) 2010, 2020 Contributors to the Eclipse Foundation

  See the NOTICE file(s) distributed with this work for additional
  information regarding copyright ownership.

  This program and the accompanying materials are made available under the terms
  of the MIT License which is available at https://opensource.org/licenses/MIT

  SPDX-License-Identifier: MIT
-->

<div id="footer">
<div id="footer-text">
<a href="https://www.eclipse.org">Eclipse Home</a>
|
<a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a>
|
<a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a>
|
<a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a>
|
<a href="https://www.eclipse.org/legal">Eclipse Legal</a>
</div>
</div>
</body>
</html>