1A68G(1)                       Programmer's Manual                      A68G(1)
2

NAME

4     a68g - Algol 68 Genie, an Algol 68 compiler-interpreter
5

SYNOPSIS

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

DESCRIPTION

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

OPTIONS

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

AUTHOR

215     Author of Algol 68 Genie is Marcel van der Veer <algol68g@xs4all.nl>.
216
217LINUX                          January 25, 2022                          LINUX
Impressum