SEERE Workshop, Ivanjica 20101 JTempura Vladimir Valkanov, Damyan Mitev 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

Introduction Why do we need Mobile OGSI.NET? Drawbacks:
1 Compiler Construction Intermediate Code Generation.
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
SELBO Agent Ivan Minov University of Plovdiv “Paisii Hilendarski“
Agent-Oriented InfoStation Architecture Ivan Minov University of Plovdiv “Paisii Hilendarski“
Elementary Data Types Prof. Alamdeep Singh. Scalar Data Types Scalar data types represent a single object, i.e. only one value can be derived. In general,
Chapter 10 Introduction to Arrays
ELSE – eLearning in Software Engineering Stanimir Stoyanov, Distributed eLearning Center (DeLC), University of Plovdiv.
MobiShare: Sharing Context-Dependent Data & Services from Mobile Sources Efstratios Valavanis, Christopher Ververidis, Michalis Vazirgianis, George C.
Intelligent Services in Selbo 2 SCORM Editor for eLearning Based on Ontologies Part of eLSE project Damyan Mitev University of Plovdiv “Paisii Hilendarski”
SEERE Workshop, Neum Tempura Retargeting Damyan Mitev, Vladimir Valkanov Plovdiv University “Paisii Hilendarski”
SEERE, Neum 2009 Runtime verification of Java programs using ITL Vladimir Valkanov, Damyan Mitev Plovdiv, Bulgaria.
Threads Clients Servers Code Migration Software Agents Summary
Programming Language Semantics Mooly SagivEran Yahav Schrirber 317Open space html://
Distributed eLearning Center Stanimir Stoyanov, University of Plovdiv 1 10th Workshop “Software Engineering Education and Reverse Engineering”, Ivanjica,
Semantics with Applications Mooly Sagiv Schrirber html:// Textbooks:Winskel The.
Describing Syntax and Semantics
Mehmet Can Vuran, Instructor University of Nebraska-Lincoln Acknowledgement: Overheads adapted from those provided by the authors of the textbook.
1 Joint work with Antonio Bucchiarone (Fondazione Bruno Kessler - IRST, Trento) and Fabrizio Montesi (University of Bologna/INRIA, Bologna) A Framework.
Software Architecture in Practice (3rd Ed) Introduction
Computer Science 101 Introduction to Programming.
UML - Development Process 1 Software Development Process Using UML (2)
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
Created by, Author Name, School Name—State FLUENCY WITH INFORMATION TECNOLOGY Skills, Concepts, and Capabilities.
VIRTUAL EDUCATION SPACE S. STOYANOV, V. VALKANOVA.
Context-aware management of e-services (Tempura reengineering) Vladimir Valkanov University of Plovdiv 28/08/ th Workshop "SERE" Bansko, Aug.
TMF1013 : Introduction To Computing Lecture 1 : Fundamental of Computer ComputerFoudamentals.
Method-Oriented B2B Application Integration Chapter 4 Sungchul Hong.
Introduction to Computer Programming Using C Session 23 - Review.
1 Chapter 13 Understanding Computers, 11 th Edition 13 Program Development and Programming Languages TODAY AND TOMORROW 11 th Edition CHAPTER.
Oracle Data Integrator Procedures, Advanced Workflows.
© 2011 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Stewart Venit ~ Elizabeth Drake Developing a Program.
Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent.
Chapter 6 Programming Languages © 2007 Pearson Addison-Wesley. All rights reserved.
ECE 353 Lab 1: Cache Simulation. Purpose Introduce C programming by means of a simple example Reinforce your knowledge of set associative caches.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
BUILD ON THE POLYGLOT COMPILER FRAMEWORK MIHAL BRUMBULLI 7th Workshop “SEERE” Montenegro-Risan 9-14 September 2007 SimJ Programming Language.
Lecture 6: Sun: 8/5/1435 Distributed Applications Lecturer/ Kawther Abas CS- 492 : Distributed system & Parallel Processing.
Introduction to Compilers. Related Area Programming languages Machine architecture Language theory Algorithms Data structures Operating systems Software.
Chapter 3 Syntax, Errors, and Debugging Fundamentals of Java.
Intelligent Agent Framework1 From Chapter 7 of Constructing Intelligent Agents with Java.
310414IMPLEMENTATION1 IMPLEMENTATIONIMPLEMENTATION SOFTWARE ENGINEERING SOFTWARE ENGINEERING.
Text TCS INTERNAL Oracle PL/SQL – Introduction. TCS INTERNAL PL SQL Introduction PLSQL means Procedural Language extension of SQL. PLSQL is a database.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Java and C# - Some Commonalities Compile into machine-independent, language- independent code which runs in a managed execution environment Garbage Collection.
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.
Defects of UML Yang Yichuan. For the Presentation Something you know Instead of lots of new stuff. Cases Instead of Concepts. Methodology instead of the.
Fundamental of Java Programming (630002) Unit – 1 Introduction to Java.
The purpose of a CPU is to process data Custom written software is created for a user to meet exact purpose Off the shelf software is developed by a software.
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
Compilers Principles, Techniques, & Tools Taught by Jing Zhang
Object Oriented Programming in
CMSC 345 Defensive Programming Practices from Software Engineering 6th Edition by Ian Sommerville.
Unit II-Chapter No. : 5- design Patterns
Working with Java.
CSCI-235 Micro-Computer Applications
MPCS – Advanced java Programming
Java programming lecture one
CMPE419 Mobile Application Development
User-Defined Functions
*current controlled assessment plans are unknown
Chapter 6: Programming Languages
Algorithms and Problem Solving
Principles of Programming Languages
Compilers Principles, Techniques, & Tools Taught by Jing Zhang
Chap 1. Getting Started Objectives
ASP.NET Core Middleware Fundamentals
Presentation transcript:

SEERE Workshop, Ivanjica JTempura Vladimir Valkanov, Damyan Mitev Plovdiv University “Paisii Hilendarski”

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

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

SEERE Workshop, Ivanjica 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, Ivanjica 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, Ivanjica 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, Ivanjica 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, Ivanjica Retargeting plan Based on iterations Iteration phases – research phase – implementation phase – testing phase

SEERE Workshop, Ivanjica Plan for first iteration research – understand Interval Temporal Logic – learn code structure, main program flow, structures and variables of Tempura interpreter – 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, Ivanjica Plan for first iteration 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, Ivanjica Plan for first iteration implementation status (estimated) – 98 % of the source code – 100 % of the structures – 100 % of function pointers faced problems – scattered functions and variables – heavy use of c-specific syntax structures like macros, pointers, memory addressing, null terminated strings, inline initializers

SEERE Workshop, Ivanjica JTempura First version – not object oriented One-to-one translation of C source files of original Tempura Keeps interface and syntax of original interpreter Console application Developed by the plan, devised 2009 – outcome of first iteration

SEERE Workshop, Ivanjica Plan for first iteration testing – run the examples, which come with the original sources, on the Java interpreter and compare results – contact Antonio Cau for further test cases

SEERE Workshop, Ivanjica Testing JTempura Strategy – embed the same trace information in original tempura sources and in JTempura, then compare outcomes of execution of the same tempura expression in both interpreters.

SEERE Workshop, Ivanjica Testing JTempura Test cases – Standard test cases from the examples, which come with the original sources – Test cases, sent by Antonio Cau I/O – 100% Lists and sub lists – 100 % Miscellaneous – 90 %

SEERE Workshop, Ivanjica JTempura usage – future questions How to use JTempura – as a library/plug-in – as stand alone executable – as service

SEERE Workshop, Ivanjica Next iterations Object oriented – adaptable, reusable; Agent oriented – needed for our SEDILIa project;

SEERE Workshop, Ivanjica Thank you