Title: Research Directions in Object Oriented Languages
1Research Directions in Object Oriented Languages
- Bharat Jayaraman
- Professor and Chair
- Department of Computer Science Engineering
- University at Buffalo, NY 14260
- http//www.cse.buffalo.edu/LRG
Joint work with recent PhD graduates Pallavi
Tambay (2003) and Paul Gestwicki (2005) and
several MS students at Buffalo
2 Programming Languages
Imperative
Declarative
Procedural
Data Abstraction
Relational
Functional
Logic
Modules
Constraints
Objects
C
Fortran
ML
Ada
Java
CLP Prolog
3 Two Research Projects
- Modeling Complex Systems
- Interactive Visualization
4I. Modeling Complex Systems
- Motivating Domains
- Engineering
- Organizational
- Biological
-
- Common Characteristics
- Assembly of components
- Laws of behavior
- Natural visual representations
5Building Elements
(Kalay et al 1998)
6Examples of Laws/Constraints
- The load on a wall its load bearing capacity.
- The sum of the forces at a joint should be
zero. - Various other constraints, such as
- - mate constraints
- - flush constraints
- - angle constraints
- etc.
7Our Principles of Modeling
- compositional specification of structure
- ? objects
- declarative specification of behavior
- ? constraints
- visual specification of assembly ? diagrams
8I. Constrained Objects
- An object is a container of data that is accessed
via a well-defined interface of procedures.
(Imperative) - A constrained object contains data that is
governed by laws, or constraints. (Declarative) - Examples
- resistor in a circuit
- a joint in a truss
- a cell in a spreadsheet
9Constraints
- A constraint is a declarative relation among
variables, e.g., - F 32 1.8C
- Constraints are additive, and collectively
enforce the conditions among variables - D 1
- D 31
- D 29 ? M 2 /\ leapyear(Y)
- Many algorithms for constraint satisfaction
101. Circuits as Constrained Objects
V1 I1 R1
V2 I2 R2
V3 I3 R3
11Overview of Cob Programs
- class class_id extends class_id
- attributes
- attributes
- constraints
- constraints
- constructor
- constructor_clauses
-
Class inheritance
equations, inequations, conditional, quantified,
aggregate
12Cob Class Definitions
class parallel extends component attributes
component C constraints forall X in C
(X.V V) (sum X in C X.I) I (sum X
in C 1/X.R) 1/R constructor parallel(P)
C P
class component attributes Real
V, I, R constraints V I R constructor
component(V1, I1, R1) V V1 I I1
R R1
Ohms Law
132. Truss as Constrained Object
Load
Load
Joint
Beam
14- class joint
- attributes
- bar Bars
- load Loads
- constraints
- (sum X in Bars X.B.F sin(X.A))
- (sum L in Loads L.F sin(L.A))
0 - (sum Y in Bars Y.B.F cos(Y.A))
- (sum M in Loads M.F cos(M.A))
0 - constructor joint(B1, L1) Bars B1 Loads
L1 -
15- class bar
- attributes
- beam B real A
- constraints
- 0 ? A A ? 360
- constructor bar (B1, A1)
- B B1 A A1
-
- class load
- attributes
- real F, A
- constraints
- 0 ? A A ? 360
- constructor load (F1, A1)
- F F1 A A1
-
16class beam attributes real E, Sy, L, W,
H, F_bn, F_bk, F_t, Sigma, I, F constraints
Pi 3.141 I F_bk L L / (Pi Pi
E) I W H H H / 12 F_t Sy
W H Sigma H I F_bn / (8 I)
F F_t - F gt 0 F F_bk - F lt
0 constructor beam(E1, Sy1, L1, W1, H1,F1)
E E1 L L1 HH1 WW1 F F1
17 Overall Modeling Scenario
modeling define_classes
build_instance
solve_instance
modify re_solve
query
18Modeling Tools
- Constrained Object Language (Cob)
- Text-based language
- Constraint-Based UML (CUML)
- Domain-independent graphical modeling language
- Domain-Specific Visual Programming
- Diagrammatic notations customized for specific
application domains, e.g., circuits, trusses, etc.
19(with R. Jotwani)
CUML Constraint-based UML
20 CUML ? Cob
21(with A. Dev and N. Menon)
Domain-Specific Visual Language
22(No Transcript)
23(No Transcript)
24Compiled CUML Code
Compiled Circuit Diagram Code
Answers
Cob Compiler
Diagram Manager
Constraint Engine
CLP Code
Optimized Code
Optimizer
25CUML Class Diagram
Compiler
Textual Cob Code
By Chinchani, Pramanik, Dutta
26Circuit Diagram
Compiler
Textual Code
27 Optimized Code (by partial evaluation of
generated code)
- V1 V2 I1 10 I2 20
- V3 V4 I3 20 I4 20
- S.I I1 I2 I3 I4
- 1/P1.R 1/10 1/ 20
- V3 S.I P2 .R
- 1/P2.R 1/20 1/20
- 30 S.I S.R
- 30 V1 V3
- S.R P1.R P2.R
28Building Elements (Kalay 1998)
29Overall Class Diagram
30Class Building
- class building
- attributes
- level Ls
- real Area
- constraints
- Area sum X in Ls X.Area
- constructor
- building(L)
- Ls L
-
Area of the building is the sum of areas of each
level
31Class Slab
- class slab
- attributes
- level Pl
- beam Peripheralbeams
- real Z
- constraints
- forall B in Peripheralbeams B.Z Z
- constructor
- slab(L,B)
- Pl L
- Peripheralbeams B
-
The height of all beams surrounding the slab must
be the same
32Two-level House (Kalay et al)
33Cob Representation for a Space
- space Spaces00
- slab Slabs0
- slab Slabs1
- surface Surfaces00
- beam Beams01
- slab Slabs00
- surface Surfaces003, Surfaces002
- surface Surfaces001, Surfaces000
- horizontalSurface Ceiling00
- horizontalSurface Floor00
- beam B014, B013,B012, B011
- edge Edge003, Edge002
- edge Edge001, Edge000
- wall Wall007, Wall002
- wall Wall001, Wall000
- column C8,C4, C6, C2
- vertex V8, V7, V6, V5
- vertex V26, V30, V36, V31
- level Level0
All the elements needed to depict Spaces00 (green)
34Cob Representation (cont)
- Wall007 new wall( V7, V8, 3.0, B014 )
- Wall002 new wall( V6, V7, 3.0, B013 )
- Wall001 new wall( V5, V6, 3.0, B012 )
- Wall000 new wall( V8, V5, 3.0, B011 )
- Slabs10 new slab( Level1, Beams10 )
- Slabs00 new slab( Level0, Beams00 )
- B012 new beam( V5, V6, B014, _ )
- B011 new beam( V8, V5, B013, _ )
- B014 new beam( V7, V8, B012, _ )
- B013 new beam( V6, V7, B011, _ )
- C4 new column( V6, V50 )
- C6 new column( V8, V51 )
- C2 new column( V5, V46 )
- C8 new column( V7, V55 )
- Edge003 new edge( Surfaces003, V7, Edge011 )
- Edge002 new edge( Surfaces002, V6, _ )
- Edge001 new edge( Surfaces001, V5, _ )
- Edge000 new edge( Surfaces000, V8, _ )
- V36 new vertex( V55, C8, 5.0, 5.0, 3.0 )
35Observations
- Constrained objects represent nicely the
structure and constraints arising in intelligent
building representations. - The model described in this presentation has been
implemented and works in a predictable way. - The current approach, even when applied to a
simple two-level house with five spaces, is still
tedious and error prone. - There is a need for a higher-level specification
from which Cob code can be generated ?
Component-based Design - Inconsistency analysis and debugging are very
important
36 Conclusions and Further Work
- Constrained Objects Constraints Objects
- Applicable in many domains
- Facilitates true visual programming
- Model Analysis and Fault Detection
- Dynamic and Evolving Systems
- Intelligent Visualizations
37II. Interactive Visualization of OO Programs
- Conventional Execution Model
- data objects and procedure activations are in
separate spaces. - Object-Oriented Execution Model
- procedure activations occur inside data
objects, i.e., objects are execution environments - Several more criteria for a good visualization
system for OOPs
38Binary Search Tree in Java
- class Tree
- public Tree(int n)
- value n
- left null
- right null
-
- protected int value
- protected Tree left
- protected Tree right
-
-
- public void insert(int n)
- if (value n) return
- if (value lt n)
- if (right null)
- right new Tree(n)
- else right.insert(n)
- else if (left null)
- left new Tree(n)
- else left.insert(n)
-
391
Tree
Tree
2
3
Tree
5
6
7
Tree
Tree
Tree
4
Tree
401
Tree
Tree
2
3
Tree
5
6
7
Tree
Tree
Tree
4
Tree
41i
Tree
value
int
left
Tree
i
right
Tree
Tree
Tree
const
proc
insert
j
insert
n
int
k
n
rpdl
insert in Tree
42Visualization Criteria
- Object as environments
- Multiple View of Objects
- Aesthetic Drawing
- Forward and Reverse Execution
- History of Execution
- Support Run-time Queries
- Use Existing Compiler and Run-time System
43JIVE Java Interactive Visualization Environment
44JIVE supports Source Code Highlighting, Break
Points, and Forward as well as Reverse
Stepping of Programs
45JIVE Interaction Controls
46(No Transcript)
47Displaying only the Call Path
48(No Transcript)
49Object Diagram without Inherited Objects
50Minimized Object Diagram
51Final Object Diagram
52Final Minimized Diagram
53- Time
- Sequence
- Diagram
- to capture
- the history
- of method
- calls between
- objects
54Tree Program with GUI front-end
55Tree Program with Graphical User Interface
56(No Transcript)
57Selective Expansion of Object Diagram
58Querying the Runtime State
Runtime Query
Which variable has the value 50?
59Visual Display of Query Result
Object BST2 has the answer
Exact point of assignment
60Visual Display of Query Result
Variable V in Object BST2 has the value 50!
61Show all changes to variable left
62Concluding Remarks
- Diagrams clarify Java semantics
- handles advanced features
- Visualization environment
- pedagogic tool
- visual debugger
- JPDA is key to the implementation
- Some research issues
- Aesthetic drawing
- Efficient reverse stepping
63Current and Future Work
- Reverse execution and efficient state-saving
- Drawing algorithms
- Visual Queries
- Relationship between programs and diagrams
- Applications in Security