February 23, 2006 Center for Hybrid and Embedded Software Systems Ptalon Ptalon is an ADL with a simple goal: Make it easier.

Slides:



Advertisements
Similar presentations
Copyright © 2003 by Prentice Hall Computers: Tools for an Information Age Chapter 15 Programming and Languages: Telling the Computer What to Do.
Advertisements

INHERITANCE BASICS Reusability is achieved by INHERITANCE
Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance.
Using Eclipse. Getting Started There are three ways to create a Java project: 1:Select File > New > Project, 2 Select the arrow of the button in the upper.
Your First Java Program: HelloWorld.java
What is a Programming Language? The computer operates using binary numbers. The computer only knows about 1’s and 0’s. Humans can also use 1’s and 0’s,
Object Orientated Programming
George Blank University Lecturer. CS 602 Java and the Web Object Oriented Software Development Using Java Chapter 4.
Component Technologies for Embedded Systems Johan Eker.
February 21, 2008 Center for Hybrid and Embedded Software Systems Driving Application: 4D Tele-immersion Future Work Though.
5 th Biennial Ptolemy Miniconference Berkeley, CA, May 9, 2003 Java Code Generation Steve Neuendorffer UC Berkeley.
Inheritance and Class Hierarchies Chapter 3. Chapter 3: Inheritance and Class Hierarchies2 Chapter Objectives To understand inheritance and how it facilitates.
February 11, 2010 Center for Hybrid and Embedded Software Systems Ptolemy II - Heterogeneous Concurrent Modeling and Design.
OOP in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
February 12, 2009 Center for Hybrid and Embedded Software Systems Encapsulated Model Transformation Rule A transformation.
Computers: Tools for an Information Age
HST 952 Computing for Biomedical Scientists Lecture 2.
Created by Ron Beglieter (based on the Java Tutorial) 1 What is Java? Java technology is both a programming language and a platform; Programming Language.
February 21, 2008 Center for Hybrid and Embedded Software Systems Mapping A Timed Functional Specification to a Precision.
February 12, 2009 Center for Hybrid and Embedded Software Systems Model Transformation Using ERG Controller Thomas H. Feng.
1 Programming & Programming Languages Overview l Machine operations and machine language. l Example of machine language. l Different types of processor.
Models of Computation as Program Transformations Chris Chang
Course Instructor: Aisha Azeem
01 Introduction to Java Technology. 2 Contents History of Java What is Java? Java Platforms Java Virtual Machine (JVM) Java Development Kit (JDK) Benefits.
Lecture 1 Introduction to Java MIT- AITI 2004 What is a Computer Program? For a computer to be able to do anything (multiply, play a song, run a word.
Java Workshop for Teachers May 6, 2005 A Brief Look at the Java Programming Language.
Basics Programming Concepts. Basics A computer program is a set of instructions to tell a computer what to do Machine language = circuit level language.
UNIVERSITI TENAGA NASIONAL “Generates Professionals” CHAPTER 4 : Part 2 INTRODUCTION TO SOFTWARE DEVELOPMENT: PROGRAMMING & LANGUAGES.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
1 Java Inheritance. 2 Inheritance On the surface, inheritance is a code re-use issue. –we can extend code that is already written in a manageable manner.
Chapter 1 Introduction. Goal to learn about computers and programming to compile and run your first Java program to recognize compile-time and run-time.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
Java Spring PImage Let’s look at the PImage class in ProcessingPImage –What are the fields (i.e., variables)? –What methods are available? –What.
CIS 644 Aug. 25, 1999 tour of Java. First … about the media lectures… we are experimenting with the media format please give feedback.
POS 406 Java Technology And Beginning Java Code
CS 3131 Introduction to Programming in Java Rich Maclin Computer Science Department.
Applied Computing Technology Laboratory QuickStart C# Learning to Program in C# Amy Roberge & John Linehan November 7, 2005.
Module 4 Part 2 Introduction To Software Development : Programming & Languages Introduction To Software Development : Programming & Languages.
Object Oriented Programming Examples: C++, Java Advantages: 1. reusibility of code 2. ability to adapt (extend) previously written code.
JAVA Programming “When you are willing to make sacrifices for a great cause, you will never be alone.” Instructor: รัฐภูมิ เถื่อนถนอม
Lecture 1. Introduction to Programming and Java MIT- AITI 2003.
Design Patterns Software Engineering CS 561. Last Time Introduced design patterns Abstraction-Occurrence General Hierarchy Player-Role.
Incremental Checkpointing with Application to Distributed Discrete Event Simulation Thomas Huining Feng and Edward A. Lee {tfeng,
Java Software Solutions Lewis and Loftus Chapter 9 1 Copyright 1997 by John Lewis and William Loftus. All rights reserved. Enhanced Class Design -- Introduction.
Inheritance and Class Hierarchies Chapter 3. Chapter 3: Inheritance and Class Hierarchies2 Chapter Objectives To understand inheritance and how it facilitates.
Inheritance and Class Hierarchies Chapter 3. Chapter Objectives  To understand inheritance and how it facilitates code reuse  To understand how Java.
Satisfying Requirements BPF for DRA shall address: –DAQ Environment (Eclipse RCP): Gumtree ISEE workbench integration; –Design Composing and Configurability,
Object orientation and Packaging in Java Object Orientation and Packaging Introduction: After completing this chapter, you will be able to identify.
ITP 109 Week 2 Trina Gregory Introduction to Java.
Exception and Exception Handling. Exception An abnormal event that is likely to happen during program is execution Computer could run out of memory Calling.
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Introducing IBM Rational Software Architect
Computer Programming Your First Java Program: HelloWorld.java.
The eclipse IDE IDE = “Integrated Development Environment”
Unified Modeling Language (UML)
Introduction to programming in java
Ptolemy II - Heterogeneous Concurrent Modeling and Design in Java
Unified Modeling Language
CompSci 230 Software Construction
An Overview of Java.
Ptolemy II - Heterogeneous Concurrent Modeling and Design in Java
Code Generation for Ptolemy II
Compositionality in Synchronous Data Flow
Ptolemy II - Heterogeneous Concurrent Modeling and Design in Java
Analysis models and design models
Ptolemy II - Heterogeneous Concurrent Modeling and Design in Java
Chap 1. Getting Started Objectives
Chap 4. Programming Fundamentals
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
Presentation transcript:

February 23, 2006 Center for Hybrid and Embedded Software Systems Ptalon Ptalon is an ADL with a simple goal: Make it easier for programmers to build large models. It is in the very early stages of development; we are still debating what the core features of the language, like the inheritance and high order mechanisms, should look like. To the left is our first model written in Ptalon. Here the components are defined outside of Ptalon in a Java format compatible with Ptolemy II. This is intentional; Ptalon should only specify the interconnection structure, not define the components, so that it can target many platforms. Our prototype compiler generates code that is launched in Vergil to the right. package ptolemy.actor.ptalon; import... public class HelloWorld extends TypedCompositeActor { HelloWorld() throws... { super(); setName("HelloWorld"); SDFDirector director = new SDFDirector(this, "SDF"); Ramp r = new Ramp(this, "r"); Display d = new Display(this, "d"); d.columnsDisplayed.setExpression("50"); TypedIORelation r_output__d_input = new TypedIORelation(this, "r_output__d_input"); r.output.insertLink(0, r_output__d_input); d.input.insertLink(0, r_output__d_input); } public static void main(final String[] args) {... } “HelloWorld.java” Motivation As computation becomes increasingly distributed, the architecture description languages (ADLs) developed over the past decade are helping software designers shift focus from lines-of-code to the interconnection structure between components. This is necessary in a world of large-scale distributed systems. Interconnection structure alone will do little to make programming tens of thousands of components manageable. In addition to “standard” ADL features like hierarchical composition and parameterization, we think that supporting “interconnection inheritance” and “high-order interconnections” will be key to the success of ADLs. The ACME ADL already supports limited interconnection inheritance, and high order functions are standard to distributed programmers on the Google File System. Consider a distributed sort example. A high order interconnection structure might be determined by two parameters, a sort component and the number of sort components. A subclass of such a model might add a merge component as a third parameter. A designer need only specify the structural building blocks and a rule for extending the structure, rather than specify thousands of connections manually. model HelloWorld() { actors { r = Ramp(), d = Display(columnsDisplayed = "50") } connections { link r.output to d.input } attributes { actor ptolemy.actor.lib.gui.Display, actor ptolemy.actor.lib.Ramp, director ptolemy.domains.sdf.kernel.SDFDirector } “HelloWorld.ptln” A First Look at Ptalon Adam Cataldo Thomas Feng Edward Lee Generate a Java file compatible with the Ptolemy II API java PtolemyGenerator.class HelloWorld.ptln java HelloWorld.class Generate a MoML description of the model vergil HelloWorld.xml Open the file in the Vergil editor Apply the Vergil autolayout feature to see the model Run the model to view the results <!DOCTYPE entity PUBLIC "-//UC Berkeley//DTD MoML 1//EN" " “HelloWorld.xml” Research Directions In the near future, we plan to identify useful mechanisms for model inheritance and high order models in Ptalon. In this attempt, we hope to find a generic implementation strategy, so we can target multiple output formats, like C and Java.