Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!rice!uw-beaver!mit-eddie!wuarchive!zaphod.mps.ohio-state.edu!tut.cis.ohio-state.edu!ucbvax!CS.ARIZONA.EDU!kwalker From: kwalker@CS.ARIZONA.EDU ("Kenneth Walker") Newsgroups: comp.lang.icon Subject: Re: What is ICON? Message-ID: <8912190159.AA07877@megaron.arizona.edu> Date: 19 Dec 89 01:59:14 GMT References: <134400001@tippy> Sender: daemon@ucbvax.BERKELEY.EDU Distribution: inet Organization: The Internet Lines: 30 Date: 7 Dec 89 20:56:00 GMT From: pur-phy!tippy!yorkw@ee.ecn.purdue.edu Well I have a Basic Question. WHAT IS THE ICON LANGUAGE? I havent been able to get a good idea from these notes. Well just wondering... The following is my standard reply to that question. Icon is a high level programming language designed for string processing and other non-numeric applications (numeric processing can be done, but the language and implementation are not tuned for it). Goal-directed evaluation with control backtracking is an integral part of the language. However, Icon is very different from other languages, such as Prolog, which use this evaluation scheme. Icon has a rich set of control structures which use and control backtracking. Most of these control structures look and act very much like the control structures of more traditional languages, allowing Pascal-like programming where the full power of goal-directed evaluation is not required. Icon incorporates generators as a natural feature within this goal-directed evaluation scheme. Icon has a flexible run-time type system: variables may take on values of any type and automatic type conversions are preformed as needed by operations. There are a variety of types including strings, sets, associative tables, and lists with positional, queue, and stack access methods. All storage management is automatic; garbage collection is performed as needed. Ken Walker / Computer Science Dept / Univ of Arizona / Tucson, AZ 85721 +1 602 621 2858 kwalker@cs.arizona.edu {uunet|allegra|noao}!arizona!kwalker