240 likes | 392 Views
InterLink. William R. Cook UT Austin November 2008. Huge Scale Open Non-deterministic Adaptive. Huge ∧ Open ∧ Stochastic ∧ Adaptive. How many of us have ever built such a system?. Huge ∨ Open ∨ Stochastic ∨ Adaptive. …or dealt with one of them?. Choices?.
E N D
InterLink William R. Cook UT Austin November 2008
Huge Scale Open Non-deterministic Adaptive
Huge ∧ Open ∧ Stochastic ∧ Adaptive How many of us have ever built such a system?
Huge ∨ Open ∨ Stochastic ∨ Adaptive …or dealt with one of them?
Choices? Emergent behavior versus Compositionality “Fitness to Purpose” versus Verification Dynamic Languages versus Type Systems
Methodology? Try and build such systems (Don't worry about methodology or tools) Just build it Analyze and build tools along the way
Question Assumptions The Interactive Nature of Computing: Refuting the Strong Church-Turing Thesis Minds and Machines, Volume 18, Issue 1 (March 2008) Expanded version of 2003 CACM paper Turing Machines do not express all computations, only computable funtions Interaction: or feedback with outputs to inputs What does an operating system compute?
Strategic Programming William R. Cook UT Austin InterLink November 2008
Spectrum of programming What (Specification) How (implementation)
Spectrum of programming Synthesis What (Specification) How (implementation) Verification
Z CASL Alloy C asm What (Specification) How (implementation)
Java C# Scala ML Z CASL Alloy Haskell C asm What (Specification) How (implementation)
SQL BNF Excel HTML Att-Gr UML Java C# Scala ML Z CASL Alloy Haskell C asm What (Specification) How (implementation)
SQL BNF Excel HTML UML Attr-Gr Aspect Specific Java C# Scala ML Z CASL Alloy General Purpose Haskell C asm What (Specification) How (implementation)
Strategic Programming Another view of Model-driven development Domain-specific language engineering System = General strategies: interpreter Specifics of problem at hand: model Compilation by partial evaluation
Challenge: Integrating Models Grammars/Parsers (Yacc) Queries (SQL, OQL) Semantic Data Models (ER/UML) State machines (Statecharts, xUML) Security models (rule-based access control) User interface models (web) Dependency models (Make) Workflow models (Orc)
Challenge: Building Complete Systems User Interface Mapping to/from data for web & GUI Security/Authorization Enforced as checks, provide metadata to UI Triggers and Workflow React to conditions, concurrent workflow Semantic Data Models (graphs) Graphs: constraints, computations, relationships Generic Operations Read, write, parse, compare, diff, merge, …
Web Applications web(UI, Schema, db, request) : HTML UI : description of user interface (pages, sections) schema: description of data (constraints, etc) db : data store (described by schema) request : an HTTP request web : interpreter, with design knowledge Addresses key problem: Integrating multiple models
Partial Evaluation of Web Interpreter web[UI, Schema](db, request) : HTML staticdynamic web[UI, Schema] is partial evaluation of web with respect to UI model and data schema Dynamic web site (wiki-style) or compiled Possible to generate both web and GUI
Conclusion Strategic Programming Interpretation of descriptions Aspects as interpreter extensions Compilation by partial evaluation + deforestation Self-implemented system (Scheme) Not for all kinds of programming Not for unique programs
Description Reflection Object
Description Interpretation* Object *and partial evaluation