# KEHOME/knowledge/tools/unicon/bookhierarchy.html # Mar/3/2003 # Clinton Jeffery, Shamim Mohamed, Ray Pereda & Robert Parlett, # "Programming with Unicon: Very high level object-oriented # application and system programming", 7/12/2002 draft, # http://unicon.sourceforge.net/book/ub.pdf uniconhi is begin hierarchy; Programming with Unicon / Preface // Organization of This Book // Acknowledgements / Introduction // Prototyping and the Spiral Model of Development // Icon: a Very High Level Language for Applications // Enter Unicon: More Icon than Icon // The Programming Languages Food Chain / Part 1: Core Unicon // Chapter 1: Programs and Expressions /// Your First Unicon Program /// Expressions and Types /// Numeric Computation /// Strings and Csets /// Goal-directed Evaluation /// Fallible Expressions /// Generators /// Iteration and Control Structures /// Procedures //// Parameters //// Variables and Scopes //// Writing Your Own Generators //// Recursion // Chapter 2: Structures /// Tables /// Lists /// Records /// Sets /// Using Structures //// A Deep Copy //// Representing Trees and Graphs //// The n-Queens Example // Chapter 3: String Processing /// String Indexes /// Character Sets /// Character Escapes /// String Scanning //// File Completion //// Backtracking //// Concordance Example /// Regular Expressions /// Grammars //// Parsing //// Doing It Better // Chapter 4: Advanced Language Features /// Limiting or Negating an Expression /// List Structures and Parameter Lists /// Co-expressions /// User-Defined Control Structures /// Parallel Evaluation /// Coroutines //// Permutations /// Simulation // Chapter 5: The System Interface /// The Role of the System Interface /// Files and Directories //// Directories //// Obtaining File Information //// Controlling File Ownership and Access //// File Locks /// Programs and Process Control //// Signals //// Launching Programs //// Using File Redirection and Pipes //// Process Information //// The select() System Call /// Networking //// TCP //// UDP /// Messaging Facilities //// HTTP //// SMTP and POP /// Graphics // Chapter 6: Databases /// Language Support for Databases /// Memory-based Databases /// DBM Databases /// SQL Databases //// The SQL Language //// Database Architectures and ODBC //// Opening a SQL Database //// Querying and Modifying a SQL Database //// Traversing the Selected Rows //// A SQL Example Application //// SQL Types and Unicon Types //// More SQL Database Functions /// Tips and Tricks for SQL Database Applications //// Operating on Large Files //// Use Multiple Connections to Nest Queries //// Dynamic Records //// The db Library //// Unwritable Tuples / Part II: Object-oriented Software Development // Chapter 7: Object-oriented Software Development /// Objects in Programming Languages //// Encapsulation //// Inheritance //// Polymorphism /// Objects in Program Design // Chapter 8: Classes and Objects /// Class Diagrams /// Declaring Classes /// Object Instances /// Object Invocation /// Comparing Records and Classes by Example /// Before Objects /// After Objects // Chapter 9: Inheritance and Associations /// Inheritance //// Inheritance Semantics //// Invoking Superclass Operations //// Inheritance Examples //// Superclass Cycles and Type Equivalence /// Associations //// Aggregation //// User-Defined Associations //// Multiplicities, Roles, and Qualifiers //// Implementing Associations // Chapter 10: Writing Large Programs /// Abstract Classes /// Design Patterns //// Singleton //// Proxy //// Chain of Responsibility //// Visitor /// Packages //// The package declaration //// The import declaration //// Explicit Package References //// Name Conflicts and Name Mangling //// Compilation Order and the Unidep Tool /// HTML documentation // Chapter 11: Use Cases, Statecharts, and Collaboration Diagrams /// Use Cases //// Use Case Diagrams //// Use Case Descriptions /// Statechart Diagrams //// Events and Conditions //// Actions and Activities /// Collaboration Diagrams / Part III: Example Applications // Chapter 12: CGI Scripts /// Introduction to CGI //// Organization of a CGI Script //// Processing Input //// Processing Output //// Common CGI Environment Variables /// The CGI Execution Environment /// An Example HTML Form /// An Example CGI Script: Echoing the User's Input /// Debugging CGI Programs /// Appform: An Online Scholarship Application /// Summary // Chapter 13: System and Administration Tools /// Searching for Files /// Finding Duplicate Files /// User File Quotas //// Calculating Disk Usage //// Sending Mail Messages //// The Quota Database /// Capturing a Shell Command Session /// Filesystem Backups /// Filtering Email // Chapter 14: Internet Programs /// The Client-Server Model /// An Internet Scorecard Server //// The Scorecard Client Procedure //// The Scorecard Server Program /// A Simple "Talk" Program // Chapter 15: Genetic Algorithms /// What are Genetic Algorithms? /// GA Operations //// Fitness //// Crossover //// Mutation /// The GA Process /// ga_eng: a Genetic Algorithm Engine //// The Fitness Function //// Methods and Attributes of Class ga_eng //// A Closer Look at the evolve() Method //// Using ga_eng //// Log Files /// Color Breeder: a GA Application //// Breeding Textures /// Picking Colors for Text Displays // Chapter 16: Games /// Sesrit /// Galactic Network Upgrade War: a Strategy Game //// The Play's the Thing //// Background //// Software Architecture //// Use Cases for Game Activities //// An Object Model for a Galaxy //// The Map //// The User Interface // Chapter 17: Object-oriented User Interfaces /// A Simple Dialog Example /// Positioning Objects /// A More Complex Dialog Example /// Containers //// TabSet //// OverlaySet /// Menu Structures /// Other Components //// Borders //// Images and Icons //// Scroll bars /// Custom Components //// Creating New Components //// Customized Menu Components /// Programming Techniques //// Parameters //// Subclassing /// Ivib //// Moving, Selecting and Resizing //// Dialog Configuration //// Component Configuration //// Component Details //// Other Editing Functions // Chapter 18: Scanning and Parsing /// What are Scanning and Parsing? /// ulex //// A Word Count Program //// A Lexical Analyzer for a Desktop Calculator //// A Summary of the Regular Expression Operators: //// Lexical analyzers in real compilers /// iyacc //// Parse Tree Construction //// A Syntax Analyzer for a Desktop Calculator //// Making It All Work From The Command-Line /// Generating Syntax Error Messages with Merr //// Merr Error Specification Files //// The Merr Command Line /// Final Tips For Using ulex and iyacc /// Summary / Part IV: Appendixes // Appendix A: Language Reference /// Immutable Types //// Integer //// Real //// String //// Cset /// Mutable Types //// List //// Table //// Set //// Record //// Object vii //// File /// Variables //// Global //// Local //// Static //// Class /// Keywords //// Graphics Keywords /// Control Structures and Reserved Words /// Operators and Built-in Functions //// Operators //// Unary Operators //// Binary Operators //// Built-in Functions //// Graphics Functions /// Preprocessor //// Preprocessor Commands //// Predefined Symbols /// Execution Errors //// Runtime Errors //// System Errors // Appendix B: The Icon Program Library /// Procedure Library Modules /// Application Programs, Examples, and Tools /// Selected IPL Authors and Contributors // Appendix C: The Unicon Component Library /// GUI Classes //// _Event //// _Dialog : Container //// Component //// Container : Component //// VisibleContainer : Component //// Button : Component //// TextButton : Button //// IconButton : Button //// ButtonGroup //// Label : Component //// Icon : Component //// Image : Component //// Border : VisibleContainer //// ScrollBar : Component //// TextField : Component //// CheckBox : Component //// CheckBoxGroup //// TextList : Component //// DropDown //// List : Component : DropDown //// EditList : Component : DropDown //// MenuBar : Component //// MenuButton : Component //// viii //// MenuEvent : _Event //// MenuComponent //// SubMenu : MenuComponent //// Menu : SubMenu //// TextMenuItem : MenuComponent //// CheckBoxMenuItem : MenuComponent //// MenuSeparator : MenuComponent //// TableColumn : TextButton //// Table : Component //// TabItem : Container //// TabSet : VisibleContainer //// Panel : VisibleContainer //// OverlayItem : Container //// OverlaySet : VisibleContainer // Appendix D: Differences between Icon and Unicon /// Extensions to Functions and Operators /// Objects /// System Interface /// Database Facilities /// Multiple Programs and Execution Monitoring Support // Appendix E: Portability Considerations /// POSIX extensions //// Information from System Files //// Fork and Exec //// POSIX Functions /// Microsoft Windows //// Partial Support for POSIX //// Native User Interface Components // Appendix F: Additional Unicon Resources /// Icon and Unicon Resources /// Unicon Installation Notes // References // Index end hierarchy uniconhi;