SEERE Workshop, Neum 20091 Tempura Retargeting Damyan Mitev, Vladimir Valkanov Plovdiv University “Paisii Hilendarski”

Slides:



Advertisements
Similar presentations
TSpaces Services Suite: Automating the Development and Management of Web Services Presenter: Kevin McCurley IBM Almaden Research Center Contact: Marcus.
Advertisements

Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
Agent-Oriented InfoStation Architecture Ivan Minov University of Plovdiv “Paisii Hilendarski“
CHAPTER 1: AN OVERVIEW OF COMPUTERS AND LOGIC. Objectives 2  Understand computer components and operations  Describe the steps involved in the programming.
Department of Software Engineering Faculty of Mathematics and Physics CHARLES UNIVERSITY IN PRAGUE Czech Republic Extracting Zing Models from C Source.
ELSE – eLearning in Software Engineering Stanimir Stoyanov, Distributed eLearning Center (DeLC), University of Plovdiv.
SEERE, Neum 2009 Runtime verification of Java programs using ITL Vladimir Valkanov, Damyan Mitev Plovdiv, Bulgaria.
Software Testing and Quality Assurance
Application of Coloured Petri Net for Agent Control and Communication in the ABAsim Architecture Antonín Kavička University of Pardubice, Czech Republic.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Programming Language Semantics Mooly SagivEran Yahav Schrirber 317Open space html://
Semantics with Applications Mooly Sagiv Schrirber html:// Textbooks:Winskel The.
November 18, 2004 Embedded System Design Flow Arkadeb Ghosal Alessandro Pinto Daniele Gasperini Alberto Sangiovanni-Vincentelli
Programming Logic and Design, Introductory, Fourth Edition1 Understanding Computer Components and Operations (continued) A program must be free of syntax.
C++ fundamentals.
Introduction To System Analysis and design
Introduction to Java Appendix A. Appendix A: Introduction to Java2 Chapter Objectives To understand the essentials of object-oriented programming in Java.
UML - Development Process 1 Software Development Process Using UML (2)
Course Revision Contents  Compilers  Compilers Vs Interpreters  Structure of Compiler  Compilation Phases  Compiler Construction Tools  A Simple.
Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and Elizabeth Drake Chapter 2: Developing a Program.
CIS Computer Programming Logic
C++ Code Analysis: an Open Architecture for the Verification of Coding Rules Paolo Tonella ITC-irst, Centro per la Ricerca Scientifica e Tecnologica
Chapter 5: Control Structures II (Repetition)
EGR 2261 Unit 5 Control Structures II: Repetition  Read Malik, Chapter 5.  Homework #5 and Lab #5 due next week.  Quiz next week.
Business Analysis and Essential Competencies
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Context-aware management of e-services (Tempura reengineering) Vladimir Valkanov University of Plovdiv 28/08/ th Workshop "SERE" Bansko, Aug.
Department of Computer Science A Static Program Analyzer to increase software reuse Ramakrishnan Venkitaraman and Gopal Gupta.
DEPARTMENT OF COMPUTER SCIENCE & TECHNOLOGY FACULTY OF SCIENCE & TECHNOLOGY UNIVERSITY OF UWA WELLASSA 1 CST 221 OBJECT ORIENTED PROGRAMMING(OOP) ( 2 CREDITS.
The Generic Gaming Engine Andrew Burke Advisor: Prof. Aaron Cass Abstract Games have long been a source of fascination. Their inherent complexity has challenged.
Introduction to Computer Programming Using C Session 23 - Review.
Object-Oriented Program Development Using Java: A Class-Centered Approach, Enhanced Edition.
Chapter 1 Introduction to Structured Design. Introduction  System  A combination of people, equipment, and procedures that work together to perform.
© 2011 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Stewart Venit ~ Elizabeth Drake Developing a Program.
ECE 353 Lab 1: Cache Simulation. Purpose Introduce C programming by means of a simple example Reinforce your knowledge of set associative caches.
Lecture 1 Introduction Figures from Lewis, “C# Software Solutions”, Addison Wesley Richard Gesick.
Static Program Analyses of DSP Software Systems Ramakrishnan Venkitaraman and Gopal Gupta.
1.  10% Assignments/ class participation  10% Pop Quizzes  05% Attendance  25% Mid Term  50% Final Term 2.
Chapter 5: Control Structures II (Repetition). Objectives In this chapter, you will: – Learn about repetition (looping) control structures – Learn how.
ProgrammingLanguages Programming Languages Language Definition, Translation and Design.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Chapter 1 Introduction. Chapter 1 - Introduction 2 The Goal of Chapter 1 Introduce different forms of language translators Give a high level overview.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
1 Compiler & its Phases Krishan Kumar Asstt. Prof. (CSE) BPRCE, Gohana.
STL CSSE 250 Susan Reeder. What is the STL? Standard Template Library Standard C++ Library is an extensible framework which contains components for Language.
310414IMPLEMENTATION1 IMPLEMENTATIONIMPLEMENTATION SOFTWARE ENGINEERING SOFTWARE ENGINEERING.
SEERE Workshop, Ivanjica JTempura Vladimir Valkanov, Damyan Mitev Plovdiv University “Paisii Hilendarski”
Higher Computing Science 2016 Prelim Revision. Topics to revise Computational Constructs parameter passing (value and reference, formal and actual) sub-programs/routines,
Compiler Construction CPCS302 Dr. Manal Abdulaziz.
Overview of Compilation Prepared by Manuel E. Bermúdez, Ph.D. Associate Professor University of Florida Programming Language Principles Lecture 2.
Microsoft Visual Basic 2012: Reloaded Fifth Edition Chapter One An Introduction to Visual Basic 2012.
Programming Languages Concepts Chapter 1: Programming Languages Concepts Lecture # 4.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
1 The user’s view  A user is a person employing the computer to do useful work  Examples of useful work include spreadsheets word processing developing.
Compilers Principles, Techniques, & Tools Taught by Jing Zhang
Object-Oriented Analysis and Design
Compiler Construction (CS-636)
Arab Open University 2nd Semester, M301 Unit 5
OO Methodology OO Architecture.
课程名 编译原理 Compiling Techniques
Java programming lecture one
Object-Orientated Programming
Algorithms and Problem Solving
Principles of Programming Languages
Course Overview PART I: overview material PART II: inside a compiler
Compilers Principles, Techniques, & Tools Taught by Jing Zhang
Software Development Process Using UML Recap
Presentation transcript:

SEERE Workshop, Neum Tempura Retargeting Damyan Mitev, Vladimir Valkanov Plovdiv University “Paisii Hilendarski”

SEERE Workshop, Neum CAMeLS project flexible, adaptive, collaborative, context-aware service and agent-oriented eLearning environment uses InfoStation network architecture delivers personalized, mobile, any-time and any-where assess to educational content and services

SEERE Workshop, Neum InfoStation middleware manages services and mobile users scenario based – « No change » scenario – « Change IS » scenario – « Change MD » scenario – « Change both » scenario

SEERE Workshop, Neum Scenarios depend on movement of user and used mobile device mandate different behavior of the middleware – different device profiles (capabilities) – cached information in the InfoStations – availability of services in different InfoStations time dependant

SEERE Workshop, Neum Scenario detection and control we need – formal description of scenarios – mechanisms to interpret that description we gain – flexible mechanisms for creating new (sub) scenarios – easily define corresponding middleware behavior

SEERE Workshop, Neum Scenario formalism Interval Temporal Logic – propositional and first-order logical reasoning – finite sequences – time intervals – capable of handling sequential and parallel composition Tempura - executable ITL framework.

SEERE Workshop, Neum Tempura usage middleware – written in Java Tempura – written in C – open source possible usage of Tempura – wrapping existing Tempura executable with Java IO redirection – development of entirely new project, based on execution rules of ITL – reengineering of Tempura and rewriting it in Java

SEERE Workshop, Neum Tempura retargeting homogenous environment usage of quality code as a basis no steep curve learning ITL nuts and bolts

SEERE Workshop, Neum Tempura source code diagram

SEERE Workshop, Neum Retargeting plan based on iterations iteration phases – research phase – implementation phase – testing phase

SEERE Workshop, Neum Plan for first iteration research – understand Interval Temporal Logic In progress – learn code structure, main program flow, structures and variables of Tempura interpreter Mostly done – check possible usages of existing C-to Java conversion tools No suitable software found – check possible usages of existing C analysis tools No suitable software found

SEERE Workshop, Neum Plan for first iteration (cont’d) implementation – create a Java class for every C source file and its associate header file – create a static method in the Java class for every function in the C file with the same name (ignoring Java naming conventions) – create static variable in the Java class for every global variable in the header file – create a static method in the Java class for every macro function in the header file (where appropriate) – expand the contents of every macro, not covered by the previous step – implement all struct and union types as Java classes – convert integer boolean assignments and expressions into proper Java boolean constructs – replace function pointers with instances of specially created Interface, which will call the desired Java method (delegates)

SEERE Workshop, Neum Plan for first iteration (cont’d) implementation status (estimated) – 40 % of the source code – 80 % of the structures – 30 % of function pointers problems – console oriented – scattered functions and variables – heavy use of c-specific syntax structures like macros, pointers, memory addressing, null terminated strings, inline initializers

SEERE Workshop, Neum Plan for first iteration (cont’d) testing – run the examples, which come with the original sources, on the Java interpreter and compare results desired outcome – working JTempura interpreter by the end of the year

SEERE Workshop, Neum Plan for second iteration towards object-oriented structure – converting different Node types (denoted by their type member) into hierarchy of base class TNode and a descendant for every node type, supported by JTempura – converting various reducers from static members to Java classes and creating hierarchy of reducers with base class TReducer

SEERE Workshop, Neum Plan for second iteration (cont’d) towards object-oriented structure – redirecting input and output of the interpreter into streams – redesign memory management – redesign error handling and notification – group similar and relevant methods in one class – design complex objects for storing lexemes – implement syntax tree outcome of the parser, representing the given ITL expression

SEERE Workshop, Neum Plan for second iteration (cont’d) Object-oriented model for the second iteration

SEERE Workshop, Neum Plan for third iteration research – analyze different runtime verification (RV) tools and frameworks – learn different RV strategies – choose suitable strategy for our needs (service monitoring, scenario detection, Java) implementation – towards runtime verification framework – implement at least one of the strategies

SEERE Workshop, Neum Tools Eclipse-CPP Eclipse-Java PowerDesigner

SEERE Workshop, Neum Thank you