Welcome to the Dictionary of Programming Languages, a compendium
of computer coding methods assembled to provide information and
aid your appreciation for computer science history.
Browse the dictionary by clicking on a section:
A
B
C
D
E
F
G
H
I
JK
L
M
N
O
P
QR
S
T
UV
WXYZ+
Get a full dump of the dictionary:
List of Names
Short Form
Full Form
-
ICI
- Language type:
- Description:
ICI is an interpreted structured language
reminiscent of C. It is essentially
a scripting language, intended for application
development.
ICI's syntax is similar to that of C, but
it provides a high-level data model intended
to reduce programmer effort and errors.
Primitive data types in ICI include
integers, reals, strings, files, safe
pointers, and regular expressions.
Aggregate data types are arrays, sets,
and associative tables. Sets
can be heterogenous, nested, and support
the usual set operations: union, intersection,
etc. All data structures in ICI
are dynamic, and the language environment
provides memory management and garbage
collection. Control structures in ICI
include the usual loops and conditional
statements, plus a simple error
handling construct. The language supports
subroutines and nested modules. All variables
are lexically scoped at the subroutine
or module level, but unlike most
structured languages, ICI allows the
current scope to adjusted (Tcl, for example,
also allows this).
Although ICI is not object-based,
many object programming features can be
emulated in the language by using data
structure inheritance feature called
super-structures.
To support application development, ICI
has C-like file I/O and system interface
support, as well as a high-level event
trigger facility. The language also has
a modest standard library of built-in functions.
There is only one implementation of ICI;
the current version is 2.02, and it
runs on Unix systems, DOS, Windows, Macintosh,
and some other computers. Documentation
is spare and somewhat outdated, and is
available for download but not on-line
browsing.
- Origin:
- See Also:
- Remarks:
ICI is pronounced icky.
An overview by an ICI author places the
language mid-way between scripting languages
like Perl and development languages like
Java. The claim is that ICI is faster than
Perl but slower than Java, a peculiar claim
since Perl and Java each out-perform the
other in different circumstances. Still,
ICI does provide sophisticated data structures
like Perl, but with a comfortable C-like
syntax.
The home of ICI is Canon Information Systems
Research Australia, but the language is
in the public domain.
- Links:
-
- Date:
- Sample code:
/* A program to count words in input files
* (from examples at the ICI web site)
*/
static count_tokens(in)
{
auto count;
count = 0;
while (gettoken(in)) ++count;
return count;
}
if (argc < 2) printf("%d\n", count_tokens(stdin));
else
{
auto f, fn, total;
total = 0;
forall (fn in interval(argv, 1))
{
if (fn == "-")
count = count_tokens(stdin);
else
{
auto count;
count = count_tokens(f = fopen(fn));
close(f);
}
printf("%s %d\n", fn, count);
total += count;
}
if (argc > 2) printf("Total %d\n", total);
}
Descriptions in this dictionary are ©1997-99 Neal Ziring. Some
examples copyright of their respective authors. Some
technologies and languages are trademarked. Permission to
copy descriptions is granted as long as authorship credit is preserved.
Comments on this dictionary, corrections and suggestions, are all welcome.
Please use email, the address is ziring@home.com
[Ziring MicroWeb Home]
[Dictionary Start]
[Sign Guestbook]
Dictionary and script maintained by Neal Ziring, last major modifications 3/18/98. Most recent
additions to dictionary and master list, 1/00.