1A68G(1) Programmer's Manual A68G(1)
2
4 a68g - Algol 68 Genie, an Algol 68 compiler-interpreter
5
7 a68g [--apropos | --help | --info [string]]
8 [--assertions | --no-assertions] [--backtrace | --no-backtrace]
9 [--brackets] [--check | --no-run] [--compile | --no-compile] [--clock]
10 [--debug | --monitor] [--echo string] [--execute unit | -x unit]
11 [--exit | --] [--extensive] [-f | --file string] [--frame number]
12 [--handles number] [--heap number] [--listing] [--moids]
13 [-O | -O0 | -O1 | -O2 | -O3] [--object | --no-object] [--overhead number]
14 [--optimise | --no-optimise] [--pedantic] [--portcheck | --no-portcheck]
15 [--pragmats | --no-pragmats] [--precision number] [--prelude-listing]
16 [--pretty-print] [--print unit | -p unit] [--quiet] [--quote-stropping]
17 [--reductions] [--rerun] [--run] [--script string]
18 [--source | --no-source] [--stack number] [--statistics] [--strict]
19 [--terminal] [--time-limit number] [--trace | --no-trace]
20 [--tree | --no-tree] [--unused] [--upper-stropping] [--verbose]
21 [--version] [--warnings | --no-warnings] [--xref | --no-xref] filename
22
24 Algol 68 Genie (Algol68G) is an Algol 68 compiler-interpreter. It can be
25 used for executing Algol 68 programs or scripts. Algol 68 is a rather
26 lean orthogonal general-purpose language that is a beautiful means for
27 denoting algorithms. Algol 68 was designed as a general-purpose program‐
28 ming language by IFIP Working Group 2.1 (Algorithmic Languages and Cal‐
29 culi) that has continuing responsibility for Algol 60 and Algol 68.
30
31 Algol 68 Genie and its documentation can be obtained from
32
33 https://jmvdveer.home.xs4all.nl/
34
36 Options are passed to a68g either from the file .a68g.rc in the working
37 directory, the environment variable A68G_OPTIONS, the command-line or
38 from pragmats.
39
40 Option precedence is as follows: pragmat options supersede command-line
41 options, command-line options supersede options in environment variable
42 A68G_OPTIONS, A68G_OPTIONS supersedes options in .a68g.rc.
43
44 Listing options, tracing options and -pragmat, -nopragmat, take their ef‐
45 fect when they are encountered in a left-to-right pass of the program
46 text, and can thus be used, for example, to generate a cross reference
47 for a particular part of the program.
48
49 Where numeric arguments are required, suffices k, M or G are allowed for
50 multiplication with 2 ** 10, 2 ** 20 or 2 ** 30 respectively.
51
52 --apropos | --help | --info [string]
53 Print info on options if string is omitted, or print info on
54 string otherwise.
55
56 --assertions | --no-assertions
57 Control elaboration of assertions.
58
59 --backtrace | --no-backtrace
60 Control whether a stack backtrace is done in case a runtime-error
61 occurs.
62
63 --brackets
64 Consider [ .. ] and { .. } as being equivalent to ( .. ). Tradi‐
65 tional Algol 68 syntax allows ( .. ) to replace [ .. ] in bounds
66 and slices.
67
68 --check | --no-run
69 Check syntax only, the interpreter does not start.
70
71 --clock
72 Report execution time excluding time needed for compilation.
73
74 --compile | --no-compile
75 Switch compilation of units on or off. Compilation omits many of
76 the runtime checks offered by the interpreter proper. The program
77 is not executed and a shell script is generated combining source
78 code and its shared library. This shell script can be used as a
79 pseudo-executable.
80
81 --debug | --monitor
82 Start in the monitor. Invoke the monitor in case a runtime-error
83 occurs; the program will pause in the monitor on the line that
84 contains the error.
85
86 --echo string
87 Echo string to standout.
88
89 --execute unit | --x unit
90 Execute the Algol 68 unit. In this way one-liners can be executed
91 from the command line.
92
93 --exit | --
94 Ignore further options.
95
96 --extensive
97 Generate an extensive listing.
98
99 -f | --file string
100 Accept string as filename in case it conflicts with shell syntax.
101
102 --frame number
103 Set the frame stack size to number bytes.
104
105 --handles number
106 Set the handle space size to number bytes.
107
108 --heap number
109 Set the heap size to number bytes.
110
111 --listing
112 Generate a concise listing.
113
114 --moids
115 Generate an overview of modes in the listing file.
116
117 --object | --no-object
118 Control the listing of C code in the listing file.
119
120 --optimise | --no-optimise
121 Switch compilation of units on or off. Compilation omits many of
122 the runtime checks offered by the interpreter proper. This op‐
123 tion is equivalent to -O2.
124
125 -O | -O0 | -O1 | -O2 | -O3
126 Switch compilation of units on and pass the option to the back-
127 end C compiler to set the optimiser level.
128
129 --overhead number
130 Set overhead for stack checking.
131
132 --pedantic
133 Equivalent to --warnings --portcheck
134
135 --portcheck | --no-portcheck
136 Enable or disable portability warning messages.
137
138 --pragmats | --no-pragmats
139 Control elaboration of pragmats.
140
141 --precision number
142 Set the precision for LONG LONG modes to number significant dig‐
143 its.
144
145 --prelude-listing
146 Generate a listing of preludes.
147
148 --pretty-print
149 Pretty-print the source file.
150
151 --print unit | --p unit
152 Print the value yielded by the Algol 68 unit. In this way one-
153 liners can be executed from the command line.
154
155 --quiet
156 Suppress all warning messages.
157
158 --quote-stropping
159 Use quote stropping.
160
161 --reductions
162 Print reductions made by the parser.
163
164 --rerun
165 Use compiled code of a previous run.
166
167 --run Override the --no-run option.
168
169 --script string
170 Takes string as source file name and skips further option pro‐
171 cessing so these can be handled by the script.
172
173 --source | --no-source
174 Control the listing of source lines in the listing file.
175
176 --stack number
177 Set the stack size to number bytes.
178
179 --statistics
180 Generate statistics in the listing file.
181
182 --strict
183 Ignores extensions to Algol 68 syntax.
184
185 --time-limit number
186 Interrupt the interpreter after number seconds, generating a time
187 limit exceeded error.
188
189 --trace | --no-trace
190 Control tracing of the running program.
191
192 --tree | --no-tree
193 Control listing of the syntax tree in the listing file.
194
195 --unused
196 Generate an overview of unused tags in the listing file.
197
198 --upper-stropping
199 Use upper stropping, which is the default stropping regime.
200
201 --verbose
202 Use verbose mode.
203
204 --version
205 Print the version of the running image of a68g.
206
207 --warnings | --no-warnings
208 Enable warning messages or suppress suppressible warning mes‐
209 sages.
210
211 --xref | --no-xref
212 Control generation of a cross-reference in the listing file.
213
215 Author of Algol 68 Genie is Marcel van der Veer <algol68g@xs4all.nl>.
216
217LINUX October 27, 2023 LINUX