A Solver-Independent Platform for Modeling Constrained Objects Involving Discrete and Continuous Domains

Size: px
Start display at page:

Download "A Solver-Independent Platform for Modeling Constrained Objects Involving Discrete and Continuous Domains"

Transcription

1 A Solver-Independent Platform for Modeling Constrained Objects Involving Discrete and Continuous Domains Ricardo Soto 1,2 and Laurent Granvilliers 1 1 LINA, CNRS, Université de Nantes, France 2 Escuela de Ingeniería Informática Pontificia Universidad Católica de Valparaíso, Chile {ricardo.soto,laurent.granvilliers}@univ-nantes.fr Abstract. The constrained object modeling paradigm allows to represent systems as hierarchies of objects under constraints. This paper focuses on the modeling of constrained objects involving discrete and continuous domains. To this end, a new solver-independent modeling language called COMMA will be introduced. The mapping process from this language into the RealPaver solver will be explained. 1 Introduction Complex structures as circuits, engines and molecules are in general entities composed by many pieces. These pieces have features and a number of rules or laws that define the structure assembly of the system. Modeling these structures is not quite natural using either a pure logic or a pure declarative constraint language. It seems more appropriate to adopt a compositional approach where the pieces of the system are represented by objects, the features of the pieces are represented by attributes and the rules are represented by constraints. This approach is the basis of the constrained object modeling paradigm. Although this approach seems to be a good candidate for modeling this class of problems, it has received little attention from the Constraint Programming (CP) community [6]. For instance, currently there is no modeling language available based on this paradigm. In this paper, we introduce the new modeling language COMMA [1], in order to extend previous work done under this paradigm [3, 10, 9, 7] by providing important features such as a richer constraint language (closer to OPL [13]), solver independence, extensibility, and the capability of modeling and solving constrained objects involving discrete and continuous domains. The first implementation of COMMA is written in Java (20000 lines) where models can be translated to three different solvers: ECLiPSe [14], Gecode/J [2], and RealPaver [8]. This paper is organized as follows: Section 2 gives a summary of the features of COMMA. Section 3 explains the mapping process from COMMA models to RealPaver models. Conclusions and future work are given in Section 4.

2 2 COMMA Features The main features of the language are described in this section, namely the core of the language, important characteristics from the user point of view, and the system architecture for parsing. Objects + Constraints COMMA is built from a combination of a constraint language with an object-oriented language. The object part is an abstraction of the Java programming style. Classes and objects can be defined using a simple notation. The constraint language provides classical constructs like basic data types, data structures, conditional statements, and iteration statements. Simplicity In COMMA we try to avoid the encoding concerns that make models complex and difficult to state and understand. For instance, there is no need for object constructors to state a class, direct variable assignment can be done into the class. Other details such as object visibility (protected, private, public) have been omitted. We believe that these details are suitable for programming (such as in Gecode [2] or ILOG SOLVER [11]), but not for modeling.. Hierarchy The hierarchical class diagram is a good basis for managing large scale constraint problems especially from applications fields such as operation research, engineering and design. Classes, data files, and extension files can be gathered to build components. Reuse Abstraction, constraint encapsulation, composition, and inheritance, are main features of the language supporting reuse of existing components. Extensibility The constraint language is extensible [12]. New functions and relations can be added to existent domains, extending the syntax of the constraint language. This capability makes the architecture adaptable to further upgrades of the solvers. Solver independent modeling Solver independence is considered as very important in modern modeling languages [5, 4]. This architecture gives the possibility to plug-in new solvers and to process the same model with different solvers, which is useful to learn which solver is the best for it. Compiler The compiling system is composed by three independent compilers. One for the COMMA language, one for the data and another for the extension files. The COMMA compiler is composed of one parser per constraint domain (Integer, Real, Boolean and Objects), one parser for constraints involving more than one domain (Mixed parser) and one base parser for the rest of the language (classes, import and control statements). This approach allows one to easy maintain the parsing engine, not to recompile the base language by hand. It requires specific rules to handle ambiguity and typing problems [12].

3 3 COMMA Overview Let us now show some of the main features of COMMA using an example involving discrete and continuous domains. Consider the task of installing two antennas whose coverage ranges are represented by circles. The position of antennas is supposed to be discrete. The coverage range of antennas is a variable with a bounded continuous domain. An intersection is required between circles to assure a minimum coverage range. This problem can be represented as a geometrical constraint system where the center of each circle corresponds to the correct antenna location (see Figure 1). y c1 (x 0, y 0) r x c2 Fig.1. Diagram of the antennas problem Figure 2 shows the COMMA model for this problem. Two classes are defined. Class antennas has two constrained objects circle and five constraints 3 enforced over the circle objects. The constraints c1.x = c2.x and c1.y = c2.y allow one to control the intersection between circles. The constraint c1.y0 = c2.y0 places the center of the circles in the same value of the y axis. An equal radius value for each circle is forced by c1.r = c2.r. The last constraint sets a distance of 1.5*radius between the x 0 points of the circles. For the second class called circle, x and y represent the points of the circle with center (x0,y0). The radius is determined by the attribute r and the equation of the circle is represented by the given constraint. All the attributes have been restricted to specific domains to assure the coverage range given by the intersection of the antennas. Constrained objects are translated to the solver source file by eliminating the hierarchy of the COMMA file. This process is done by expanding each constrained object declared (c1 and c2 in the example) adding its attributes and constraints in the flat file. The name of each attribute has a prefix corresponding to the 3 Due to extensibility requirements of the compiler, constraints must be typed. A detailed presentation of the compiler can be found in [1].

4 class antennas { class circle { circle c1; real x in [-3,3]; circle c2; real y in [-3,3]; constraint intersection { real r in [1.5, 2.5]; real c1.x = c2.x; int x0 in [0,5]; real c1.y = c2.y; int y0 in [0,5]; int c1.y0 = c2.y0; constraint radius { real c1.r = c2.r; real r^2 = (x-x0)^2 + (y-y0)^2; real c1.x *c1.r = c2.x0; } } } } Fig.2. A COMMA model for the antennas problem concatenation of the names of objects of origin in order to avoid name redundancy. The process is done recursively. Constraints derived from the expansion of objects are added in the same way 4 (see Figure 3). Variables real c1_x in [-3,3], real c1_y in [-3,3], real c1_r in [1.5,2.5], real c2_x in [-3,3], real c2_y in [-3,3], real c2_r in [1.5,2.5], Constraints c1_r = c2_r, c1_r^2 = (c1_x-c1_x0)^2 + (c1_y-c1_y0)^2, c2_r^2 = (c2_x-c2_x0)^2 + (c2_y-c2_y0)^2; Fig.3. Flat RealPaver file 4 Conclusion and Future Work We have shown by means of a practical example how COMMA is able to model systems using a compositional approach. This platform could be improved extending the list of supported solvers. The definition of a UML profile will be useful for modeling from a graphical perspective. Finally, we plan to make the COMMA system open source for the research community. 4 The translation process to ECLiPSe and Gecode/J can be found in [1].

5 References 1. COMMA Modeling Language. rsoto/comma. 2. Gecode System A.H. Borning. The Programming Languages Aspects of ThingLab, a Constraint- Oriented Simulation Laboratory. ACM TOPLAS, 3(4): , Alan M. Frisch et al. The design of essence: A constraint language for specifying combinatorial problems. In IJCAI, pages 80 87, R. Rafeh et al. From zinc to design model. In PADL, pages , F. Benhamou et al. Trends in Constraint Programming. ISTE, P. Fritzson and V. Engelson. Modelica A Unified Object-Oriented Language for System Modeling and Simulation. In ECOOP98, Brussels, L. Granvilliers and F. Benhamou. Realpaver: an interval solver using constraint satisfaction techniques. ACM Trans. Math. Softw., 32(1): , B. Jayaraman and P.Y. Tambay. Constrained Objects for Modeling Complex Structures. In OOPSLA, Minneapolis, USA, M. Paltrinieri. On the Design of Constraint Satisfaction Problems. In PPCP, Orcas Island, USA, J.F. Puget. A C++ implementation of CLP. In SCIS, Singapore, R. Soto and L. Granvilliers. Dynamic parser cooperation for extending a constrained object-based modeling language. To appear in Proceedings of WLP 2007, Wuerzburg, Germany. 13. P. Van Hentenryck. The OPL Optimization Programming Language. The MIT Press, M. Wallace, S. Novello, and J. Schimpf. Eclipse: A platform for constraint logic programming, 1997.

On the Definition of a Standard Language for Modelling Constraint Satisfaction Problems

On the Definition of a Standard Language for Modelling Constraint Satisfaction Problems 22 On the Definition of a Standard Language for Modelling Constraint Satisfaction Problems Ricardo Soto 1,2, Laurent Granvilliers 1 1 CNRS, LINA, Université de Nantes 2 Escuela de Ingeniería Informática,

More information

Using ATL to define advanced and flexible constraint model transformations

Using ATL to define advanced and flexible constraint model transformations Using ATL to define advanced and flexible constraint model transformations Raphaël Chenouard 1, Laurent Granvilliers 1, and Ricardo Soto 1,2 1 LINA, CNRS, Université de Nantes, France 2 Escuela de Ingeniería

More information

Model-Driven Constraint Programming

Model-Driven Constraint Programming Model-Driven Constraint Programming Raphaël Chenouard CNRS, LINA, Université denantes, France. raphael.chenouard@univ-nantes.fr Laurent Granvilliers CNRS, LINA, Université denantes, France. laurent.granvilliers@univ-nantes.fr

More information

Consistency Techniques over Real Numbers

Consistency Techniques over Real Numbers Consistency Techniques over Real Numbers Laurent Granvilliers granvilliers@irin.univ-nantes.fr University of Nantes Laurent Granvilliers, Dagstuhl Seminar 2003 p. 1/20 Reduction and Propagation Compute

More information

s-comma User s Manual

s-comma User s Manual s-comma User s Manual Modeling Constraint Satisfaction Problems Edition 0.1, for s-comma Version 0.1 August 2007 Ricardo Soto, Laurent Granvilliers Copyright c 2004 2007 Laboratoire d Informatique de Nantes

More information

Finding the Maximal Pose Error in Robotic Mechanical Systems Using Constraint Programming

Finding the Maximal Pose Error in Robotic Mechanical Systems Using Constraint Programming Finding the Maximal Pose Error in Robotic Mechanical Systems Using Constraint Programming Nicolas Berger, Ricardo Soto, Alexandre Goldsztejn, Stéphane Caro, Philippe Cardou To cite this version: Nicolas

More information

Exam 1 Prep. Dr. Demetrios Glinos University of Central Florida. COP3330 Object Oriented Programming

Exam 1 Prep. Dr. Demetrios Glinos University of Central Florida. COP3330 Object Oriented Programming Exam 1 Prep Dr. Demetrios Glinos University of Central Florida COP3330 Object Oriented Programming Progress Exam 1 is a Timed Webcourses Quiz You can find it from the "Assignments" link on Webcourses choose

More information

Hybrid strategies of enumeration in constraint solving

Hybrid strategies of enumeration in constraint solving Scientific Research and Essays Vol. 6(21), pp. 4587-4596, 30 September, 2011 Available online at http://www.academicjournals.org/sre DOI: 10.5897/SRE11.891 ISSN 1992-2248 2011 Academic Journals Full Length

More information

C++ (Non for C Programmer) (BT307) 40 Hours

C++ (Non for C Programmer) (BT307) 40 Hours C++ (Non for C Programmer) (BT307) 40 Hours Overview C++ is undoubtedly one of the most widely used programming language for implementing object-oriented systems. The C++ language is based on the popular

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

Chapter 6 Introduction to Defining Classes

Chapter 6 Introduction to Defining Classes Introduction to Defining Classes Fundamentals of Java: AP Computer Science Essentials, 4th Edition 1 Objectives Design and implement a simple class from user requirements. Organize a program in terms of

More information

Neighborhood Search: Mixing Gecode and EasyLocal++

Neighborhood Search: Mixing Gecode and EasyLocal++ : Mixing Gecode and EasyLocal++ Raffaele Cipriano 1 Luca Di Gaspero 2 Agostino 1 1) DIMI - Dip. di Matematica e Informatica Università di Udine, via delle Scienze 206, I-33100, Udine, Italy 2) DIEGM -

More information

CompuScholar, Inc. Alignment to Nevada "Computer Science" Course Standards

CompuScholar, Inc. Alignment to Nevada Computer Science Course Standards CompuScholar, Inc. Alignment to Nevada "Computer Science" Course Standards Nevada Course Details: Course Name: Computer Science Primary Cluster: Information and Media Technologies Standards Course Code(s):

More information

View-based Propagator Derivation

View-based Propagator Derivation View-based Propagator Derivation Christian Schulte SCALE, KTH & SICS, Sweden joint work with: Guido Tack NICTA & Monash University, Australia Based on:. Christian Schulte, Guido Tack. Constraints 18(1),

More information

Minion: Fast, Scalable Constraint Solving. Ian Gent, Chris Jefferson, Ian Miguel

Minion: Fast, Scalable Constraint Solving. Ian Gent, Chris Jefferson, Ian Miguel Minion: Fast, Scalable Constraint Solving Ian Gent, Chris Jefferson, Ian Miguel 1 60 Second Introduction to CSPs Standard Definition A CSP is a tuple V: list of variables D: a domain for each

More information

Object-Oriented Programming Concepts

Object-Oriented Programming Concepts Object-Oriented Programming Concepts Real world objects include things like your car, TV etc. These objects share two characteristics: they all have state and they all have behavior. Software objects are

More information

Java Object Oriented Design. CSC207 Fall 2014

Java Object Oriented Design. CSC207 Fall 2014 Java Object Oriented Design CSC207 Fall 2014 Design Problem Design an application where the user can draw different shapes Lines Circles Rectangles Just high level design, don t write any detailed code

More information

Chapter 4 Defining Classes I

Chapter 4 Defining Classes I Chapter 4 Defining Classes I This chapter introduces the idea that students can create their own classes and therefore their own objects. Introduced is the idea of methods and instance variables as the

More information

Waltz Filtering in Java with JSolver

Waltz Filtering in Java with JSolver Published in the Proceedings of PA Java99 The Practical Application of Java, London, April 1999 Waltz Filtering in Java with JSolver Andy Hon Wai Chun 1 City University of Hong Kong Department of Electronic

More information

RAISE in Perspective

RAISE in Perspective RAISE in Perspective Klaus Havelund NASA s Jet Propulsion Laboratory, Pasadena, USA Klaus.Havelund@jpl.nasa.gov 1 The Contribution of RAISE The RAISE [6] Specification Language, RSL, originated as a development

More information

Intermediate Code, Object Representation, Type-Based Optimization

Intermediate Code, Object Representation, Type-Based Optimization CS 301 Spring 2016 Meetings March 14 Intermediate Code, Object Representation, Type-Based Optimization Plan Source Program Lexical Syntax Semantic Intermediate Code Generation Machine- Independent Optimization

More information

A SystemC Extension for Enabling Tighter Integration of IP-XACT Platforms with Virtual Prototypes

A SystemC Extension for Enabling Tighter Integration of IP-XACT Platforms with Virtual Prototypes A SystemC Extension for Enabling Tighter Integration of IP-XACT Platforms with Virtual Prototypes Guillaume Godet-Bar, Magillem Design Services, Paris, France (godet-bar@magillem.com) Jean-Michel Fernandez,

More information

Basics of Java: Expressions & Statements. Nathaniel Osgood CMPT 858 February 15, 2011

Basics of Java: Expressions & Statements. Nathaniel Osgood CMPT 858 February 15, 2011 Basics of Java: Expressions & Statements Nathaniel Osgood CMPT 858 February 15, 2011 Java as a Formal Language Java supports many constructs that serve different functions Class & Interface declarations

More information

Anatomy of a Compiler. Overview of Semantic Analysis. The Compiler So Far. Why a Separate Semantic Analysis?

Anatomy of a Compiler. Overview of Semantic Analysis. The Compiler So Far. Why a Separate Semantic Analysis? Anatomy of a Compiler Program (character stream) Lexical Analyzer (Scanner) Syntax Analyzer (Parser) Semantic Analysis Parse Tree Intermediate Code Generator Intermediate Code Optimizer Code Generator

More information

Weiss Chapter 1 terminology (parenthesized numbers are page numbers)

Weiss Chapter 1 terminology (parenthesized numbers are page numbers) Weiss Chapter 1 terminology (parenthesized numbers are page numbers) assignment operators In Java, used to alter the value of a variable. These operators include =, +=, -=, *=, and /=. (9) autoincrement

More information

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

CSC312 Principles of Programming Languages : Functional Programming Language. Copyright 2006 The McGraw-Hill Companies, Inc.

CSC312 Principles of Programming Languages : Functional Programming Language. Copyright 2006 The McGraw-Hill Companies, Inc. CSC312 Principles of Programming Languages : Functional Programming Language Overview of Functional Languages They emerged in the 1960 s with Lisp Functional programming mirrors mathematical functions:

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML Ingegneria del Software Corso di Laurea in Informatica per il Management Introduction to UML Davide Rossi Dipartimento di Informatica Università di Bologna Modeling A model is an (abstract) representation

More information

Object-oriented Compiler Construction

Object-oriented Compiler Construction 1 Object-oriented Compiler Construction Extended Abstract Axel-Tobias Schreiner, Bernd Kühl University of Osnabrück, Germany {axel,bekuehl}@uos.de, http://www.inf.uos.de/talks/hc2 A compiler takes a program

More information

LECTURE 17. Expressions and Assignment

LECTURE 17. Expressions and Assignment LECTURE 17 Expressions and Assignment EXPRESSION SYNTAX An expression consists of An atomic object, e.g. number or variable. An operator (or function) applied to a collection of operands (or arguments)

More information

CS1004: Intro to CS in Java, Spring 2005

CS1004: Intro to CS in Java, Spring 2005 CS1004: Intro to CS in Java, Spring 2005 Lecture #13: Java OO cont d. Janak J Parekh janak@cs.columbia.edu Administrivia Homework due next week Problem #2 revisited Constructors, revisited Remember: a

More information

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub Lebanese University Faculty of Science Computer Science BS Degree Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub 2 Crash Course in JAVA Classes A Java

More information

Modelling with Constraints

Modelling with Constraints Masterclass Modelling with Constraints Part 1: Introduction Alan M Frisch Artificial Intelligence Group Dept of Computer Science University of York 12 December 2011 1 Motivation A modern generation of

More information

Meta Architecting: Towered a New Generation of Architecture Description Languages

Meta Architecting: Towered a New Generation of Architecture Description Languages Journal of Computer Science 1 (4): 454-460, 2005 ISSN 1549-3636 Science Publications, 2005 Meta Architecting: Towered a New Generation of Architecture Description Languages Adel Smeda, Tahar Khammaci and

More information

CSCI B522 Lecture 11 Naming and Scope 8 Oct, 2009

CSCI B522 Lecture 11 Naming and Scope 8 Oct, 2009 CSCI B522 Lecture 11 Naming and Scope 8 Oct, 2009 Lecture notes for CS 6110 (Spring 09) taught by Andrew Myers at Cornell; edited by Amal Ahmed, Fall 09. 1 Static vs. dynamic scoping The scope of a variable

More information

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 43 Dynamic Binding (Polymorphism): Part III Welcome to Module

More information

Inheritance and Polymorphism

Inheritance and Polymorphism Object Oriented Programming Designed and Presented by Dr. Ayman Elshenawy Elsefy Dept. of Systems & Computer Eng.. Al-Azhar University Website: eaymanelshenawy.wordpress.com Email : eaymanelshenawy@azhar.edu.eg

More information

Chapter 13. Object Oriented Programming

Chapter 13. Object Oriented Programming Chapter 13. Object Oriented Programming Byoung-Tak Zhang TA: Hanock Kwak Biointelligence Laboratory School of Computer Science and Engineering Seoul National University http://bi.snu.ac.kr Computer Programming

More information

Constraint Programming 101

Constraint Programming 101 Constraint Programming 101 Jacob Feldman, Ph.D. Founder & CTO OpenRules Inc. Shock Troops for Enterprise Decision Management I have concluded that decision making and the techniques and technologies to

More information

The PEPA Eclipse Plug-in

The PEPA Eclipse Plug-in The PEPA Eclipse Plug-in A modelling, analysis and verification platform for PEPA Adam Duguid, Stephen Gilmore, Michael Smith and Mirco Tribastone Wednesday 01 December 2010 Abstract: This user manual

More information

AN INTEGRATED MODELICA ENVIRONMENT FOR MODELING, DOCUMENTATION AND SIMULATION

AN INTEGRATED MODELICA ENVIRONMENT FOR MODELING, DOCUMENTATION AND SIMULATION Accepted for publication in Proceedings of The 1998 Summer Computer Simulation Conference (SCSC '98) July 19-22, 1998, Reno, Nevada AN INTEGRATED MODELICA ENVIRONMENT FOR MODELING, DOCUMENTATION AND SIMULATION

More information

Gilles Chabert Ecole des Mines de Nantes Dec 2014

Gilles Chabert Ecole des Mines de Nantes Dec 2014 www.ibex-lib.org Gilles Chabert Ecole des Mines de Nantes Dec 2014 Outline Introduction Contractors Forward-backward XTaylor Q-intersection Getting started Conclusion Introduction IBEX is an open-source

More information

CPS 506 Comparative Programming Languages. Programming Language

CPS 506 Comparative Programming Languages. Programming Language CPS 506 Comparative Programming Languages Object-Oriented Oriented Programming Language Paradigm Introduction Topics Object-Oriented Programming Design Issues for Object-Oriented Oriented Languages Support

More information

What s different about Factor?

What s different about Factor? Harshal Lehri What s different about Factor? Factor is a concatenative programming language - A program can be viewed as a series of functions applied on data Factor is a stack oriented program - Data

More information

5. Semantic Analysis!

5. Semantic Analysis! 5. Semantic Analysis! Prof. O. Nierstrasz! Thanks to Jens Palsberg and Tony Hosking for their kind permission to reuse and adapt the CS132 and CS502 lecture notes.! http://www.cs.ucla.edu/~palsberg/! http://www.cs.purdue.edu/homes/hosking/!

More information

Microprocessors & Assembly Language Lab 1 (Introduction to 8086 Programming)

Microprocessors & Assembly Language Lab 1 (Introduction to 8086 Programming) Microprocessors & Assembly Language Lab 1 (Introduction to 8086 Programming) Learning any imperative programming language involves mastering a number of common concepts: Variables: declaration/definition

More information

Java Software Solutions for AP Computer Science 3rd Edition, Lewis et al. 2011

Java Software Solutions for AP Computer Science 3rd Edition, Lewis et al. 2011 A Correlation of AP Computer Science 3rd Edition, Lewis et al. 2011 To the INTRODUCTION This document demonstrates how AP (Advanced Placement) Computer Science, 3rd Edition 2011, Lewis et al. meets the

More information

Constraint Solving CLFD: Architecture Constraint Propagation Search Interface & Results Conclusion CLFD

Constraint Solving CLFD: Architecture Constraint Propagation Search Interface & Results Conclusion CLFD Constraint Solving : Architecture Constraint Propagation Search Interface & Results Conclusion A Finite Domain Constraint Solver in Common Lisp 20.06.2005 Constraint Solving : Architecture Constraint Propagation

More information

Study of Component Based Software Engineering

Study of Component Based Software Engineering Study of Based Software Ishita Verma House No.4, Village Dayalpur Karawal Nagar Road Delhi-110094, India ish.v.16@gmail.com Abstract based engineering is an approach of development that emphasizes the

More information

Haske k ll An introduction to Functional functional programming using Haskell Purely Lazy Example: QuickSort in Java Example: QuickSort in Haskell

Haske k ll An introduction to Functional functional programming using Haskell Purely Lazy Example: QuickSort in Java Example: QuickSort in Haskell Haskell An introduction to functional programming using Haskell Anders Møller amoeller@cs.au.dk The most popular purely functional, lazy programming language Functional programming language : a program

More information

CMPT Data and Program Organization

CMPT Data and Program Organization CMPT-201 - Data and Program Organization Professor: Bill Havens Office: APSC-10828 Lectures: MWF 2:30pm - 3:20pm Venue: C-9002 WWW: http://www.cs.sfu.ca/coursecentral/201 Office Hours: Monday @3:30pm January

More information

Chapter 11. Categories of languages that support OOP: 1. OOP support is added to an existing language

Chapter 11. Categories of languages that support OOP: 1. OOP support is added to an existing language Categories of languages that support OOP: 1. OOP support is added to an existing language - C++ (also supports procedural and dataoriented programming) - Ada 95 (also supports procedural and dataoriented

More information

Object-Oriented Programming

Object-Oriented Programming Object-Oriented Programming 3/18/14 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014 Object-Oriented

More information

Discover how to get up and running with the Java Development Environment and with the Eclipse IDE to create Java programs.

Discover how to get up and running with the Java Development Environment and with the Eclipse IDE to create Java programs. Java SE11 Development Java is the most widely-used development language in the world today. It allows programmers to create objects that can interact with other objects to solve a problem. Explore Java

More information

Absolute C++ Walter Savitch

Absolute C++ Walter Savitch Absolute C++ sixth edition Walter Savitch Global edition This page intentionally left blank Absolute C++, Global Edition Cover Title Page Copyright Page Preface Acknowledgments Brief Contents Contents

More information

The SiMoL Modeling Language for Simulation and (Re-)Configuration

The SiMoL Modeling Language for Simulation and (Re-)Configuration The SiMoL Modeling Language for Simulation and (Re-)Configuration Iulia Nica and Franz Wotawa Technische Universität Graz, Institute for Software Technology 1 Index Motivation SiMoL Definition SiMoL Syntax

More information

Hierarchical Multi-Views Software Architecture

Hierarchical Multi-Views Software Architecture Hierarchical Multi-Views Software Architecture Ahmad Kheir, Mourad Chabane Oussalah, Hala Naja To cite this version: Ahmad Kheir, Mourad Chabane Oussalah, Hala Naja. Hierarchical Multi-Views Software Architecture.

More information

3rd CHR Summer School Topics: Introduction to Constraint Programming

3rd CHR Summer School Topics: Introduction to Constraint Programming 3rd CHR Summer School Topics: Introduction to Constraint Programming Prof. Dr. Slim Abdennadher 8.7.2013 c S.Abdennadher 1 Constraint Programming: Much Quoted Sentence Constraint Programming represents

More information

Stub and Skeleton Generation for a Single-Sign-On Webservice supporting dynamic Objects

Stub and Skeleton Generation for a Single-Sign-On Webservice supporting dynamic Objects Stub and Skeleton Generation for a Single-Sign-On Webservice supporting dynamic Objects Jörg Ritter and Christian Stussak Martin-Luther-University Halle-Wittenberg, Halle 06120, Germany, joerg.ritter@informatik.uni-halle.de,

More information

An introduction introduction to functional functional programming programming using usin Haskell

An introduction introduction to functional functional programming programming using usin Haskell An introduction to functional programming using Haskell Anders Møller amoeller@cs.au.dkau Haskell The most popular p purely functional, lazy programming g language Functional programming language : a program

More information

Java Constraint Programming with JSR-331

Java Constraint Programming with JSR-331 1 EPICENTER 2010 DUBLIN 2 Java Constraint Programming with JSR-331 Jacob Feldman, PhD OpenRules Inc., CTO jacobfeldman@openrules.com www.openrules.com www.4c.ucc.ie Outline Introduction to Constraint Programming

More information

Global Optimization based on Contractor Programming: an Overview of the IBEX library

Global Optimization based on Contractor Programming: an Overview of the IBEX library Global Optimization based on Contractor Programming: an Overview of the IBEX library Jordan Ninin ENSTA-Bretagne, LabSTIC, IHSEV team, 2 rue Francois Verny, 29806 Brest, France, jordan.ninin@ensta-bretagne.fr

More information

Appending Variable-Structure to Modelica Models (WIP)

Appending Variable-Structure to Modelica Models (WIP) Appending Variable-Structure to Modelica Models (WIP) Daniel Gomez Esperon, Alexandra Mehlhase, Thomas Karbe Technische Universität Berlin Ernst-Reuter-Platz 7, 10587 Berlin, Germany {gomezesperon, a.mehlhase,

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java

Object-Oriented Software Engineering Practical Software Development using UML and Java Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical

More information

«Computer Science» Requirements for applicants by Innopolis University

«Computer Science» Requirements for applicants by Innopolis University «Computer Science» Requirements for applicants by Innopolis University Contents Architecture and Organization... 2 Digital Logic and Digital Systems... 2 Machine Level Representation of Data... 2 Assembly

More information

OBJECT ORİENTATİON ENCAPSULATİON

OBJECT ORİENTATİON ENCAPSULATİON OBJECT ORİENTATİON Software development can be seen as a modeling activity. The first step in the software development is the modeling of the problem we are trying to solve and building the conceptual

More information

- HALF YEARLY EXAM ANSWER KEY DEC-2016 COMPUTER SCIENCE ENGLISH MEDIUM

- HALF YEARLY EXAM ANSWER KEY DEC-2016 COMPUTER SCIENCE ENGLISH MEDIUM www.padasalai.net - HALF YEARLY EXAM ANSWER KEY DEC-2016 COMPUTER SCIENCE ENGLISH MEDIUM 1 A 26 D 51 C 2 C 27 D 52 D 3 C 28 C 53 B 4 A 29 B 54 D 5 B 30 B 55 B 6 A 31 C 56 A 7 B 32 C 57 D 8 C 33 B 58 C

More information

INHERITANCE: EXTENDING CLASSES

INHERITANCE: EXTENDING CLASSES INHERITANCE: EXTENDING CLASSES INTRODUCTION TO CODE REUSE In Object Oriented Programming, code reuse is a central feature. In fact, we can reuse the code written in a class in another class by either of

More information

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University Metamodeling Janos ISIS, Vanderbilt University janos.sztipanovits@vanderbilt.edusztipanovits@vanderbilt edu Content Overview of Metamodeling Abstract Syntax Metamodeling Concepts Metamodeling languages

More information

Efficient Separate Compilation of Object-Oriented Languages

Efficient Separate Compilation of Object-Oriented Languages Efficient Separate Compilation of Object-Oriented Languages Jean Privat, Floréal Morandat, and Roland Ducournau LIRMM Université Montpellier II CNRS 161 rue Ada 34392 Montpellier cedex 5, France {privat,morandat,ducour}@lirmm.fr

More information

Architectural Blueprint

Architectural Blueprint IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion Architectural Blueprint

More information

CSC Advanced Object Oriented Programming, Spring Overview

CSC Advanced Object Oriented Programming, Spring Overview CSC 520 - Advanced Object Oriented Programming, Spring 2018 Overview Brief History 1960: Simula first object oriented language developed by researchers at the Norwegian Computing Center. 1970: Alan Kay

More information

Programming II (CS300)

Programming II (CS300) 1 Programming II (CS300) Chapter 02: Using Objects MOUNA KACEM mouna@cs.wisc.edu Fall 2018 Using Objects 2 Introduction to Object Oriented Programming Paradigm Objects and References Memory Management

More information

Objectives for this class meeting. 1. Conduct review of core concepts concerning contracts and pre/post conditions

Objectives for this class meeting. 1. Conduct review of core concepts concerning contracts and pre/post conditions CSE1720 Click to edit Master Week text 01, styles Lecture 02 Second level Third level Fourth level Fifth level Winter 2015! Thursday, Jan 8, 2015 1 Objectives for this class meeting 1. Conduct review of

More information

ZLoc: A C++ library for local search

ZLoc: A C++ library for local search International Journal of the Physical Sciences Vol. 6(31), pp. 7095-7099, 30 November, 2011 Available online at http://www.academicjournals.org/ijps DOI: 10.5897/IJPS11.1499 ISSN 1992-1950 2011 Academic

More information

administrivia today UML start design patterns Tuesday, September 28, 2010

administrivia today UML start design patterns Tuesday, September 28, 2010 administrivia Assignment 2? promise to get past assignment 1 back soon exam on monday review slides are posted your responsibility to review covers through last week today UML start design patterns 1 Unified

More information

Computer Science Department Carlos III University of Madrid Leganés (Spain) David Griol Barres

Computer Science Department Carlos III University of Madrid Leganés (Spain) David Griol Barres Computer Science Department Carlos III University of Madrid Leganés (Spain) David Griol Barres dgriol@inf.uc3m.es Introduction He am a driver might be syntactically correct but semantically wrong. Semantic

More information

Inheritance, and Polymorphism.

Inheritance, and Polymorphism. Inheritance and Polymorphism by Yukong Zhang Object-oriented programming languages are the most widely used modern programming languages. They model programming based on objects which are very close to

More information

Concepts of Programming Languages

Concepts of Programming Languages Concepts of Programming Languages Lecture 1 - Introduction Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages Spring 2014

More information

CSE P 501 Compilers. Static Semantics Hal Perkins Winter /22/ Hal Perkins & UW CSE I-1

CSE P 501 Compilers. Static Semantics Hal Perkins Winter /22/ Hal Perkins & UW CSE I-1 CSE P 501 Compilers Static Semantics Hal Perkins Winter 2008 1/22/2008 2002-08 Hal Perkins & UW CSE I-1 Agenda Static semantics Types Attribute grammars Representing types Symbol tables Note: this covers

More information

Constraint Programming

Constraint Programming Constraint In Pursuit of The Holly Grail Roman Barták Charles University in Prague Constraint programming represents one of the closest approaches computer science has yet made to the Holy Grail of programming:

More information

COURSE 2 DESIGN PATTERNS

COURSE 2 DESIGN PATTERNS COURSE 2 DESIGN PATTERNS CONTENT Fundamental principles of OOP Encapsulation Inheritance Abstractisation Polymorphism [Exception Handling] Fundamental Patterns Inheritance Delegation Interface Abstract

More information

Chapter 5: Procedural abstraction. Function procedures. Function procedures. Proper procedures and function procedures

Chapter 5: Procedural abstraction. Function procedures. Function procedures. Proper procedures and function procedures Chapter 5: Procedural abstraction Proper procedures and function procedures Abstraction in programming enables distinction: What a program unit does How a program unit works This enables separation of

More information

Generating Programs with Grammars and ASTGen

Generating Programs with Grammars and ASTGen Generating Programs with Grammars and ASTGen 598DM Guest Lecture Brett Daniel Tuesday, March 11, 2008 1 Overview Grammar AST Nodes language for composed of Program Text parsed by Parser produces Parse

More information

From Zinc to Design Model

From Zinc to Design Model From Zinc to Design Model Reza Rafeh, Maria Garcia de la Banda, Kim Marriott, and Mark Wallace Clayton School of IT, Monash University, Australia {reza.rafeh,mbanda,marriott,wallace}@mail.csse.monash.edu.au

More information

A Type Graph Model for Java Programs

A Type Graph Model for Java Programs A Type Graph Model for Java Programs Arend Rensink and Eduardo Zambon Formal Methods and Tools Group, EWI-INF, University of Twente PO Box 217, 7500 AE, Enschede, The Netherlands {rensink,zambon}@cs.utwente.nl

More information

Structured Data Representation for Multiple Programming Languages on Java VM

Structured Data Representation for Multiple Programming Languages on Java VM Structured Data Representation for Multiple Programming Languages on Java VM Kazuaki Maeda Abstract This paper describes RugsOn, a new representation written in a text-based data format. The design principle

More information

Midterm 2. 7] Explain in your own words the concept of a handle class and how it s implemented in C++: What s wrong with this answer?

Midterm 2. 7] Explain in your own words the concept of a handle class and how it s implemented in C++: What s wrong with this answer? Midterm 2 7] Explain in your own words the concept of a handle class and how it s implemented in C++: What s wrong with this answer? A handle class is a pointer vith no visible type. What s wrong with

More information

HyperFrame - A Framework for Hypermedia Authoring

HyperFrame - A Framework for Hypermedia Authoring HyperFrame - A Framework for Hypermedia Authoring S. Crespo, M. F. Fontoura, C. J. P. Lucena, D. Schwabe Pontificia Universidade Católica do Rio de Janeiro - Departamento de Informática Universidade do

More information

Chapter 15: Object Oriented Programming

Chapter 15: Object Oriented Programming Chapter 15: Object Oriented Programming Think Java: How to Think Like a Computer Scientist 5.1.2 by Allen B. Downey How do Software Developers use OOP? Defining classes to create objects UML diagrams to

More information

DPLFW: a Framework for the Product-Line-Based Generation of Variable Content Documents

DPLFW: a Framework for the Product-Line-Based Generation of Variable Content Documents DPLFW: a Framework for the Product-Line-Based Generation of Variable Content s Abel Gómez 1, Pau Martí 2, M. Carmen Penadés 2, and José H. Canós 2 1 AtlanMod team (Inria, Mines Nantes, LINA) 4 rue Alfred

More information

Domains Geometry Definition

Domains Geometry Definition PDE extension Changes over Levon s extension Jan Šilar jan.silar@lf1.cuni.cz November 3, 2014 New extension is compared to Levon s work ([2]), mostly chapter 4 Domains Geometry Definition see [2] -- 4.3.1.1

More information

Accessibility. EEC 521: Software Engineering. Classes and Objects. Inheritance. Classes and Objects (OO Analysis)

Accessibility. EEC 521: Software Engineering. Classes and Objects. Inheritance. Classes and Objects (OO Analysis) Accessibility EEC 521: Software Engineering Classes and Objects (OO Analysis) Attributes and Methods can be declared at three levels of accessibility Public (+) Visible everywhere Private (-) Visible only

More information

Second-generation: Assembly language. Figure 6.1 Generations of programming languages. Assembly Language Characteristics.

Second-generation: Assembly language. Figure 6.1 Generations of programming languages. Assembly Language Characteristics. Chapter 6: Programming Languages Computer Science: An Overview Eleventh Edition by J. Glenn Brookshear Chapter 6: Programming Languages 6.1 Historical Perspective 6.2 Traditional Programming Concepts 6.3

More information

Math 32A Graphs and Contour Worksheet

Math 32A Graphs and Contour Worksheet Math 32 Graphs and ontour Worksheet Sections 5., 5.4 November 8, 208 This worksheet helps you practice matching graphs with its equations. Here are some general techniques and tricks that may help: (i)

More information

Outline. Java Models for variables Types and type checking, type safety Interpretation vs. compilation. Reasoning about code. CSCI 2600 Spring

Outline. Java Models for variables Types and type checking, type safety Interpretation vs. compilation. Reasoning about code. CSCI 2600 Spring Java Outline Java Models for variables Types and type checking, type safety Interpretation vs. compilation Reasoning about code CSCI 2600 Spring 2017 2 Java Java is a successor to a number of languages,

More information

Chapter 10 Classes Continued. Fundamentals of Java

Chapter 10 Classes Continued. Fundamentals of Java Chapter 10 Classes Continued Objectives Know when it is appropriate to include class (static) variables and methods in a class. Understand the role of Java interfaces in a software system and define an

More information

Learning Objectives. C++ For Artists 2003 Rick Miller All Rights Reserved xli

Learning Objectives. C++ For Artists 2003 Rick Miller All Rights Reserved xli Identify and overcome the difficulties encountered by students when learning how to program List and explain the software development roles played by students List and explain the phases of the tight spiral

More information

Object-Oriented Concepts and Principles (Adapted from Dr. Osman Balci)

Object-Oriented Concepts and Principles (Adapted from Dr. Osman Balci) Object-Oriented Concepts and Principles (Adapted from Dr. Osman Balci) Sung Hee Park Department of Mathematics and Computer Science Virginia State University September 18, 2012 The Object-Oriented Paradigm

More information

Data Structures and Algorithms Design Goals Implementation Goals Design Principles Design Techniques. Version 03.s 2-1

Data Structures and Algorithms Design Goals Implementation Goals Design Principles Design Techniques. Version 03.s 2-1 Design Principles Data Structures and Algorithms Design Goals Implementation Goals Design Principles Design Techniques 2-1 Data Structures Data Structure - A systematic way of organizing and accessing

More information