CSC302 2007S, Class 34: Declarative Langauges Admin: * When does each group want to present? * EC for attending today's Quantitative Sociology talk. * Handout: SEQUEL * For Friday Overview: * Language Paradigms, Revisited. * Abstraction, Revisited. * Common Categories of Declarative Languages. * Predicate Logic Languages. * Regular Expression Languages. * Database Languages. /Language Paradigms/ * Traditional classification * Imperative - Command based * Algorithms/programs expressed as sequences of commands * Emphasis: Focus on how to sequence (goto, control structures) * Emphasis: What kinds of commands (von Neumann - Data movement) * Object-Oriented * Algorithms/programs expressed as a collection of communicating objects * An object groups data and methods/messages that operate on those data * Expectation: Inheritance, Polymorphism, Encapsulation * (Functional) * Algorithms/programs expressed as definition and application of functions * Expectation: Lists, symbolic data type, higher-order procedures, gc * Detour: What's the difference between functional and imperative, given that we define and apply functions in imperative languages, too? * More likely to be able to do higher-order programming in functional than in imperative * Functional programs less likely to involve side effects * Pure functional programming has none * Declarative - Declaration based * Algorithms/programs expressed as