# 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;