CS 641 Lecture -*- Outline -*- * languages vs. problems (what's the match?) ** styles vs. kinds of problems that work well ------------------------------------------ WHAT KINDS OF PROBLEMS WORK WELL IN... Object-Oriented style (Smalltalk)? Functional style (Haskell)? Logic Programming style (\Prolog)? ------------------------------------------ ... Haskell or SML polymorphism infinite data structures tool building ... Smalltalk conceptual modeling simulation changing domains (planning for change) prototyping ... Prolog databases expert systems (rule based) search and pattern matching specification prototypes ** What kinds of things are not easily done in a given style? ------------------------------------------ WHAT IS NOT EASILY DONE IN ... Object-Oriented style (Smalltalk)? Functional style (Haskell)? Logic Programming style (\Prolog)? ------------------------------------------ ... Haskell or SML: sharing of time-varying data ... Smalltalk: tool building (?) functional programming (?) ... Prolog: tool building (but ok in \Prolog) mutation ** language vs. data structures available (skip) *** Haskell or SML lists, sets, streams, functions, your own *** Smalltalk all kinds of collections, numbers, queues, symbols, your own *** Prolog lists, your own