summaryrefslogtreecommitdiff
path: root/doc/docguide.htm
blob: 6601f1b518d5711426baa40f14f3a1b4ab18153c (plain)
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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
    <TITLE> Icon Documentation Guide </TITLE>
    <LINK REL="STYLESHEET" TYPE="text/css" HREF="istyle.css">
    <LINK REL="SHORTCUT ICON" HREF="shortcut.gif">
</HEAD>
<BODY>

<P><A HREF="http://www.cs.arizona.edu/icon/"> <IMG SRC="wwwcube.gif"
ALT="[Icon home]" WIDTH=128 HEIGHT=144 BORDER=0 ALIGN=RIGHT> </A>

<H1> Icon Documentation Guide </H1>

<P> Gregg M. Townsend
<BR> <SMALL> Department of Computer Science </SMALL>
<BR> <SMALL> The University of Arizona </SMALL>

<P> <SMALL> www.cs.arizona.edu/icon/v950/docguide.htm
<BR> Last updated November 16, 2009</SMALL>
<!-- $Id: docguide.htm,v 1.33 2009/11/16 22:11:13 gmt Exp $ -->


<H2> Introduction </H2>

<P> Icon is distributed with a small set of documentation pages:
<UL>
<LI> This documentation guide
<LI> The <A href="icon.txt"><CODE>icon</CODE></A>
     and <A href="icont.txt"><CODE>icont</CODE></A> commands
<LI> <A HREF=relnotes.htm> Release notes</A>
<LI> <A HREF=macintosh.htm> Icon on Macintosh</A>
<LI> <A HREF=cygwin.htm>   Icon on Cygwin</A>
<LI> <A HREF=faq.htm>      Frequently asked questions</A>
<LI> <A HREF=install.htm>  Installation instructions</A> (for binary releases)
<LI> <A HREF=build.htm>    Build instructions</A> (for source releases)
<LI> <A HREF=files.htm>    File organization</A>
<LI> <A HREF=port.htm>     Porting instructions</A>
<LI> <A HREF=cfuncs.htm>   Loading C functions dynamically</A>
<LI> <A HREF=extlvals.htm> External values</A>
</UL>

<P> This guide provides an overview of additional available information.
Documents designated with IPD numbers are Icon Project Documents
found at the Icon web site,
<A HREF="http://www.cs.arizona.edu/icon/">www.cs.arizona.edu/icon</A>.


<H2> Basic Documentation </H2>

<P> The command-line interface to Icon is described by <CITE>man</CITE> pages.
The <A HREF="icon.txt"><CODE>icon</CODE></A> command executes a program
from a single source file and supports script usage.
The more general <A HREF="icont.txt"><CODE>icont</CODE></A> command,
modeled after <CITE>cc</CITE>,
supports multiple files, separate compilation, and other features.

<P>
The Icon language is defined by
	<BLOCKQUOTE>
	<IMG SRC="lb80.jpg" ALT="[cover]" WIDTH=60 HEIGHT=80 ALIGN=LEFT>
	<CITE> The Icon Programming Language, Third Edition </CITE>
	<BR> Ralph E. Griswold and Madge T. Griswold
	<BR> Peer-to-Peer Communications, 1996, out of print
	<BR> ISBN 1-57398-001-3
	<BR> Downloadable from
	     <A HREF="http://www.cs.arizona.edu/icon/books.htm">
	     www.cs.arizona.edu/icon/books.htm</A>
	<BR CLEAR=ALL>
	</BLOCKQUOTE>

<P> Some introductory material can be found on the web:
<UL>
<LI> Ralph Griswold's overview:
	<A HREF="http://www.cs.arizona.edu/icon/docs/ipd266.htm">
	www.cs.arizona.edu/icon/docs/ipd266.htm</A>
<LI> Dave Hanson's introduction:
	<A HREF="http://www.cs.arizona.edu/icon/intro.htm">
	www.cs.arizona.edu/icon/intro.htm</A>
<LI> Bill Mitchell's introduction and slides:
	<A HREF="http://www.mitchellsoftwareengineering.com/icon/">
	www.mitchellsoftwareengineering.com/icon</A>
<LI> John Shipman's tutorial:
	<A HREF="http://www.nmt.edu/tcc/help/lang/icon/">
	www.nmt.edu/tcc/help/lang/icon</A>
</UL>

<P>
The <CITE>Icon Programming Language Handbook</CITE>,
by Thomas W. Christopher, is available on the web at
<A HREF="http://www.tools-of-computing.com/tc/CS/iconprog.pdf">
www.tools-of-computing.com/tc/CS/iconprog.pdf</A>.


<H2> Graphics </H2>

<P>
Icon's graphics facilities are defined by
	<BLOCKQUOTE>
	<IMG SRC="gb80.jpg" ALT="[cover]" WIDTH=60 HEIGHT=80 ALIGN=LEFT>
	<CITE> Graphics Programming in Icon </CITE>
	<BR> Ralph E. Griswold, Clinton L. Jeffery, and Gregg M. Townsend
	<BR> Peer-to-Peer Communications, 1998, out of print
	<BR> ISBN 1-57398-009-9
	<BR> Downloadable from
	     <A HREF="http://www.cs.arizona.edu/icon/books.htm">
	     www.cs.arizona.edu/icon/books.htm</A>
	<BR CLEAR=ALL>
	</BLOCKQUOTE>

<P> Two older reports present an overview of Icon's graphics:
<UL>
    <LI> IPD281, Graphics facilities for Icon,
	<A HREF="http://www.cs.arizona.edu/icon/docs/ipd281.htm">
	www.cs.arizona.edu/icon/docs/ipd281.htm</A>
    <LI> IPD284, Visual interfaces for Icon programs,
    	<A HREF="http://www.cs.arizona.edu/icon/docs/ipd284.htm">
	www.cs.arizona.edu/icon/docs/ipd284.htm</A>
</UL>


<H2> Recent feature additions </H2>

<P> A few minor features have been added since the publication
of the Icon books:
<UL>
    <LI> Scriptable source files
    <LI> Path searching improvements
    <LI> Reading directory contents
    <LI> Reading foreign text files
    <LI> <A HREF="extlvals.htm">External values</A>
</UL>
These features are more fully described in the
<A HREF=relnotes.htm>release notes</A>.


<H2> Program Library </H2>

<P> Program library documentation is contained within the source code.
Extracted documentation is available at
<A HREF="http://www.cs.arizona.edu/icon/library/ipl.htm">
www.cs.arizona.edu/icon/library/ipl.htm</A>.


<H2> Icon Internals </H2>

<P> Icon's internals are detailed in
	<BLOCKQUOTE>
	<IMG SRC="ib80.jpg" ALT="[cover]" WIDTH=55 HEIGHT=80 ALIGN=LEFT>
	<CITE>The Implementation of the Icon Programming Language</CITE>
	<BR> Ralph E. Griswold and Madge T. Griswold
	<BR> Princeton University Press, 1986, out of print
	<BR> ISBN 0-691-08431-9
	<BR> Downloadable from
	     <A HREF="http://www.cs.arizona.edu/icon/books.htm">
	     www.cs.arizona.edu/icon/books.htm</A>
	<BR CLEAR=ALL>
	</BLOCKQUOTE>
Although considerable changes have occurred since Version 6,
described in the book, the basic structure is the same.
Two technical reports describe subsequent changes:
<UL>
<LI>IPD112, Supplementary Information for Version 8,
<A HREF="http://www.cs.arizona.edu/icon/docs/ipd112.htm">
http://www.cs.arizona.edu/icon/docs/ipd112.htm</A>
<LI>IPD239, Supplementary Information for Version 9,
<A HREF="http://www.cs.arizona.edu/icon/docs/ipd239.htm">
http://www.cs.arizona.edu/icon/docs/ipd239.htm</A>
</UL>


<P> Icon's run-time implementation language is described in IPD261,
<A HREF="http://www.cs.arizona.edu/icon/ftp/doc/ipd261.pdf">
www.cs.arizona.edu/icon/ftp/doc/ipd261.pdf</A> (PDF).


<H2> Technical Reports </H2>

<P> The Icon web site provides a large number of technical reports,
including "Icon Project Documents" designated by IPD numbers.
The index is found at
<A HREF="http://www.cs.arizona.edu/icon/docs/docs.htm">
www.cs.arizona.edu/icon/docs/docs.htm</A>.

<P> Most of these reports are historical and
many describe past research experiments.
The reports cited above are among the most current,
although they may not be completely correct with respect
to Version 9.5.


<H2> Discussion Group </H2>

<P> The Usenet newsgroup <A HREF="news:comp.lang.icon">comp.lang.icon</A>
discusses all aspects of the Icon language and is the best place to ask
programming questions.


<H2> Other Sources </H2>

<P> Other sources of documentation can be found in the
<A HREF="faq.htm"> Icon FAQ </A> and on the Icon web site,
<A HREF="http://www.cs.arizona.edu/icon/">
www.cs.arizona.edu/icon</A>.

<P> <HR>

</BODY>
</HTML>