# KEHOME/knowledge/tools/unicon/icon2unicon.txt # Mar/3/2003 Differences between Icon and Unicon Programming with Unicon, Appendix D by Jeffery, Mohamed, Pereda & Parlett #===================================# This appendix summarizes the known differences between Arizona Icon and Unicon. Extensions to Functions and Operators #===================================# Unicon broadens the meaning of certain pre-existing functions where it is consistent and unambiguous to do so. These extensions revolve primarily around the list type. For example, insert() allows insertion into the middle of a list, reverse() reverses a list, and so forth. Objects #=====# Unicon supports the concepts of classes and packages with declaration syntax. This affects scope and visibility of variable names at compile time. At runtime, objects behave similar to records in most respects. System Interface #==============# Unicon's system interface presumes the availability of hierarchical directory structure, communication between programs using standard Internet protocols, and other widely available facilities not present in Arizona Icon. Database Facilities #=================# Unicon supports GDBM and SQL databases with built-in functions and operators. The programmer manipulates data in terms of persistent table and record abstractions. SQL database support may not be present on platforms that do not provide ODBC open database connectivity drivers. Multiple Programs and Execution Monitoring Support #================================================# Unicon virtual machine interpreters by default support the loading of multiple programs so that various debugging and profiling tools can be applied to them without recompilation. The execution monitoring facilities are described in "Program Monitoring and Visualization: An Exploratory Approach", by Clinton Jeffery. Unicon optimizing compilers may omit or substitute for these facilities.