Department of Computer
Science The University of Arizona Tucson, Arizona IPD61a March 14, 1996 http://www.cs.arizona.edu/icon/docs/ipd061.htm |
The null value (as an initializer).Matters related to corporate reluctance to accept a "non-standard" programming language were mentioned.
Quick program development cycle.
Tracing (which was carried over to the C program when the prototype was converted to a production program).
Expressive power.
Data structures.
Automatic storage management.
Lack of size limitations.
Rich data structures.Bob Goldberg commented that the free availability of implementations of Icon was a very important matter in academic environments.
Weak typing (as a contrast to other currently popular languages ) .
Easy debugging.
Generators (although it was noted that they required a sophistication that many students lack).
which would behave similarly toall exprl of expr2
while-do
, except that expr2
would not be bounded. The motivation for this control structure would
be to provide mutual evaluation of an arbitrary number of expressions (in
expr2
), which presently cannot be formulated in Icon.HOST()
function as an example of how not to
do it. Again, there was considerable discussion and agreement on the importance
of such a feature, especially on computers like the Atari ST, Amiga, and
Macintosh, with their enormous repertoires of graphic, sound, and "toolbox"
routines. However, no one could suggest a good method for implementing an
interface.Elimination of the costs of bounding expressions in contexts that do not include generators.She commented that her optimizations would be more significant in combination with knowledge about other aspects of Icon, such as types.
The "demotion" of generators in contexts where they cannot be resumed.
sbrk
), but that
facility is increasingly less available. He also mentioned the problem with
devising a storage-management system that works adequately over a wide range
of computer architectures and memory sizes.if-then
expression would be always selected during
execution, with both arms already compiled. The question was raised as to
how much such compile-time recognition and "constant folding"
would be supported. For example, alternation is often used in place of if-then
.
In general, control-flow optimization would be required. In any event, there
was support for a constant declaration as part of the Icon language, independent
of other considerations.proc()
but not implicit string invocation. In this scheme, functions would be constants.setexit()
facility of SPITBOL
was noted as an effective aid for debugging.