School of Computer Science PDE 2005expressik1 expressik: an open source EXPRESS parser and application development kit Andy Carpenter

Slides:



Advertisements
Similar presentations
Based on Java Software Development, 5th Ed. By Lewis &Loftus
Advertisements

Object-Oriented Programming Python. OO Paradigm - Review Three Characteristics of OO Languages –Inheritance It isn’t necessary to build every class from.
Semantic Analysis Chapter 6. Two Flavors  Static (done during compile time) –C –Ada  Dynamic (done during run time) –LISP –Smalltalk  Optimization.
Programming Languages and Paradigms
Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Compiler construction in4020 – lecture 10 Koen Langendoen Delft University of Technology The Netherlands.
1 Mooly Sagiv and Greta Yorsh School of Computer Science Tel-Aviv University Modern Compiler Design.
CSE 425: Semantics II Implementing Scopes A symbol table is in essence a dictionary –I.e., every name appears in it, with the info known about it –Usually.
Gary MarsdenSlide 1University of Cape Town Statements & Expressions Gary Marsden Semester 2 – 2000.
NaLIX: A Generic Natural Language Search Environment for XML Data Presented by: Erik Mathisen 02/12/2008.
C. FlanaganSAS’04: Type Inference Against Races1 Type Inference Against Races Cormac Flanagan UC Santa Cruz Stephen N. Freund Williams College.
OOP in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
1 Lecture 13: Database Heterogeneity Debriefing Project Phase 2.
Semantic analysis Enforce context-dependent language rules that are not reflected in the BNF, e.g.a function must have a return statement. Decorate AST.
II. Middleware for Distributed Systems
Chapter 9: Subprogram Control
OOP in Java Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 11 Object and Object- Relational Databases.
Inheritance and Polymorphism CS351 – Programming Paradigms.
Advanced Database CS-426 Week 13 – Object Relational Databases.
® Eurostep.ESUKPC v0.1©Copyright Eurostep Limited An Introduction to ISO STEP Part 25 David Price.
Chapter 14: Object-Oriented Data Modeling
CSE 331 Software Design & Implementation Hal Perkins Autumn 2012 Java Classes, Interfaces, and Types 1.
DBMS Lecture 9  Object Database Management Group –12 Rules for an OODBMS –Components of the ODMG standard  OODBMS Object Model Schema  OO Data Model.
Semantic Analysis Legality checks –Check that program obey all rules of the language that are not described by a context-free grammar Disambiguation –Name.
MT311 Java Application Development and Programming Languages Li Tak Sing( 李德成 )
1 Generics and Using a Collection Generics / Parameterized Classes Using a Collection Customizing a Collection using Inheritance Inner Classes Use of Exceptions.
APCS Java AB 2004 Review of CS1 and CS2 Review for AP test #1 Sources: 2003 Workshop notes from Chris Nevison (Colgate University) AP Study Guide to go.
Supported by ELTE IKKK, Ericsson Hungary, in cooperation with University of Kent Erlang refactoring with relational database Anikó Víg and Tamás Nagy Supervisors:
Tuc Goodwin  Object and Component-Oriented Programming  Classes in C#  Scope and Accessibility  Methods and Properties  Nested.
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
Basic Semantics Associating meaning with language entities.
C++ Programming Basic Learning Prepared By The Smartpath Information systems
XML Grammar and Parser for WSOL Kruti Patel, Vladimir Tosic, Bernard Pagurek Network Management & Artificial Intelligence Lab Department of Systems & Computer.
Sheet 1 DocEng’03, Grenoble, November 2003 Model Driven Architecture based XML Processing Ivan Kurtev, Klaas van den Berg University of Twente, the Netherlands.
CS536 Semantic Analysis Introduction with Emphasis on Name Analysis 1.
CASE/Re-factoring and program slicing
Chapter 2 Object-Relational DBMSs Chapter 28 in Textbook.
Object Relational Features
ESDI Workshop on Conceptual Schema Languages and Tools
Lecture 10 Concepts of Programming Languages Arne Kutzner Hanyang University / Seoul Korea.
ISBN Chapter 11 Abstract Data Types and Encapsulation Concepts.
Object-Oriented Programming Chapter Chapter
® A Proposed UML Profile For EXPRESS David Price Seattle ISO STEP Meeting October 2004.
STEP Tutorial: “ Fundamentals of STEP” David Briggs, Boeing January 16, 2001 ® PDES, Inc NASA STEP Workshop step.nasa.gov.
1 SIPPING Working Group IETF 74 Dale Worley Martin Dolly Dan Petrie Profile Datasets draft-ietf-sipping-profile-datasets-03.
ISBN Object-Oriented Programming Chapter Chapter
All Presentation Material Copyright Eurostep Group AB ® A Meta-model of EXPRESS in UML for MOF and UML to EXPRESS David Price April 2002.
Presentation for Stuttgart Steve Carson GSC Associates
ModTransf A Simple Model to Model Transformation Engine Cédric Dumoulin.
Bernd Fischer RW713: Compiler and Software Language Engineering.
More on Type Checking. Conversion and Coercion Int C; A = C;
(1) ICS 313: Programming Language Theory Chapter 11: Abstract Data Types (Data Abstraction)
ISBN Chapter 11 Abstract Data Types and Encapsulation Concepts.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
Types As Globally Static, First Class Objects in VHDL-X TM Nothing in this presentation implies an offer for sale. FTL Systems is willing to provide IEEE.
Java & C++ Comparisons How important are classes and objects?? What mechanisms exist for input and output?? Are references and pointers the same thing??
Fusion Design Overview Object Interaction Graph Visibility Graph Class Descriptions Inheritance Graphs Fusion: Design The overall goal of Design is to.
Copyright © 2016 Ramez Elmasri and Shamkant B. Navathe Chapter 12 Outline Overview of Object Database Concepts Object-Relational Features Object Database.
David Evans CS201J: Engineering Software University of Virginia Computer Science Lecture 5: Implementing Data Abstractions.
Semantic Analysis. Find 6 problems with this code. These issues go beyond syntax.
Sections Basic Concepts of Programming
CS230 Tutorial Week 3.
Section 11.1 Class Variables and Methods
Chapter 12 Outline Overview of Object Database Concepts
Abstract Data Types and Encapsulation Concepts
Names, Binding, and Scope
Lec 3: Object-Oriented Data Modeling
Lecture 10 Concepts of Programming Languages
Presentation transcript:

School of Computer Science PDE 2005expressik1 expressik: an open source EXPRESS parser and application development kit Andy Carpenter

School of Computer Science PDE 2005expressik2 EXPRESS Interface Kit (expressik) Funded by ESTEC TEC-MCV, ESA Focus unlicensed software for thermal analysis data As general as possible within timescales of project –test cases include AP203, AP209, AP214, AP233 Separate model analysis from SDAI generation Maximise application independent analysis Language bindings: –C++ (early bound), C (p24), –Python (pyEXPRESS), Fortran Preserve existing TASVerter and its API Part 21 (2002) import and export (class 1 and 2)

School of Computer Science PDE 2005expressik3 Model Analysis Process (1994) and some (2004) Single or multi-schema Always has a viewpoint schema Almost no semantic checking Reference resolution (can be multiple resolutions) Importation defined by model followed, includes –identifying dependent and independent objects Data type(s) of objects determined Possible CEDTs can be determined (sometimes) API in Java is read-only Source location transferred to API

School of Computer Science PDE 2005expressik4 Parser Architecture

School of Computer Science PDE 2005expressik5 Parser Passes 1 1.Make the scope tables 2.Resolve schema references (in USE and REFERENCE FROM clauses) 3.Import the objects specified by the USE and REFERENCE clauses 4.Import any enumeration ids that are visible 5.Resolve subtype/supertype references 6.Inherit attributes from supertypes down into subtypes (unless there are id clashes)

School of Computer Science PDE 2005expressik6 Parser Passes 2 7Resolve all references apart from where they are part of an attribute qualification; i.e. work out the starting bits of expressions, etc 8Then using the viewpoint schema do Annex C –Apply the Section 11 rules for importation –Prune the supertype graph (i.e. alter supertype expressions) to remove non-imported entities –Apply Annex B 9Load the API 1Depth first walk of AST 2Fixup qualifications within expressions, etc

School of Computer Science PDE 2005expressik7 API – Model Element public final class Model extends ExpressObject { public Schema[] getSchemas(); public Schema getViewpointSchema(); public ModelSpecificConstant[] getConstants(); public DefinedDatatype[] getDefinedDatatypes(); public EntityDatatype[] getEntityDatatypes(); public ModelSpecificFunction[] getFunctions(); public ModelSpecificProcedure[] getProcedures(); public Rule[] getRules(); public …[] getComplexEntityDatatypes(); public void visitorAccept(…); } // Model

School of Computer Science PDE 2005expressik8 API – Entity Datatype Element public final class EntityDatatype extends … { public Identifier getModelIdentifier(); public Identifier getOriginalIdentifier(); public Identification[] getIdentifications(); public EntityDatatype[] getImmediateSupertypes() public DomainRule[] getDomainRules(); public UniqueRule[] getUniqueRules(); public void visitorAccept(…); …

School of Computer Science PDE 2005expressik9 API – Entity Datatype Element (Attributes) … public Attribute[] getAllAttributes(); public …[] getExplicitAttributes(); public …[] getDerivedAttributes(); public …[] getInverseAttributes(); public …[] getAllAttributeRedeclarations(); public …[] getAttributeExplicitRedeclarations() public …[] getAttributeDerivedRedeclarations(); public …[] getAttributeInverseRedeclarations() } // EntityDatatype

School of Computer Science PDE 2005expressik10 API – Complex Entity Datatype public final class ComplexEntityDatatype extends ComplexDatatype { public …[] getComponentEntityDatatypes() public EntityDatatype getLeaf () public Attribute[] getAllAttributes() public …[] getAllExplicitAttributes() public AttributeRedeclaration[] getEffectiveRedeclarations (… attribute) public boolean isDependent() public boolean isNonSchema() public void visitorAccept(…); } // ComplexEntityDatatype

School of Computer Science PDE 2005expressik11 C++ (Early Bound) SDAI Binding Generated in, almost, single pass over API Uses templates to implement early bound aggregates Template functions deal with GENERIC and AGGREGATE parameters Implements EXPRESS assignment/copy semantics –copy unless entity; need entity reference concept Substantial use of overloaded operators –C++ parser determines correct implementation User deals with EDTs not CEDTs Not early bound when EXPRESS is not Implemented in Java

School of Computer Science PDE 2005expressik12 C++ Binding and Entity Instances C++ ‘believes’ that can make copies of instances Introduced entity reference object –one for each EDT Need to preserve inheritance in reference and referenced objects A (ABS) BC 1 A (ref) B (ref) C (ref) AB B C A AC

School of Computer Science PDE 2005expressik13 EXPRESS is not Always Early Bound … LOCAL a1, a2 : A; b1, b2 : B; END_LOCAL; … a1 := A(…) || B(…); a2 := A(…) || C(…); b1 := a1; b2 := a2; … A (ABS) BC 1

School of Computer Science PDE 2005expressik14 Current State Multiple internal project releases done –parser and C++ binding generator –parser needs to support reading CEDTs used –C++: soon all functional code and verification Python binding soon License allowing public access on-going –based on NASA Open Source Agreement Documentation of C++ binding out-of-date All to be sorted in the short-term