Blame view

prism-4.3-linux64/doc/manual/ThePRISMLanguage/GlobalVariables.html 6.76 KB
8146dcf82   Thanasis Naskos   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
  
  <html>
  <head>
  
  <title>
  PRISM Manual | ThePRISMLanguage / GlobalVariables 
  </title>
  
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta name="keywords" content="prism, probabilistic, symbolic, model, checker, verification, birmingham, oxford, parker, norman, kwiatkowska">
  
  <link rel="icon" href="../pub/skins/offline/images/p16.ico" type="image/x-icon">
  <link rel="shortcut icon" href="../pub/skins/offline/images/p16.ico" type="image/x-icon">
  
  <!--HTMLHeader--><style type='text/css'><!--
    ul, ol, pre, dl, p { margin-top:0px; margin-bottom:0px; }
    code.escaped { white-space: nowrap; }
    .vspace { margin-top:1.33em; }
    .indent { margin-left:40px; }
    .outdent { margin-left:40px; text-indent:-40px; }
    a.createlinktext { text-decoration:none; border-bottom:1px dotted gray; }
    a.createlink { text-decoration:none; position:relative; top:-0.5em;
      font-weight:bold; font-size:smaller; border-bottom:none; }
    img { border:0px; }
    .editconflict { color:green; 
    font-style:italic; margin-top:1.33em; margin-bottom:1.33em; }
  
    table.markup { border:2px dotted #ccf; width:90%; }
    td.markup1, td.markup2 { padding-left:10px; padding-right:10px; }
    table.vert td.markup1 { border-bottom:1px solid #ccf; }
    table.horiz td.markup1 { width:23em; border-right:1px solid #ccf; }
    table.markup caption { text-align:left; }
    div.faq p, div.faq pre { margin-left:2em; }
    div.faq p.question { margin:1em 0 0.75em 0; font-weight:bold; }
    div.faqtoc div.faq * { display:none; }
    div.faqtoc div.faq p.question 
      { display:block; font-weight:normal; margin:0.5em 0 0.5em 20px; line-height:normal; }
    div.faqtoc div.faq p.question * { display:inline; }
     
      .frame 
        { border:1px solid #cccccc; padding:4px; background-color:#f9f9f9; }
      .lfloat { float:left; margin-right:0.5em; }
      .rfloat { float:right; margin-left:0.5em; }
  a.varlink { text-decoration:none; }
  
  .sourceblocklink {
    text-align: right;
    font-size: smaller;
  }
  .sourceblocktext {
    padding: 0.5em;
    border: 1px solid #808080;
    color: #000000;
    background-color: #f1f0ed;
  }
  .sourceblocktext div {
    font-family: monospace;
    font-size: small;
    line-height: 1;
    height: 1%;
  }
  .sourceblocktext div.head,
  .sourceblocktext div.foot {
    font: italic medium serif;
    padding: 0.5em;
  }
  
  --></style>  <meta name='robots' content='index,follow' />
  
  
  <link type="text/css" rel="stylesheet" href="../pub/skins/offline/css/base.css">
  <link type="text/css" rel="stylesheet" href="../pub/skins/offline/css/prism.css">
  <link type="text/css" rel="stylesheet" href="../pub/skins/offline/css/prismmanual.css">
  
  </head>
  
  <body text="#000000" bgcolor="#ffffff">
  
  <div id="layout-maincontainer">
  <div id="layout-main">
  
  <div id="prism-mainbox">
  
  <!-- ============================================================================= -->
  
  <!--PageHeaderFmt-->
  <!--/PageHeaderFmt-->
  
  <!--PageTitleFmt-->
    <div id="prism-man-title">
      <p><a class='wikilink' href='Main.html'>The PRISM Language</a> /
  </p><h1>Global Variables</h1>
  
    </div>
  <!--PageText-->
  <div id='wikitext'>
  <p>In addition to the local variables belonging to each module, a PRISM model can also include <em>global variables</em>,
  which can be written to, as well as read, by all modules.
  Like local variables, these can be integers or Booleans.
  Global variables are declared in identical fashion to a module's local variables,
  except that the declaration must not be inside the definition of any module.
  Some example declarations are as follows:
  </p>
  <div class='vspace'></div>
  <div class='sourceblock ' id='sourceblock1'>
    <div class='sourceblocktext'><div class="prism"><span class="prismkeyword">global</span> <span class="prismident">g</span> : [<span class="prismnum">1</span>..<span class="prismnum">10</span>];<br/>
  <span class="prismkeyword">global</span> <span class="prismident">b</span> : <span class="prismkeyword">bool</span> <span class="prismkeyword">init</span> <span class="prismkeyword">true</span>;<br/>
  </div></div>
    <div class='sourceblocklink'><a href='http://prismmodelchecker.localhost/manual/ThePRISMLanguage/GlobalVariables?action=sourceblock&amp;num=1' type='text/plain'>[&#036;[Get Code]]</a></div>
  </div>
  
  <p class='vspace'>A global variable can be modified by any module and provides another way for modules to interact.
  An important restriction on the use of global variables is the fact that commands which synchronise with other modules
  (i.e. those with an action label attached; see the section "<a class='wikilink' href='Synchronisation.html'>Synchronisation</a>") cannot modify global variables.
  PRISM will detect this and report an error.
  </p>
  </div>
  
  
  <!--PageFooterFmt-->
    <div id='prism-man-footer'>
    </div>
  <!--/PageFooterFmt-->
  
  
  <!-- ============================================================================= -->
  
  </div> <!-- id="prism-mainbox" -->
  
  </div> <!-- id="layout-main" -->
  </div> <!-- id="layout-maincontainer" -->
  
  <div id="layout-leftcol">
  <div id="prism-navbar2">
  
  <h3><a class='wikilink' href='../Main/Main.html'>PRISM Manual</a></h3>
  <p><strong><a class='wikilink' href='Main.html'>The PRISM Language</a></strong>
  </p><ul><li><a class='wikilink' href='Main.html'>Introduction</a>
  </li><li><a class='wikilink' href='Example1.html'>Example 1</a>
  </li><li><a class='wikilink' href='ModelType.html'>Model Type</a>
  </li><li><a class='wikilink' href='ModulesAndVariables.html'>Modules And Variables</a>
  </li><li><a class='wikilink' href='Commands.html'>Commands</a>
  </li><li><a class='wikilink' href='ParallelComposition.html'>Parallel Composition</a>
  </li><li><a class='wikilink' href='LocalNondeterminism.html'>Local Nondeterminism</a>
  </li><li><a class='wikilink' href='CTMCs.html'>CTMCs</a>
  </li><li><a class='wikilink' href='Example2.html'>Example 2</a>
  </li><li><a class='wikilink' href='Constants.html'>Constants</a>
  </li><li><a class='wikilink' href='Expressions.html'>Expressions</a>
  </li><li><a class='wikilink' href='Synchronisation.html'>Synchronisation</a>
  </li><li><a class='wikilink' href='ModuleRenaming.html'>Module Renaming</a>
  </li><li><a class='wikilink' href='MultipleInitialStates.html'>Multiple Initial States</a>
  </li><li><a class='selflink' href='GlobalVariables.html'>Global Variables</a>
  </li><li><a class='wikilink' href='FormulasAndLabels.html'>Formulas And Labels</a>
  </li><li><a class='wikilink' href='PTAs.html'>PTAs</a>
  </li><li><a class='wikilink' href='CostsAndRewards.html'>Costs And Rewards</a>
  </li><li><a class='wikilink' href='ProcessAlgebraOperators.html'>Process Algebra Operators</a>
  </li><li><a class='wikilink' href='PRISMModelFiles.html'>PRISM Model Files</a>
  </li></ul><p>[ <a class='wikilink' href='AllOnOnePage.html'>View all</a> ]
  </p>
  
  
  </div>  <!-- id="prism-navbar2" -->
  </div> <!-- id="layout-leftcol" -->
  
  </body>
  </html>