From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <3AE97FA7.4869F919@FWS.Gov> From: "Mark C. Otto" MIME-Version: 1.0 To: 9fans@cse.psu.edu Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Subject: [9fans] High-Level Programming Language for Plan9 Date: Fri, 27 Apr 2001 10:18:15 -0400 Topicbox-Message-UUID: 945373aa-eac9-11e9-9e20-41e7f4b1d025 For a while, there has been discussion about high-level languages to port to and to connect to plan9 more easily. One language that I have used a fair amount, especially for text problems is Icon, http://www.cs.arizona.edu/icon/. It is the structure programming successor to SNOBOL. (OK, roll your eyes back into your heads now. It was developed by one of your old Bell-Labs buddies, Ralph Griswald.) It has an off shoot called UNIcon, http://www.drones.com/unicon/, which was going to incorporate Unicode. It connections to the OS like Perl (builtin and other system commands, BSD sockets, X-Windows) but is a much cleaner language. Below is their brief introduction to the language. The idea would not be to use sockets or X11 in plan9 but to replace those with plan9 network and graphics routines. Given that plan9 uses text-based ways of networking and doing graphics and uses UNICode, it would make a natural extension of UNIcon. Any comments from those more knowledgable about programming languages than I? Mark ICON ---- Icon is a high-level programming language with extensive facilities for processing strings and structures. Icon has several novel features, including expressions that may produce sequences of results, goal-directed evaluation that automatically searches for a successful result, and string scanning that allows operations on strings to be formulated at a high conceptual level. Icon also provides high-level graphics facilities. Icon emphasizes high-level string processing and a design philosophy that allows ease of programming and short, concise programs. Storage allocation and garbage collection are automatic in Icon, and there are few restrictions on the sizes of objects. Strings, lists, and other structures are created during program execution and their size does not need to be known when a program is written. Values are converted to expected types automatically; for example, numeral strings read in as input can be used in numerical computations without explicit conversion. Icon has an expression-based syntax with reserved words; in appearance, Icon programs resemble those of Pascal and C. Although Icon has extensive facilities for processing strings and structures, it also has a full repertoire of computational facilities. It is suitable for a wide variety of applications. Some examples are: text analysis text editing document formatting artificial intelligence expert systems rapid prototyping symbolic mathematics text generation data laundry There are public-domain implementations of Icon for the Macintosh, MS-DOS, many UNIX systems, and VAX/VMS.