Preface......Page 9 Contents......Page 3 --- Core Unicon......Page 15 First Unicon Program......Page 17 Command Line Options......Page 22 Expressions & Types......Page 23 Numeric Computation......Page 24 Strings & Csets......Page 25 Goal-directed Evaluation......Page 26 Generators......Page 28 Iteration & Control Structures......Page 30 Procedures......Page 32 Structures......Page 39 Tables......Page 40 Lists......Page 41 Records......Page 43 Structures......Page 44 Summary......Page 50 String Indexes......Page 51 Character Escapes......Page 53 String Analysis......Page 54 Regular Expressions......Page 59 Pattern Composition......Page 60 String Scanning & Pattern Matching Miscellany......Page 61 Grammars......Page 62 Limiting or Negating an Expression......Page 67 List Structures & Parameter Lists......Page 68 Co-Expressions......Page 69 User Control Structures......Page 70 Parallel Evaluation......Page 71 Coroutines......Page 72 Permutations......Page 73 Simulation......Page 75 Role of System Interface......Page 79 Files & Directories......Page 80 Programs & Process Control......Page 83 Networking......Page 87 Messaging Facilities......Page 91 Tasks......Page 93 Summary......Page 100 Language Support for Databases......Page 101 DBM Databases......Page 102 SQL Databases......Page 104 Tips & Tricks for SQL Database Applications......Page 110 Summary......Page 112 2D Graphics Basics......Page 113 Graphics Contexts......Page 116 Events......Page 118 Colors & Fonts......Page 120 Images, Palettes & Patterns......Page 121 3D Graphics......Page 127 Textures......Page 132 Summary......Page 144 Threads......Page 145 First Look at Unicon Threads......Page 146 Thread Safety......Page 150 Thread Synchronization......Page 152 Thread Communication......Page 163 Practical Examples using Threads & Messages......Page 171 Disk Space Usage......Page 175 Summary......Page 178 Monitor Architecture......Page 181 Obtaining Events using evinit......Page 189 Instrumentation in the Icon Interpreter......Page 191 Artificial Events......Page 193 Monitoring Techniques......Page 194 Conclusions......Page 196 --- Object-oriented Software......Page 197 Objects in Programming Languages......Page 199 Objects in Program Design......Page 202 Classes & Class Diagrams......Page 203 Declaring Classes......Page 205 Object Instances & Initially Sections......Page 206 Object Invocation......Page 208 Comparing Records & Classes......Page 209 Summary......Page 211 Inheritance......Page 213 Aggregation......Page 225 User Associations......Page 226 Summary......Page 229 Abstract Classes......Page 231 Design Patterns......Page 233 Packages......Page 238 Summary......Page 242 Use Cases & Supplemental UML Diagrams......Page 245 Use Cases......Page 246 Statechart Diagrams......Page 249 Collaboration Diagrams......Page 251 Summary......Page 252 --- Example Applications......Page 253 Intro to CGI......Page 255 CGI Execution Environment......Page 258 Example HTML Form......Page 259 Example CGI Script......Page 260 Debugging CGI Programs......Page 261 Appform......Page 262 Searching for Files......Page 265 Finding Duplicate Files......Page 267 User File Quotas......Page 273 Capturing a Shell Command Session......Page 278 Filesystem Backups......Page 280 Filtering Email......Page 284 Summary......Page 289 Client-Server Model......Page 291 Internet Scorecard Server......Page 292 Simple "Talk" Program......Page 295 Summary......Page 301 What are Genetic Algorithms......Page 303 Operations - Fitness, Crossover & Mutation......Page 304 GA Process......Page 307 ga_eng - Genetic Algorithm Engine......Page 308 Color Breeder - GA Application......Page 313 Picking Colors for Text Displays......Page 315 Simple Dialog Example......Page 317 More Complex Dialog Example......Page 320 Containers......Page 327 Menu Structures......Page 329 Other Components......Page 332 Trees......Page 333 Images & icons......Page 337 Custom Components......Page 338 Tickers......Page 348 Selection......Page 353 Drag-and-drop......Page 354 Programming Techniques......Page 361 ivib......Page 363 Summary......Page 370 --- Appendices......Page 371 Immutable Types - Numbers, Strings, Csets, Patterns......Page 373 Mutable Types - Containers & Files......Page 375 Variables......Page 376 Keywords......Page 377 Control Structures & Reserved Words......Page 383 Operators & Built-in Functions......Page 387 Preprocessor......Page 420 Execution Errors......Page 422 IPL......Page 429 Procedure Library Modules......Page 430 Application Programs, Examples & Tools......Page 470 Selected IPL Authors & Contributors......Page 490 Unicon Component Library......Page 491 System Interface......Page 505 Multiple Programs & Execution Monitoring Support......Page 506 POSIX Extensions......Page 507 Windows......Page 512 Installation......Page 515 Biblio......Page 517 Index......Page 519