InterLink William R. Cook UT Austin November 2008.

Post on 21-Dec-2015

218 views 1 download

Tags:

Transcript of InterLink William R. Cook UT Austin November 2008.

InterLink

William R. Cook UT Austin

November 2008

Huge Scale

Open

Non-deterministic

Adaptive

Huge ∧ Open ∧ Stochastic ∧ Adaptive

How many of ushave ever builtsuch a system?

Huge ∨ Open ∨ Stochastic ∨ Adaptive

…or dealt with oneof 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

InterLinkNovember 2008

How(implementation)

What(Specification)

Spectrum of programming

How(implementation)

What(Specification)

Spectrum of programming

Verification

Synthesis

How(implementation)

What(Specification)

Casm

ZCASLAlloy

How(implementation)

What(Specification)

Casm

JavaC#ScalaML Haskell

ZCASLAlloy

How(implementation)

What(Specification)

Casm

JavaC#ScalaML Haskell

SQLBNFExcelHTMLAtt-GrUML

ZCASLAlloy

How(implementation)

What(Specification)

Casm

JavaC#ScalaML H

askell

SQLBNFExcelHTMLUMLAttr-Gr

General

Purpose

Asp

ect

Specific

ZCASLAlloy

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 Applicationsweb(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

web[UI, Schema](db, request) : HTML static dynamic

web[UI, Schema] is partial evaluation of web with respect to UI model and data schema

Dynamic web site (wiki-style) or compiledPossible to generate both web and GUI

Partial Evaluation of Web Interpreter

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

Object

Description

Reflection

Object

Description

Interpretation*

*and partial evaluation

Do notDesign Your Programs

Program Your Designs!