InterLink

24
InterLink William R. Cook UT Austin November 2008

description

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?. - PowerPoint PPT Presentation

Transcript of InterLink

Page 1: InterLink

InterLink

William R. Cook UT Austin

November 2008

Page 2: InterLink

Huge Scale

Open

Non-deterministic

Adaptive

Page 3: InterLink

Huge ∧ Open ∧ Stochastic ∧ Adaptive

How many of ushave ever builtsuch a system?

Page 4: InterLink

Huge ∨ Open ∨ Stochastic ∨ Adaptive

…or dealt with oneof them?

Page 5: InterLink

Choices?

Emergent behavior versus Compositionality

“Fitness to Purpose” versus Verification

Dynamic Languages versus Type Systems

Page 6: InterLink

Methodology?

Try and build such systems

(Don't worry about methodology or tools)

Just build it

Analyze and build tools along the way

Page 7: InterLink

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?

Page 8: InterLink

Strategic Programming

William R. Cook UT Austin

InterLinkNovember 2008

Page 9: InterLink

How(implementation)

What(Specification)

Spectrum of programming

Page 10: InterLink

How(implementation)

What(Specification)

Spectrum of programming

Verification

Synthesis

Page 11: InterLink

How(implementation)

What(Specification)

Casm

ZCASLAlloy

Page 12: InterLink

How(implementation)

What(Specification)

Casm

JavaC#ScalaML Haskell

ZCASLAlloy

Page 13: InterLink

How(implementation)

What(Specification)

Casm

JavaC#ScalaML Haskell

SQLBNFExcelHTMLAtt-GrUML

ZCASLAlloy

Page 14: InterLink

How(implementation)

What(Specification)

Casm

JavaC#ScalaML H

askell

SQLBNFExcelHTMLUMLAttr-Gr

General

Purpose

Asp

ect

Specific

ZCASLAlloy

Page 15: InterLink

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

Page 16: InterLink

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)

Page 17: InterLink

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, …

Page 18: InterLink

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

Page 19: InterLink

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

Page 20: InterLink

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

Page 21: InterLink

Object

Description

Reflection

Page 22: InterLink

Object

Description

Interpretation*

*and partial evaluation

Page 23: InterLink

Do notDesign Your Programs

Page 24: InterLink

Program Your Designs!