Trip Report: DSL ‘97 October 15-17, 1997 Santa Barbara CA.

Slides:



Advertisements
Similar presentations
Object-Oriented Software Engineering Visual OO Analysis and Design
Advertisements

Microsoft Research March 20, 2000 A Programming Language for Developing Interactive Web Services Claus Brabrand BRICS, University of Aarhus, Denmark.
Why am I here Development techniques are headed down the wrong path! Our world should be getting simpler – it is not The solutions that will solve the.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
University of British Columbia Software Practices Lab Fluid AOP Join Point Models Terry Hon Gregor Kiczales.
October - December 2013CSC5021: The Problem With Aspects (J P Gibson)1 The Problem With Aspects (AOP) A style of programming that attempts to abstract.
Introduction To System Analysis and Design
© 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
490dp Synchronous vs. Asynchronous Invocation Robert Grimm.
Representing programs Goals. Representing programs Primary goals –analysis is easy and effective just a few cases to handle directly link related things.
1/18 CS 693/793 Lecture 09 Special Topics in Domain Specific Languages CS 693/793-1C Spring 2004 Mo, We, Fr 10:10 – 11:00 CH 430.
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
Scripting Languages For Virtual Worlds. Outline Necessary Features Classes, Prototypes, and Mixins Static vs. Dynamic Typing Concurrency Versioning Distribution.
Week 8 Implementation Design Alex Baker. Implementation Design System Design – Describes what the system should do Implementation Design – Describes what.
Unified Modeling (Part I) Overview of UML & Modeling
Understanding Metamodels. Outline Understanding metamodels Applying reference models Fundamental metamodel for describing software components Content.
Harmless Advice Daniel S Dantas Princeton University with Prof. David Walker.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
© 2008 IBM Corporation Behavioral Models for Software Development Andrei Kirshin, Dolev Dotan, Alan Hartman January 2008.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Type-Directed, Whitespace-Delimited Parsing for Embedded DSLs Cyrus Omar School of Computer Science Carnegie Mellon University [GlobalDSL13] Benjamin ChungAlex.
Extensible Type-Driven Parsing for Embedded DSLs in Wyvern Cyrus Omar Benjamin Chung Darya Kurilova Ligia Nistor Alex Potanin (Victoria University of Wellington)
Precision Going back to constant prop, in what cases would we lose precision?
Introduction to Aspect- Oriented Programming CS 3360 Gregor Kiczales, et. al. Getting started with AspectJ, CACM, 44(10):59-65, October Fall 2012.
Starting Chapter 4 Starting. 1 Course Outline* Covered in first half until Dr. Li takes over. JAVA and OO: Review what is Object Oriented Programming.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
LAYING OUT THE FOUNDATIONS. OUTLINE Analyze the project from a technical point of view Analyze and choose the architecture for your application Decide.
1 CSE 2102 CSE 2102 CSE 2102: Introduction to Software Engineering Ch9: Software Engineering Tools and Environments.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Introduction To System Analysis and Design
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Programming Models & Runtime Systems Breakout Report MICS PI Meeting, June 27, 2002.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
CST320 - Lec 11 Why study compilers? n n Ties lots of things you know together: –Theory (finite automata, grammars) –Data structures –Modularization –Utilization.
Patterns and Reuse. Patterns Reuse of Analysis and Design.
A Little Language for Surveys: Constructing an Internal DSL in Ruby H. Conrad Cunningham Computer and Information Science University of Mississippi.
Verification and Validation in the Context of Domain-Specific Modelling Janne Merilinna.
INRIA - LaBRICharles Consel Jan-06 1 Domain-Specific Software Engineering Charles Consel Phoenix Research Group LaBRI /INRIA-Futurs January 2006.
Automata Based Method for Domain Specific Languages Definition Ulyana Tikhonova PhD student at St. Petersburg State Politechnical University, supervised.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Demeter Aspects We study techniques for the emerging area of Aspect-Oriented Software Development and focus on the following areas:  Aspectual Collaborations.
Introduction to Interactive Media Interactive Media Tools: Authoring Applications.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Towards a Reference Quality Model for Digital Libraries Maristella Agosti Nicola Ferro Edward A. Fox Marcos André Gonçalves Bárbara Lagoeiro Moreira.
CPS120: Introduction to Computer Science Compiling a C++ Program From The Command Line.
Parastoo Mohagheghi 1 A Multi-dimensional Framework for Characterizing Domain Specific Languages Øystein Haugen Parastoo Mohagheghi SINTEF, UiO 21 October.
Advanced Software Development Karl Lieberherr CSG 260 Fall Semester
Aspect Oriented Security Tim Hollebeek, Ph.D.
Source Level Debugging of Parallel Programs Roland Wismüller LRR-TUM, TU München Germany.
CS223: Software Engineering
Chapter – 8 Software Tools.
FUNCTIONAL PROGRAMING AT WORK - HASKELL AND DOMAIN SPECIFIC LANGUAGES Dr. John Peterson Western State Colorado University.
Application architectures Advisor : Dr. Moneer Al_Mekhlafi By : Ahmed AbdAllah Al_Homaidi.
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Complexity Time: 2 Hours.
Demeter Aspects Who We Are Aspectual Collaborations
Chapter 10: Process Implementation with Executable Models
Multiple Aspect Modeling of the Synchronous Language Signal
Software Engineering with Reusable Components
Modular design of domain-specific languages
A GUI Based Aid for Generation of Code-Frameworks of TMOs
On the notion of Variability in Software Product Lines
Chapter 5 Architectural Design.
Presentation transcript:

Trip Report: DSL ‘97 October 15-17, 1997 Santa Barbara CA

AHA! Natural History of DSLs (I) In domain engineering, you analyze a set of applications for commonalities and dimensions of variation. Design a DSL to express each dimension of variation. Then weave the results together. Are these aspects?? NO!

Examples: DB systems: –schemas/forms/reports Distributed Systems: –functionality/concurrency/communication/cohe rence/security

Examples Cache coherence protocols (Chandra, Larus, et al) Web/voice response systems [Mawl] (Atkins, Ball, et al) –service logic/presentation 3D animation (Elliott) –model/presentation

Morals for us in order to make progress, we need to have a domain (a family of applications) to analyze. "C++ data structure programs" isn't specific enough. Who can we collaborate with? QoS a good start, but still maybe not specific enough.

AHA! Natural History of DSLs (II) DSLs start out as "pure embedded" DSLs, ie libraries embedded in GPLs. Turning this into a standalone language restricts flexibility, BUT Now can do better analysis of DSL programs Can reason at domain level instead of host- language level Big theme of conference

More Interesting Presentations Zephr ASDL -- possibly useful tool –maybe a good customer, too Khepera -- automatically adds debugging support to transformation systems Use postprocessor to give user output in domain-specific terms (for errors, too)

Simonyi -- Intentional Programming programmer's intention is always in domain terms abstraction object = programmer's intention IP: a new habitat for high level abstractions program is network of objects (intentions) objects know how to display themselves (at lesser or greater level of detail (?)), how to compile themselves given info about context, etc.

Simonyi -- Intentional Programming (II) My summary: like visual programming: network of objects is primary, textual representation is secondary. Program by opening property sheets like Windows 95. Gregor's summary: smalltalk/interlisp done "right" (ie with modern engineering).

Technical question: what conventions does system impose on new primitives? This determines what level of interoperation is expected/required.

Don Batory -- Genvoca type equations aren't functions; they are specification, like specification of a protocol stack. not right to think of IO or OI evaluation: the system looks at the protocol stack and weaves it together. He’s waiting for us to send him specs!!

Kiczales -- Aspect-Oriented Programming separation of concerns, modularity is good but traditional design captures only part of system behavior can't talk about "emergent entities" –path of a msg through a system –dataflows (lifetimes, source/sink of data item) –control states (concurrency, blocking relations, stack state)

Minimizing network load printer library user library title, author, isbn printable format controlling slot copying method invocations book

Emergent entities printer library user book library emerge 1 during program execution –from (possibly non-local) interactions of the components are not components –do not exist explicitly in the component model or code 1 emerge: to become manifest; to rise from or as if from an enveloping fluid; come out into view

Aspects aspect = modular unit of control over an emergent entity talked at length about "AspectJ", but didn't mention Crista !?!

Domain Transformations Reflection links static and dynamic domains other linking transforms: unfolding, CPS, PE,... like Fourier transform: transforms from time domain to frequency domain-- what's local in one is distributed in the other.

Big Problems in AOP/DSL understanding these transforms. interfaces between different aspect languages (type checking, etc.)

AHA! A Foundation for AOP Flows, etc are attempt to capture/describe dynamic behavior Think about interpreter: –can easily capture info about variable binding/flow, etc. –so what's implicit in pgm text can be explicit in interpreter –pgm text is implicit in interpeter

A Foundation for AOP (II) So could easily imagine interpreter with annotations to collect certain dynamic info and act on it. Semantics! Turn into compiler by PE of some sort