Third Workshop on the Icon Programming Language

September 10-11, 1992 La Jolla,

Ralph E. Griswold and Madge T. Griswold The University of and The Bright Forest Company

Icon workshops provide an opportunity with a mixture of presentations and discus- for persons with an involvement in Icon to sion. meet and discuss their mutual interests. Thursday Morning, September 10 The first two workshops were held in Flagstaff, Arizona in 1988 and 1990. The Bill Griswold opened the first session third workshop was held on September 10-11, with a welcome, after which the persons 1992, in La Jolla, California. The workshop attending was sponsored by the Department of Com- introduced puter Science and Engineering of the themselves University of California, San Diego. Bill and described Griswold served as local host. their interests. Fifteen persons attended this workshop. Ralph Those who arrived early met on the evening Griswold followed with a report on the state of the Icon Project. He summa- Alan Beale rized the situation with respect to Icon as it existed two years ago, at the time of the last workshop: Version 8.0 of Icon had been released; X- Icon, a multi-thread version of Icon (MT Icon), and the optimizing compiler were in progress; program visualization tools were planned and a visual programming environ- ment was proposed. Next he described the present situation: the compiler and interpreter run-time systems Bob Alexander have been combined and released, along with of September 9 to discuss the agenda. Full- X-Icon, for UNIX and VMS; MT Icon and day meetings took place on September 10 and event-monitoring instrumentation is working; 11. The workshop atmosphere was informal, an X-Icon toolkit and interface builder are working; X-Icon for OS/2 has been devel-

IPD206 – 1 – December 28, 1992 ment of a visual programming environment for Icon. Discussion following the presentation covered the grant funding situation, the general problem with financial support for Icon, and future prospects. Next Ken Walker described the new optimizing compiler for Icon. Among goals, he listed optimizations to eliminate unneces- sary run-time type checking, placing operations in line, static allocation of tempo- rary variables, portability, language extensibility, support for the complete Icon David Cargo oped; a framework for program visualization is in place and some visualization tools have been written. He then described the status of the implementation for various platforms and the present state of distribution. He listed the goals of the Icon Project as bringing the implementation of Icon for all platforms up to date, releasing the compiler for 32-bit MS- DOS platforms, releasing MT Icon and the X-Icon toolkit and interface builder, and continuing work on program visualization. Among other possibilities, he mentioned Bob Goldberg implementations of X-Icon for other plat- forms, the extension of X-Icon facilities, language, and a production-quality implemen- refinements to the compiler, and the develop- tation. He described how the compiler is orga- nized, its database of run-time information, how this information is obtained from code for the run-time system, and the processes of building the compiler and running it. He then gave figures for the resources required to run the compiler and provided timings comparing the compiler to the interpreter. Ken also showed how Icon programs could be cross compiled, and what was involved in building the interpreter with the new run-time system. He concluded with a status report, describing what the compiler can do and on what plat- Bill Griswold forms it presently is implemented.

December 28, 1992 – 2 – IPD206 The morning session ended with a pre- Gregg Townsend and Bob Alexander. sentation on X-Icon by Gregg Townsend. He Ken then continued his presentation of gave an overview of X-Icon, its Xlib interface, the Icon compiler with a description of RTL, how windows are the language in which the Icon run-time created and system is now written. He explained that the managed, display motivation for RTL is to provide the informa- functions, at- tion the compiler needs about run-time tributes associated operations. RTL, an extension of C, is de- with windows, signed so that this information can be graphic contexts, extracted automatically while RTL is being input functions, translated into C code that is used to build the and event key- run-time system. words. Ken described the mechanisms RTL Next he provides for expressing Icon type conversion described X-Icon and abstract type computations. He showed Madge Griswold extensions to the examples of writing a built-in function and an basic X model: operator in RTL. He then described the type retained windows, terminal emulation, and the specification color model. He listed features of X that are system, which not supported by X-Icon, including allows new subwindows, image synthesis, and numerous types to be small matters. Among X-Icon applications to added to Icon. date, he listed Following visualization his talk on RTL, tools, an inter- Ken gave an face builder, an overview of editor, and ISIcon: its new several applica- built-in func- tions done as tions, projects in a module-level string and list scoping, func- Ralph Griswold processing class. tion tracing, and He noted enhanced diagnostics. He also described that X-Icon is variants of ISIcon: ISIcon/SI, which has included in character windowing features for UNIX/ Version 8.7 of terminfo and ISIcon/VOICE, which has Clint Jeffery Icon for UNIX features for voice processing. and VMS and After a mid-afternoon break, Kelvin that an OS/2 port is in progress. Gregg closed Nilsen described his plans for an Icon dialect with ideas for future extensions. for instruction, based on Kamin’s text for an Thursday Afternoon, September 10 interpreter-based approach to teaching pro- gramming languages. The text presents The Thursday afternoon session began programming language concepts by simpli- with a demonstration of X-Icon programs by fied dialects cast in Lisp syntax. Students

IPD206 – 3 – December 28, 1992 write programs in each language. Kelvin motivation of explained how the use of a common simpli- the new fied syntax enables students to experiment sortf() func- with different features and compare different tion. A languages without having to learn their discussion of syntaxes. sorting fol- Kelvin listed the features of Icon that lowed, with might be emphasized in such a context and Bob what the objectives should be. There was Alexander discussion about what should and should not pointing out Nevin Liber be included in such a subset of Icon and how that there was effective such an approach might be. a generalized sorting procedure in the program The afternoon session ended with a brief library. description Steve Stone asked if “catch” and “throw” of MT Icon could be done in Icon and Steve Wampler said by Clint that additional mechanisms would needed for Jeffery. He these. described Bob Alexander next presented a number the multi- of suggestions for new language features, thread model including a way of getting a record field of execution, number from its name, new sorting features, its general an encapsulation mechanism similar to characteris- ISIcon’s modules, as well as several other tics, how ideas. multiple Following the discussion, Clint made a Kelvin Nilsen programs are presentation on the instrumentation and loaded and monitoring facilities that had been added to executed under a single invocation of the Icon MT Icon. He noted that the term multi-thread interpreter, and what can be done with MT was inaccurate, as Steve Stone had discussed Icon. with him and that a better term was needed. He explained the motivation for producing Friday Morning, September 11 information about program execution that The second day of the workshop started could be used with a general discussion of language issues. by monitors: Bob Goldberg raised the issue of adding a debugging, preprocessor to Icon, even if it only had the performance capability for including files and defining tuning, educa- constants. Ralph pointed out that there was a tion, and stand-alone preprocessor in the Icon program generally library. This led to discussion of the library, getting a better concern that it was generally under-utilized, understanding and what could be done to make it more of program accessible. behavior. With David Cargo then asked about the the features Jon Pearkins

December 28, 1992 – 4 – IPD206 added to MT Icon, monitors can be written in Icon itself, and they can get direct access to the program being monitored. He mentioned the problems with monitoring and described approaches to their solution. Following a mid-morning break, Ralph described work that had been done in program visualization using execution monitors that present their results in the form of images. He mentioned the earlier memory-monitoring system written by Gregg, more recent use of visual metaphors for displaying storage allocation information, fish-eye views and other techniques for presenting information in Steve Stone a small amount of screen space, and monitors that can provide different views of the same Friday Afternoon, September 11 program activity. He concluded by describing Eve, an execu- Following lunch, Ralph demonstrated tion monitor some of the program visualization monitors coordinator and the X-Icon interface builder. written by Clint After the demonstration, there was a to allow several general discussion of implementation issues. monitors to Storage allocation was discussed and Clint operate on the described the techniques used in managing same program at multiple storage regions. Bob Alexander the same time. asked about the possibility of dynamically Ralph then linked functions. Steve Stone asked about the described the X- possibility of a feature for saving large struc- Icon tool kit tures for use in a later program execution. developed by Bob Alexander suggested improvements to Jon Lipp to Icon’s tracing facilities to limit tracing to supplement the selected procedures. Gregg Townsend low-level Xlib Steve Stone asked about the purpose of functionality of the discussion of language and implementa- X-Icon with Icon procedures to provide tion issues when the Icon Project appeared not “vidgets” (virtual input/output devices) such to have the resources to make significant as buttons, toggles, check boxes, menus, changes to Icon. Ralph responded that such sliders, and scrollbars. He showed examples discussions were interesting in their own of programs that illustrate the use of vidgets. right, that something might, in fact, come out Next he described Mary Cameron’s X- of them, and persons outside the Icon Project Icon interface builder that provides an could make changes also. interactive, direct-manipulation system for The possibility of revising the Icon building X-Icon applications that use vidgets. implementation book was raised. Madge and Ralph described some of the difficulties they

IPD206 – 5 – December 28, 1992 had experienced with publishers and why such a revision was unlikely. Following a mid-afternoon break, Kelvin presented a summary of some of his work on real-time garbage collection. He pointed out that much of the programming effort on large programming projects often was directly related to memory management. He men- tioned that the costs of DRAM are low enough that it can be used in place of virtual memory and that VLSI Ken Walker components performance that could be achieved with represent hardware support for garbage collection and only a small ended with comments on the potential impli- fraction of cations for Icon. the cost of a The workshop ended with a general complete discussion. Ralph mentioned the possibility of system. a programming environment for Icon and These factors extensions to the X-Icon facilities. Clint Steve Wampler motivate mentioned the possibility of using MT Icon hardware for modularizing large programs. support for memory management. Bob Goldberg asked Ralph if he could He said profiling shows garbage collec- visualize a successor to Icon and what fea- tion requires up to half of the CPU resources tures would it have. Ralph responded that it for some applications, but profiling does not would have fewer features with more expres- reveal all the costs, siveness and better such as tagging and unification of the tending pointers. features it did have. He described an He suggested that architecture that such a language provides hardware might benefit from a support for garbage more object-oriented collection and pre- basis. sented code-generation The workshop models for C++ to use ended with thanks this support. Kelvin and compliments to then showed several Bill for the excellent graphs illustrating the conference arrange- improvements in ments. Demonstrating X-Icon

December 28, 1992 – 6 – IPD206 Participants: Nevin J. Liber 243 Buena Vista Avenue Robert J. Alexander No. 803 6603 Bose Lane Sunnyvale, CA 94086-4869 San Jose, CA 95120 [email protected] [email protected] Kelvin Nilsen Alan Beale Department of Computer Science 3750 Jamestown Circle Iowa State University Raleigh, NC 27609 226 Atanasoff Hall [email protected] Ames, IA 50011-1040 [email protected] David S. Cargo 1735 Rome Ave. Jon Pearkins St. Paul, MN 55116 Certified Software Specialists Ltd. [email protected] 54015 Range Road 212 Ardrossan, Alberta T0B 0E0 Robert E. Goldberg CANADA 4401 West Estes [email protected] Lincolnwood, IL 60646 [email protected] Steve Stone S. B. Stone & Company Madge T. Griswold 5000 Rockside Road, Suite 500 The Bright Forest Company Cleveland, OH 44131 5302 E. 4th Street Tucson, AZ 85711-2304 Gregg Townsend [email protected] Department of Computer Science The Ralph E. Griswold Tucson, AZ 85721 Department of Computer Science [email protected] The University of Arizona Tucson, AZ 85721 Kenneth Walker [email protected] 415 E. University #310 Tucson, AZ 85705 William G. Griswold [email protected] UC San Diego Computer Science Stephen B. Wampler and Engineering, 0114 1409 West Louise Way La Jolla, CA 92093-0114 Flagstaff, AZ 86001 [email protected] [email protected] Clinton L. Jeffery 1119 East 12th Street, #4 Tucson, AZ 85719 [email protected]

IPD206 – 7 – December 28, 1992 Group “Portrait”

December 28, 1992 – 8 – IPD206