Seal Dictionary Applications Area Internal Review 20 October 2003 Stefan Roiser / CERN.

Slides:



Advertisements
Similar presentations
Reflex Dictionary Generator Antti Hahto
Advertisements

OBJECT-ORIENTED PROGRAMMING CONCEPTS (Review). What is an Object? What is an Object? Objects have states and behaviors. Example: A dog has states - color,
SEAL Reflex, the new Reflection Library Stefan Roiser (for the LCG/SEAL Dictionary work package) LCG Applications Area Meeting, Oct. 6, 2004.
OOP in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Lecture 9 Concepts of Programming Languages
Peter Juszczyk CS 492/493 - ISGS. // Is this C# or Java? class TestApp { static void Main() { int counter = 0; counter++; } } The answer is C# - In C#
(c) University of Washington03-1 CSC 143 Java Inheritance Reading: Ch. 10.
SEAL V1 Status 12 February 2003 P. Mato / CERN Shared Environment for Applications at LHC.
XML I/O in ROOT S. Linev, R. Brun, H.G. Essel CHEP 2004.
M.Frank CERN/LHCb - Persistency Workshop, Dec.2004 Agenda: 2 separate talks! Don’t mangle together what does not belong together 1.Schema Evolution Tests.
K. Harrison CERN, 20th April 2004 AJDL interface and LCG submission - Overview of AJDL - Using AJDL from Python - LCG submission.
SEAL Project Status and Plans LHCC Comprehensive Review of LCG-AA November 2003 P. Mato / CERN.
CINT & Reflex: New Reflection Data Structures Masa(haru) Goto Agilent Philippe Canal Fermilab/CD Stefan Roiser, Axel Naumann PH/SFT.
1 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Introduction to Etch Scott.
SEAL: Core Libraries and Services Project CERN/IT After-C5 Meeting 6 June 2003 P. Mato / CERN.
March 27, 2007HPC 07 - Norfolk, VA1 C++ Reflection for High Performance Problem Solving Environments Tharaka Devadithya 1, Kenneth Chiu 2, Wei Lu 1 1.
ALICE, ATLAS, CMS & LHCb joint workshop on
The SEAL C++ Reflection System Stefan Roiser (for the LCG/SEAL Dictionary work package) CHEP 2004, 27. Sept Oct., Interlaken.
CHEP /21/03 Detector Description Framework in LHCb Sébastien Ponce CERN.
SEAL Project Overview Lorenzo Moneta/ CERN-EP on behalf of the SEAL team ACAT03 IX International Workshop on Advanced Computing and Analysis Techniques.
SEAL: Common Core Libraries and Services for LHC Applications CHEP’03, March 24-28, 2003 La Jolla, California J. Generowicz/CERN, M. Marino/LBNL, P. Mato/CERN,
JDojo and Its Usage Te-Hsin Shih 04/30/2013. Dojo Dojo Toolkit is an open source JavaScript library designed to ease the rapid development of cross-platform,
SEAL Core Libraries and Services CLHEP Workshop 28 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
SEAL Project Core Libraries and Services 18 December 2002 P. Mato / CERN Shared Environment for Applications at LHC.
JACO JACO - Java Access to C++ Objects Mark Dönszelmann and Tony Johnson 25 May 2000.
Apr. 8, 2002Calibration Database Browser Workshop1 Database Access Using D0OM H. Greenlee Calibration Database Browser Workshop Apr. 8, 2002.
LC Software Workshop, May 2009, CERN P. Mato /CERN.
GDB Meeting - 10 June 2003 ATLAS Offline Software David R. Quarrie Lawrence Berkeley National Laboratory
Templates & STL Stefan Roiser, Lorenzo Moneta CERN PH/SFT.
- Athena Data Dictionary (28nov00 - SW CERN) Athena Data Dictionary Craig E. Tull HCG/NERSC/LBNL Software CERN November 28,
SEAL Framework & Services LCG AA Internal Review 20 October, 2003 Radovan Chytracek / CERN on behalf of SEAL team.
SEAL and PI Project Status LHCC Comprehensive Review of LCG November 2004 P. Mato / CERN.
LCG Applications Area Meeting - 5 Feb 2003 ATLAS Strategy for the Data Dictionary & Persistency David R. Quarrie Lawrence Berkeley National Laboratory.
CHEP /21/03 Detector Description Framework in LHCb Sébastien Ponce CERN.
Gaudi Framework Tutorial, Interfacing Gaudi with Python.
SEAL Project Overview LCG-AA Internal Review October 2003 P. Mato / CERN.
23/2/2000Status of GAUDI 1 P. Mato / CERN Computing meeting, LHCb Week 23 February 2000.
D. Duellmann - IT/DB LCG - POOL Project1 The LCG Pool Project and ROOT I/O Dirk Duellmann What is Pool? Component Breakdown Status and Plans.
Event Data Definition in LHCb Marco Cattaneo Markus Frank Silvia Miksch Gloria Corti Pere Mato Vila Stefan Roiser.
K. Harrison CERN, 3rd March 2004 GANGA CONTRIBUTIONS TO ADA RELEASE IN MAY - Outline of Ganga project - Python support for AJDL - LCG analysis service.
STL CSSE 250 Susan Reeder. What is the STL? Standard Template Library Standard C++ Library is an extensible framework which contains components for Language.
Modern Programming Language. Web Container & Web Applications Web applications are server side applications The most essential requirement.
- LCG Blueprint (19dec02 - Caltech Pasadena, CA) LCG BluePrint: PI and SEAL Craig E. Tull Trillium Analysis Environment for the.
Wel come To Seminar On C#.
D. Duellmann - IT/DB LCG - POOL Project1 The LCG Dictionary and POOL Dirk Duellmann.
CINT & Reflex – The Future CINT’s Future Layout Reflex API Work In Progress: Use Reflex to store dictionary data Smaller memory footprint First step to.
The SEAL Component Model Radovan Chytracek CERN IT/DB, LCG AA On behalf of LCG/SEAL team This work received support from Particle Physics and Astronomy.
Object orientation and Packaging in Java Object Orientation and Packaging Introduction: After completing this chapter, you will be able to identify.
SEAL Project Status SC2 Meeting 16th April 2003 P. Mato / CERN.
CINT/Reflex workshop 1 Rene Brun 4 May 2005 Summary of the CINT/Reflex workshop 2-6 May 2005
Project Work Plan SEAL: Core Libraries and Services 7 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
Status of SEAL LCG Applications Area Meeting 22 July 2003 P. Mato / CERN Contents Overview Work Packages Status Summary.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
Elements of LCG Architecture Application Architecture Blueprint RTAG 8 th June 2002 P. Mato / CERN.
POOL Based CMS Framework Bill Tanenbaum US-CMS/Fermilab 04/June/2003.
ROOT / Reflex ‘07+ Stefan Roiser Missed last team meeting b/c.
SEAL: Common Core Libraries and Services for LHC Applications
SEAL Project Overview Lorenzo Moneta/ CERN-EP ACAT03
Stefan Roiser CERN / PH / SFT
Dictionary generation for the Experiments
Event Data Definition in LHCb
Geant4 Geometry Objects Persistency using ROOT
Dirk Düllmann CERN Openlab storage workshop 17th March 2003
Data Modeling II XML Schema & JAXB Marc Dumontier May 4, 2004
Lecture 9 Concepts of Programming Languages
Interfaces.
From C++ to Java Java history: Oak, toaster-ovens, internet language, panacea What it is O-O language, not a hybrid (cf. C++) compiled to byte-code, executed.
SEAL Project Core Libraries and Services
Final Exam Review Inheritance Template Functions and Classes
Lecture 9 Concepts of Programming Languages
Presentation transcript:

Seal Dictionary Applications Area Internal Review 20 October 2003 Stefan Roiser / CERN

20 October 2003Seal Dictionary 2 Motivation  The Architecture Blueprint RTAG proposes the use of object dictionaries for –object streamers, object browsers, debuggers –rapid prototyping applications (e.g. Python) –runtime discovery of interfaces  Modern languages provide reflection inherently –In C++ reflection is very limited (RTTI)  The basic C++ concepts shall be supported –e.g. inheritance, methods, data members, accessibility, templates

20 October 2003Seal Dictionary 3 Packages in Seal Dictionary  Reflection packages –DictionaryGenerator for producing sources –ReflectionBuilder, the loading interface –Reflection, the user API  Dictionary examples –CMS –ATLAS (not yet in cvs)  Standard Dictionaries –CLHEP: Random, Vector –STL: Vector, List, String –Dictionary: Reflection

20 October 2003Seal Dictionary 4 Overall View Dictionary for C++ Object Reflection System Client C++ Object Build dictionary for C++ object Load information about the object into the reflection model Provide meta information about the object to the user

20 October 2003Seal Dictionary 5 Reflection Model Class Diagram PropertyListItem MethodField ItemBuilder MethodBuilderFieldBuilderClassBuilder NamespaceBuilder Reflection ReflectionBuilder ClassNamespace

20 October 2003Seal Dictionary 6 Usage Example Class mc* = Class::forName(“Foo”); void* fooInst = mc->instantiate(); std::vector fields = mc->fields(); std::string f0name = fields[0]->name(); std::string f0type = fields[0]->type()->name(); fields[0].set(fooInst, 4711); Method* m0meth = mc->method(“getBar”); int m0val = m0meth->invoke(fooInst);

20 October 2003Seal Dictionary 7 Parse C++ Header Files gccxml.h.xml _dict.cpp.xml parser filter + extend gendict makedict.so lcgdict Example: lcgdict Foo.h –-select=FooSel.xml --deep –I/home/lcg/include selection file header file dictionary sourcedictionary library.xml GOD desc

20 October 2003Seal Dictionary 8 How to build Dictionaries  Parse C++ header files –lcgdict »i.e. gccxml + python script  Other means –Derive from XML descriptions »LHCb approach –Write by hand »design was made with simple syntax in mind #include “Foo.h” class Foo_dict { public: Foo_dict(); }; Foo_dict::Foo_dict() { ClassBuilder(“Foo”,”desc of Foo”, typeid(Foo),sizeof(Foo)). addField(“bar”,”int”,”desc of bar”, OffsetOf(Foo,bar)). addMethod(“getBar”,“desc of getBar”, “int”, Foo_getBar). build(); } static Foo_dict inst;

20 October 2003Seal Dictionary 9 Who is using Dictionaries  POOL –DataService »Casting, type-checking and deleting of objects –StorageService »Provide meta-information of objects when writing »Instantiating objects when reading, type-checking  SEAL –PyLCGDict »Python gateway to dictionaries –PluginManager (work in progress) »Loading dictionaries into the application

20 October 2003Seal Dictionary 10 New Reflection Model Inheritance PointerReferenceArrayFunctionFundamental Type Scope Namespace Member PropertyList Reflection TypeDefClassEnum

20 October 2003Seal Dictionary 11 Outlook  Implementation of new model  Extending and creating new dictionaries on demand  eXtended Type Information (XTI) –Stroustrup approach –Still very preliminary, solution for far future  New language gateways –Java gateway under investigation

20 October 2003Seal Dictionary 12 Summary  Seal –Provides standard dictionaries (STL, CLHEP, …) –Provides python gateway (PyLCGDict) –Feasibility studies for ATLAS and CMS –PluginManager will load dictionaries –New model will be implemented soon  Pool –Has been using dictionary system from the beginning  LHCb –Will use dictionaries as well