|
|
1.1 root 1: .ds M \fB
2: .if t .if !\nd .ds M \fM
3: .TH ICONT 1 "The University of Arizona \- 8/20/84"
4: .SH NAME
5: icont \- translate Icon programs for interpretive execution
6: .SH SYNOPSIS
7: \f3icont\fR
8: [ option ... ] file ... [
9: \f3\-x\fR
10: arg ... ]
11: .SH DESCRIPTION
12: .I Icont
13: is a translator for Version 5.9 of the Icon programming language,
14: which produces a file suitable for interpretation by the Icon
15: interpreter.
16: Translation consists of two phases:
17: .I translation
18: and
19: .IR linking .
20: During translation,
21: each Icon source file is translated into an intermediate language;
22: during linking,
23: the intermediate language files are combined and a single
24: output file is produced.
25: The output file from the linker is referred to as an \fIinterpretable\fR file.
26: Unless the
27: \f3\-o\fR
28: option is specified, the name of the resulting interpretable file is
29: formed by deleting the suffix of the first input file named on the
30: command line.
31: If the
32: \f3\-x\fR
33: argument is used,
34: the file is automatically executed by the interpreter
35: and any arguments following the
36: \f3\-x\fR
37: are passed as execution arguments to the Icon program itself.
38: .PP
39: Files whose names end in \*M.icn\fR are assumed to be Icon source programs;
40: they are translated, and the intermediate code is left in two files of
41: the same name with \*M.u1\fR and \*M.u2\fR substituted for \*M.icn\fR.
42: The intermediate code files normally are deleted when compilation has finished.
43: Files whose names end in \*M.u1\fR or \*M.u2\fR are assumed to be intermediate
44: code files from a previous translation
45: (only one should be named \(em the other is assumed);
46: these files are included in the linking phase after any \*M.icn\fR
47: files have been translated.
48: A \*M.u1\fR or \*M.u2\fR file that is explicitly named is not deleted.
49: Icon source programs may be read from standard input.
50: The argument
51: \f3\-\fR
52: signifies the use of standard input as a source file.
53: In this case, the intermediate code is placed in \*Mstdin.u1\fR and \*Mstdin.u2\fR
54: and the interpretable file is \*Mstdin\fR.
55: .PP
56: The following options are recognized by
57: .IR icont .
58: .TP 4
59: \f3\-c\fR
60: Suppress the linking phase.
61: The intermediate code files are not deleted.
62: .TP
63: \f3\-m\fR
64: Preprocess each \*M.icn\fR source file
65: with the \fIm4\^(1)\fR
66: macro processor before translation.
67: .TP
68: \f3\-o \fIoutput\fR
69: Name the interpretable file
70: .IR output .
71: .TP
72: \f3\-s\fR
73: Suppress any informative messages from the translator and
74: linker.
75: Normally, both informative messages and error messages are sent
76: to standard error output.
77: .TP
78: \f3\-t\fR
79: Arrange for \*M&trace\fR to have an initial value of \-1
80: when the program is executed.
81: Normally, \*M&trace\fR has an initial value of 0.
82: .TP
83: \f3\-u\fR
84: Issue warning messages for undeclared identifiers in the program.
85: The warnings are issued during the linking phase.
86: .PP
87: Icon has a number of memory regions related to the translation of programs.
88: These regions are large enough for most programs, but their size can be
89: changed, if necessary, by the \f3\-S\fR option, which has the
90: form \f3\-S[cfgilrstCL]\fI n\fR, where the letter following the
91: \f3S\fR specifies the region and \fIn\fR is the number of storage units to
92: allocate for the region. The regions are:
93: .IP \f3c\fR
94: literal table
95: .IP \f3f\fR
96: field table
97: .IP \f3g\fR
98: global symbol table
99: .IP \f3i\fR
100: identifier table
101: .IP \f3l\fR
102: local symbol table
103: .IP \f3r\fR
104: field table for record lists
105: .IP \f3s\fR
106: string space
107: .IP \f3t\fR
108: tree space
109: .IP \f3C\fR
110: code buffer
111: .IP \f3L\fR
112: labels
113: .PP
114: The environment variable \fIIPATH\fR controls the location of files
115: specified in link directives. \fIIPATH\fR should have a value of the
116: form \fIp1:p2: .\^.\^. : pn\fR where the \fIpi\fR name directories.
117: Each directory is searched in turn to locate files named in link
118: directives. The default value for \fIIPATH\fR is \*M.\fR , that is, the current
119: directory.
120: .PP
121: The interpretable
122: file produced by the Icon linker is
123: .I
124: directly executable.
125: \fRFor example, the command
126: .nf
127: .sp 1
128: .in +.5i
129: \*M
130: icont hello.icn
131: .ft R
132: .in -.5i
133: .sp 1
134: .fi
135: produces a file named \*Mhello\fR
136: that can be run by the command
137: .nf
138: .sp 1
139: .in +.5i
140: \*M
141: hello
142: .ft R
143: .in -.5i
144: .sp 1
145: .fi
146: The method used to make interpretable files appear to be directly
147: executable is system dependent.
148: See the Icon installation guide for complete details.
149: For most intents and purposes, interpretable
150: files are executable programs in the same sense that files produced by
151: .IR ld \^(1)
152: are executable programs.
153: .PP
154: Arguments can be passed to the Icon program by following the program
155: name with the arguments. Any such arguments are passed to the main
156: procedure as a list of strings.
157: .PP
158: When an Icon program is executed, a number of environment variables
159: are examined to determine certain execution parameters.
160: The values assigned to these variables should be numbers.
161: The variables that affect execution
162: and the interpretations of their values are as follows:
163: .TP 4
164: .I TRACE
165: Initialize the value of \*M&trace\fR.
166: If this variable has a value, it overrides the translation-time
167: \f3\-t\fR
168: option.
169: .TP
170: .I NBUFS
171: The number of i/o buffers to use for files.
172: When a file is opened, it is assigned an i/o buffer if one is available
173: and the file is not a tty.
174: If no buffer is available, the file is not buffered.
175: \*M&input\fR, \*M&output\fR, and \*M&errout\fR are buffered if buffers
176: are available.
177: On VAX systems, ten buffers are allocated initially;
178: on PDP-11 systems, five buffers are allocated initially.
179: .TP
180: .I NOERRBUF
181: If set, \*M&errout\fR is not buffered.
182: .TP
183: .I STRSIZE
184: The initial size of the string space, in bytes.
185: The string space grows if necessary, but it never shrinks.
186: On VAX systems, the string space is initially 51,200 bytes;
187: on PDP-11 systems, 10,240 bytes initially.
188: .TP
189: .I HEAPSIZE
190: The initial size of the heap, in bytes.
191: The heap grows if necessary, but it never shrinks.
192: On VAX systems, the heap is initially 51,200 bytes;
193: on PDP-11 systems, 10,240 bytes initially.
194: .TP
195: .I NSTACKS
196: The number of stacks initially available for co-expressions.
197: On VAX systems, four stacks are initially allocated; on PDP-11
198: systems, two stacks are initially allocated.
199: More are automatically allocated if needed.
200: .TP
201: .I STKSIZE
202: The size of each co-expression stack, in words.
203: On VAX systems, stacks are normally 2000 words;
204: on PDP-11 systems, stacks are normally 1000 words.
205: .SH FILES
206: .ta \w'\*Mv5g/bin/itran\fR 'u
207: \*Mv5g/bin/itran\fR icon translator
208: .br
209: \*Mv5g/bin/ilink\fR icon linker
210: .br
211: \*Mv5g/bin/iconx\fR icon run-time system
212: .br
213: .SH SEE ALSO
214: .I
215: The Icon Programming Language\fR,
216: Ralph E. Griswold and Madge T. Griswold,
217: Prentice-Hall Inc.,
218: Englewood Cliffs, New Jersey,
219: 1983.
220: .LP
221: \fIVersion 5.9 of Icon\fR, Ralph E. Griswold, Robert K. McConeghy, and William H. Mitchell,
222: Department of Computer Science, The University of Arizona,
223: August 1984.
224: .LP
225: \fIInstallation and Maintenance Guide for Version 5.9 of Icon\fR,
226: Ralph E. Griswold and William H. Mitchell,
227: Department of Computer Science, The University of Arizona,
228: August 1984.
229: .LP
230: m4\^(1), icon-pi(1)
231: .SH BUGS
232: .LP
233: Downward compatibility of interpretable files will not be maintained
234: in subsequent releases of Icon. No checks are performed to determine
235: if the interpretable file and the interpreter are compatible. Peculiar
236: program behavior is the only indication of such incompatibility.
237: .LP
238: Interpretable files do not stand alone; the Icon interpreter must be
239: present on the system. This implies that an interpretable
240: file produced on one system will not work on another system unless
241: the Icon interpreter is in the same place on both systems and that
242: the interpreter is of the same version of Icon as the translator
243: that produced the interpretable file.
244: .LP
245: Because of the way that co-expressions are implemented,
246: there is a possibility that programs
247: in which they are used may malfunction mysteriously.
248: .LP
249: Integer overflow on multiplication is not detected.
250: .LP
251: If the
252: \f3\-m\fR
253: option is used,
254: line numbers reported in error messages or tracing messages
255: are from the file after, not before, preprocessing.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.