2 Addressing the Inheritance Anomaly One of the major issues in correctly connecting task communication mechanisms and the object-oriented paradigm is

Size: px
Start display at page:

Download "2 Addressing the Inheritance Anomaly One of the major issues in correctly connecting task communication mechanisms and the object-oriented paradigm is"

Transcription

1 Extendable, Dispatchable Task Communication Mechanisms Stephen Michell Maurya Software 29 Maurya Court Ottawa Ontario, Canada K1G 5S3 Kristina Lundqvist Dept. of Computer Systems Uppsala University, P.O. Box Uppsala, Sweden January 14, 1999 Abstract The addition of object-oriented features to Ada has left a disconnection between the object-oriented paradigm and the intertask communication and synchronisation paradigms. The lack of extensibility of tasks and protected types as well as the task synchronisation inheritance anomaly has made design of systems that use them with object oriented features more dicult. This paper proposes Ada language changes that would make protected types and tasks partners in object oriented programming and would cure the inheritance anomaly. 1 Introduction During the Ada9X revision process, a new program element called protected types was designed to manage asynchronous intertask communication [ARM95]. Consideration was given at that time to make protected types object oriented, but a conscious decision was made not to do this. The reasons at the time were that the realtime community was quite nervous about the new object-oriented paradigm and how Ada9X would implement it, and whether or not it would interfere with the tasking paradigm. In the 4 years since the Ada9X project nished the language denition, some realtime developers have expressed dissatisfaction with the disconnect between Ada95's object-oriented paradigm and the non-oriented task communication features in the rendezvous and in protected objects. A number of papers about Ada95's lack of support for inheritance and dispatching in the task communication mechanisms have appeared, [MW96] [WMB96] [SN98] the most recent being a proposal by O.P. Kiddle and A.J. Wellings at SIGAda98 [KW98] to extend the object oriented paradigm to extensible protected types. We propose a modied approach to the Kiddle and Wellings approach to extendable tasking communication mechanisms which use protected objects as the controlling operand for dispatching operations. Instead, we propose a technique that relies upon the controlling type of task types and protected types as expressed by discriminants to eect the extensibility of these Ada types. We also address mechanisms to create object-oriented task communication mechanisms. Once the need for extensible task communication facilities has been established by the Ada community, and the syntax and semantics of the constructs agreed upon, we believe that a complete proposal can be developed for consideration by ISO/IEC/JTC1/SC22/WG9 for inclusion in a future language revision.

2 2 Addressing the Inheritance Anomaly One of the major issues in correctly connecting task communication mechanisms and the object-oriented paradigm is the avoidance of the tasking inheritance anomaly. As [MY93] and [LW94] discuss, this anomaly occurs, not because tasks and protected types aren't extensible or tagged, but because the synchronisation conditions (entry barrier conditions and task entry guard conditions) cannot be updated to take into account new algorithms needed when the data being manipulated by these types is extended. Ada's entry barrier expressions (for protected types) and entry guard conditions (for tasks) already give a signicant amount of expressive power in writing synchronisation code. Message types can be individually handled with dedicated synchronisation code by giving each message type its own entry. The missing functionality from the language is the ability to add new synchronisation conditions and entry code to existing task types and protected types. Our proposal will solve the inheritance anomaly by permitting the addition of new entry barrier/guard conditions and overridden entry code when the protected type or task is extended. 3 Adding Capabilities to Ada For projects developing object-oriented systems that communicate via Ada task synchronisation mechanisms, there is a clear need to extend the object-oriented paradigm to communicating concurrent processes to permit extensibility to add new communication routines and update task synchronisation algorithms without having to rewrite functioning subsystems. Certainly the capability to extend the tasking paradigm, add new locking algorithms and add new task interactions without recoding the old algorithms adds powerful new paradigms to the language. The last four years has shown that the Ada OO facility is ecient and safe, and many realtime communities are using the OO paradigm with some version of concurrency (either Ada tasking or some other form of tasking). Certainly the protected type paradigm is a valid candidate for modication. Kiddle and Wellings have presented an approach to the creation of this paradigm. Our belief is that the basic analysis and proposed capability is sound and should be considered by the Ada community for inclusion in Ada2005. There are, however, a number of issues with their approach that need to be addressed. The ones that we have identied are discussed in Annex A. Kiddle and Wellings argue for the extension of the Protected Type paradigm, but do not seriously consider the task/rendezvous mechanism. There are some who feel that this mechanism is obsolete now that PTs are in the language. The Ada task/rendezvous capability, however, is a stand-alone synchronous communication paradigm which will be used by many development teams. If these teams also use OO techniques, then the task and rendezvous mechanisms are valid candidates for modication. Annex B addresses some of the issues related to integrating Ada tasks to the OO paradigm. 4 Conclusions If the ISO/IEC/JTC1/SC22/WG9/ARG is to actively consider proposals to integrate Ada tasking constructs with the object-oriented paradigm, then a clear statement of the need and a viable proposal are required - probably sometime in The 9th IRTAW could be instrumental in this process. To be eective, a number of developed proposals are needed, and the IRTAW needs to carefully evaluate the 2

3 perceived requirement and proposed solutions to determine the feasibility of the proposed approaches and to make clear recommendations to ISO/IEC/JTC1/SC22/WG9 on an approach that would be acceptable to the realtime Ada community. We believe that an approach based upon the work of Kiddle and Wellings and the proposals presented here would form a good start for such a proposal. A Protected Types and OO O.P. Kiddle and A.J. Wellings [KW98] make a strong case for the extension of Ada's Protected Type mechanism to eliminate the tasking inheritance anomaly. After a fairly extensive analysis, [KW98] propose an extendable, dispatchable protected type mechanism which consists of the following: Adding the optional keyword \tagged" to protected types. Such types would be extensible in the sense that new data elements can be added to the data in the private area, protected functions, protected procedures and protected entries can be overridden and new ones can be added. New guard conditions can be added to overridden entries. New primitive subprograms external to the protected type can be added. Protected subprograms and protected entries are dispatching when called using a class-wide protected type. This proposal is a good start in addressing the issues and proposing an extensibility mechanism for Ada protected types. There are, however, a number of additional issues that must be considered for tagged protected types to be seriously considered by the Ada community. A.1 Basic Mechanism The proposal to add protected type extensibility to the language, the restriction to types only (excluding singular protected objects) and the basic proposals for its behaviour and primitive subprograms is reasonable. The major diculty with the proposal is the proposal that the protected type be made the controlling operand for dispatching subprograms. Protected types are often used to operate on data, and in an object-oriented language on classes of data. When one adds new descendants to a class which are served by a protected type, it should be possible to extend the protected type by adding data elements to the protected type itself, adding or overriding protected operations, and by modifying the entry barrier to handle new conditions. There are two ways in which such a protected type could be extended over tagged types: when an extensible protected type is declared in the same scope as the tagged type it becomes \primitive" to the type in the same way that normal subprograms are primitive on the type; or when a tagged type is made a discriminant of a protected type, it becomes a controlling operand, and the protected type can be extended by adding data elements, adding or overriding protected operations, and by modifying protected entry barrier conditions. Of the two methods, we prefer the second since protected types with the desired behaviour would not be required to be declared in the same scope as the 3

4 controlling types. It is even possible that a protected type with multiple tagged discriminants could have dispatching protected operations on types from dierent classes, although any single protected operation could only have a single controlling operand. Figure 1 shows an example of the denition of such an extensible protected type denition. with MH_Pkg; -- contains tagged type Message_T protected type Message_Handler_T( M : MH_Pkg.Message_T ) is tagged entry Put( M : in MH_Pkg.Message_T ); -- dispatching on M entry Get( M : out MH_Pkg.Message_T ); -- dispatching on M private M_Queue : array( Some_Range ) of MH_Pkg.Message_T; First, Last : Some_Range; entry Put( M : in MH_Pkg.Message_T ) when Cond_1; -- barrier entry Get( M : out MH_Pkg.Message_T ) when Cond_2; -- conditions end Message_Handler_T; Figure 1: Example Specication of an Extensible Protected Type. This proposal diers from the Kiddle-Wellings approach in that there is no notion of the protected type being the controlling parameter in calls, and there is no notion that subprograms declared in the same scope being primitive on the protected type. It would seem reasonable that the visibility of protected type private parts and the extensibility of protected types should be limited to extensions within the same declarative region, subunits or child packages. A.2 Separation of Specication and Body The proposal described in [KW98] would have barrier evaluation happening in a way that could make protected type bodies dependent on the bodies of other protected types. It is a fundamental principle in Ada that there be no dependency between the body of a unit and the specication or bodies of dependent units. In fact, one of the major accomplishments of Ada95 was the removal of the Ada83 dependency between the body of a generic unit and the units which instantiate the generic. Any proposal to add or extend barrier conditions must nd a way to permit extension without having dependency upon the body of the ancestor unit. Since the data elements of Ada95 Protected Types are contained in the specication private part, there are no protected body dependency issues for data extensions. There is, however, a dependency issue with respect to barrier expressions contained in the body of the protected type. To remove this dependency, we propose to move the barrier condition expressions from the body of the protected type to the private part of the specication. The syntax of the protected type specication is shown in Figure 1. Barrier conditions would be replicated in the protected type body but must statically match those given in the specication. With this proposal, the entry and the associated entry barrier condition are placed in the private part of the specication. This mechanism lets the condition be visible and known to extensions of the type, which should also make it possible to completely replace the barrier condition, not merely \strengthen" the condition as proposed in [KW98]. 4

5 A.3 Redispatching of Protected Subprograms The extension to protected subprograms following our proposal is straightforward since it exactly follows the syntax for redispatching of normal subprograms, that is to say, a subprogram dispatches on a class-wide controlling formal parameter, i.e. one that is a standard Ada tagged type. Since the protected subprogram already has the lock for the protected object, the locking issues exactly match existing protected type syntax/semantics. This is an improvement on the Kiddle-Wellings approach which conicts with Ada's use of the type name to designated the current object within the type. A.4 Redispatching to Protected Entries The redispatch to protected entries in an ancestor type raises a number of issues that are not present for protected subprograms. Because entries are potentially blocking operations, calls to protected entries, even in the same protected object, are not allowed in Ada95. This is a cornerstone of Ada95 protected entry semantics which, in our opinion, would be unacceptable to the realtime community to change. Therefore, the only form of redispatching which should occur is direct calls to dispatching protected subprograms or requeue to overridden entries as discussed below. A.5 Requeue A major issue for the implementation of object-oriented protected types is that every new entry that overrides those of ancestors creates a new queue in every protected object of the new type. This provides the opportunity for any caller to call the protected object's entry queue as any ancestor. Similarly, a caller can be requeued to any queue after a type conversion to the appropriate ancestor. The requeue mechanism does not require an immediate acceptance by the protected-object-asancestor, so there is no need for the barrier conditions to be true. This exibility permits signicant modications to the entry locking protocols when a protected type is extended, which should provide signicant capability to the feature. The mechanism for the requeue operation is shown in Figure 2. requeue PT.Entry_Id( Ultimate_Ancestor(T(Var))'Class, ); -- for a class-wide dispatching call, or requeue PT.Entry_Id( T(Var), ); -- for an explicit call -- where Var is an object of a class-wide type with a tag that -- matches the current instance for the entry, T(Var) is an -- explicit type conversion to an ancestor Figure 2: Example of Dispatching Requeues. A.6 Protected Type Summary This proposal provides a mechanism for object-oriented protected types which can be parameterised and extended over tagged types passed as discriminants. We believe that these proposals solve the inheritance anomaly for Ada95 and permit Ada protected type task communication mechanisms to be fully integrated with the other object-oriented features. 5

6 B Extensible Tasks The original task communication and synchronisation method dened by Ada was the task rendezvous. The rendezvous mechanisms are completely synchronous and provide powerful paradigms to provide sequencing, scheduling preference control, and expose state transition behaviour in the body of server tasks. The lack of a smooth connection between tasks and Ada's tagged types, however, forces developers to use overly complex workarounds to solve the extension and inheritance anomalies. There are some fundamental issues that make the extension of tasks more challenging than does the extension of protected objects. Tasks have only entries, which in our proposal are not redispatching (but can be dispatched upon requeue), have most of the declarations in the body, and can accept the same entry more than once in the same select statement or in dierent select statements. In order to make tasks extensible, the Ada community would have to accept syntax and semantic changes that moved specications to the task specication part and signicantly restricted what could be done within a task body. This proposal outlines the basic syntax changes needed to make tasks and the rendezvous extensible, in the hope that the realtime community will think about the issues, decide if it is worthwhile persuing such changes, and decide what limitations would be acceptable to obtain extensible tasks. B.1 Basic Mechanism All of the issues about the inheritance, visibility and primitive operations of protected types discussed in Annex A for Protected Types and in [KW98] also apply to Ada task types, with 1 major exception - the declarative region of a task (except for the name and entry specication) is in the body of the task. The discussions of the previous section about the separation of specication and body apply equally to tasks: - to extend the data objects of a task, they must be declared in the task specication, which represents a fundamental shift in Ada syntax. The other fundamental issue for extensible tasks is in normal Ada tasking, entry guards and the \select" code that examines these guards all must occur in-line within the task body, and can be replicated, nested, or occur in several \select" blocks within the task body code. To move the guard condition and the entry executed into the specication, it must be known that extensible tasks are restricted as follows: only 1 select statement within a single loop; and each entry can only be selected once within the select statement. An example denition of an extensible task is shown in Figure 3. With this proposal, data elements specied in the task specication part can be added and entry guard conditions provided in the private specication can be overridden. This is shown in Figure 4. In the extensible tasking proposal, it should be noted that Conditions in the body, and the entry called must statically match the denition given in the specication. The opportunity exists to change the guard conditions, as well as replacing the entry code at each level. B.2 Dispatching to Ancestor's Entry There are two possible mechanisms to eect redispatching within the tasking/rendezvous proposal. The rst mechanism is for the body of the task executing the rendezvous 6

7 with Pkg; -- containing Some_Tagged_Type task type T( V : Pkg.Some_Tagged_Type) is tagged Entry E1( X : Pkg.Some_Tagged_Type; Y : Y_Type ); Entry E2( W : Pkg.Some_Tagged_Type; Z : Z_Type); private Entry Ep1(); XL : X_Type; YL : Y_Type; when <cond1> => accept E1(); when <cond2> => accept E2(); when <cond_p1> => accept EP1(); end T; task body T is -- more declarations begin -- T while <cond> loop select when <cond1> => accept E1() do end E1; when <cond2> => accept E2() do end E2; end select; -- other processing end loop; end T; Figure 3: Tagged Task Specication and Body. 7

8 task type T1(V : Pkg2.Some_Tagged_Type_2) is new T with -- Note that we are extending T with a new entry E_New, -- overriding E1, and adding new data elements and -- conditions on the select statement. entry E_New( K : Pkg2.Some_Tagged_Type_2 ); Entry E1( X : Pkg.Some_Tagged_Type; Y : Y_Type ); private entry E_Private_New( K : Pkg.Some_Tagged_Type ); K1 : K_Type; when <condn1> => accept E1(); when <condnn> => accept E_New(); end T; task body T1 is -- more new declarations begin -- T while <cond> loop -- Since this task body extends the body of T, only the -- new or overridden entries need to be defined. select when <condn1> => accept E1() do end E1; when <condnn> => accept E_New() do end E_New; end select; -- X No other processing allowed XXX end loop; end T; Figure 4: Task Extension and Extension Body. 8

9 to do a type conversion to a parent type and call it's parent's type entry as a classwide call. In Ada, however, it is erroneous to call one's own entries, hence, just as in the case of protected entries, redispatching via the entry call mechanism does not make sense. The second mechanism is the requeue. The requeue mechanism would have the identical semantics to the dispatching requeue mechanism discussed for protected entries. In our proposal the requeue semantics are identical to those presented in Annex A for protected types, and hence will not be discussed further here. B.3 Extensible Task Conclusion Although most of the work in the Ada community with respect to extensible tasking mechanisms has been directed to the protected type mechanism, the task communication mechanisms should be seriously considered for inclusion in this process. In order to make the rendezvous extensible in the object-oriented sense, some of the specication syntax that is currently in task bodies must be moved to the task specication private part. In addition, restrictions on the way that the select statement and accept statement are used must be specied and become part of the language for tagged task types. With these modest changes, it should be possible to also consider task rendezvous as an extensible task communication paradigm that satises the tasking inheritance anomaly. References [ARM95] Intermetrics, \Ada95 Reference Manual", ISO/IEC-8652:1995, [GS83] G. Andrews and F. Schneider, \Concepts and Notations for Programming", ACM Computing Surveys 15(1), [KW98] O.P. Kiddle and A.J. Wellings, \Extensible Protected Types", Proceedings of the ACM SIGAda Annual International Conference, [LW94] B. Liskov and J. Wing, \A behavioural notion of subtyping", ACM Transactions on Programming Languages and Systems 16(6), [MW96] S.E. Mitchell and A.J. Wellings, \Synchronization, Concurrent Object- Oriented Programming and the Inheritance Anomaly", Computer Languages 22(1), [MY93] S. Matsouka and A. Yonezwa, \Analysis of Inheritance Anomaly in Object- Oriented Concurrent Programming Languages", Research Directions in Concurrent Object-Oriented Programming, MIT Press, [SN98] G. Schumacher, and W. Nebel, \How to Avoid the Inheritance Anomaly in Ada", in proc. Reliable Software Technologies - Ada-Europe'98, LNCS 1411, [WMB96] A.J. Wellings, S. Mitchell, A. Burns, \Object-Oriented Programming with Protected Types in Ada95", International Journal of Mini and Micro Computers 18(3),

The language should have few implementation dependencies and should be simple, so that interactions between language features do not give unexpected b

The language should have few implementation dependencies and should be simple, so that interactions between language features do not give unexpected b Using Analytical Approaches for High Integrity Ada95 Systems Stephen Michell Maurya Software 29 Maurya Court, Ottawa, Ontario K1G 5S3 Canada Email: steve@maurya.on.ca Dan Craigen, Mark Saaltink ORA Canada

More information

The Deadline Floor Protocol and Ada

The Deadline Floor Protocol and Ada The Deadline Floor Protocol and Ada Alan Burns and Andy Wellings University of York, UK. emails: alan.burns,andy.wellings@york.ac.uk Abstract This short paper summarises the current status of the proposal

More information

Interfacing Ada to Operating Systems

Interfacing Ada to Operating Systems Interfacing Ada to Operating Systems Stephen Michell Maurya Software Inc Ottawa, Ontario stephen.michell@maurya.on.ca Abstract This paper examines approaches used by the Ada programming language to interface

More information

Experiences Report on the Implementation of EPTs for GNAT

Experiences Report on the Implementation of EPTs for GNAT Experiences Report on the Implementation of EPTs for GNAT Rodrigo García García, Alfred Strohmeier Software Engineering Laboratory Swiss Federal Institute of Technology in Lausanne (EPFL) CH-1015 Lausanne

More information

Integrating OOP and Tasking The missing requeue

Integrating OOP and Tasking The missing requeue Integrating OOP and Tasking The missing requeue A.J. Wellings and A. Burns Department of Computer Science University of York, UK {andy,burns}@cs.york.ac.uk Abstract Ada 2005 has provided limited integration

More information

The S-Expression Design Language (SEDL) James C. Corbett. September 1, Introduction. 2 Origins of SEDL 2. 3 The Language SEDL 2.

The S-Expression Design Language (SEDL) James C. Corbett. September 1, Introduction. 2 Origins of SEDL 2. 3 The Language SEDL 2. The S-Expression Design Language (SEDL) James C. Corbett September 1, 1993 Contents 1 Introduction 1 2 Origins of SEDL 2 3 The Language SEDL 2 3.1 Scopes : : : : : : : : : : : : : : : : : : : : : : : :

More information

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group SAMOS: an Active Object{Oriented Database System Stella Gatziu, Klaus R. Dittrich Database Technology Research Group Institut fur Informatik, Universitat Zurich fgatziu, dittrichg@ifi.unizh.ch to appear

More information

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA A taxonomy of race conditions. D. P. Helmbold, C. E. McDowell UCSC-CRL-94-34 September 28, 1994 Board of Studies in Computer and Information Sciences University of California, Santa Cruz Santa Cruz, CA

More information

Priority Inversion in Multi Processor Systems due to Protected Actions

Priority Inversion in Multi Processor Systems due to Protected Actions Priority Inversion in Multi Processor Systems due to Protected Actions Gustaf Naeser Department of Computer Science and Engineering, Mälardalen University, Sweden gustaf.naeser@mdh.se The use of multiple

More information

To appear in: IEEE Transactions on Knowledge and Data Engineering. The Starburst Active Database Rule System. Jennifer Widom. Stanford University

To appear in: IEEE Transactions on Knowledge and Data Engineering. The Starburst Active Database Rule System. Jennifer Widom. Stanford University To appear in: IEEE Transactions on Knowledge and Data Engineering The Starburst Active Database Rule System Jennifer Widom Department of Computer Science Stanford University Stanford, CA 94305-2140 widom@cs.stanford.edu

More information

Transforming Ada Serving Tasks Into Protected Objects

Transforming Ada Serving Tasks Into Protected Objects Transforming Ada Serving Tasks Into Protected Objects Bangqing Li Baowen Xu Huiming Yu Department of Computer Science & Engineering Department of Computer Science Southeast University North Carolina A&T

More information

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics The Compositional C++ Language Denition Peter Carlin Mani Chandy Carl Kesselman March 12, 1993 Revision 0.95 3/12/93, Comments welcome. Abstract This document gives a concise denition of the syntax and

More information

On 17 June 2006, the editor provided the following list via an to the convener:

On 17 June 2006, the editor provided the following list via an  to the convener: ISO/IEC JTC 1/SC 22/WG 9 N 471 List of AIs Approved per Resolution 50-8 James W. Moore, Convener 23 June 2006 Resolution 50-8 reads as follows: "Noting WG9's approval of the amendment to ISO/IEC 8652 and

More information

Software Component Relationships. Stephen H. Edwards. Department of Computer Science. Virginia Polytechnic Institute and State University

Software Component Relationships. Stephen H. Edwards. Department of Computer Science. Virginia Polytechnic Institute and State University Software Component Relationships Stephen H. Edwards Department of Computer Science Virginia Polytechnic Institute and State University 660 McBryde Hall Blacksburg, VA 24061-0106 Tel: (540)-231-7537 Email:

More information

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations Outline Computer Science 331 Data Structures, Abstract Data Types, and Their Implementations Mike Jacobson 1 Overview 2 ADTs as Interfaces Department of Computer Science University of Calgary Lecture #8

More information

Server 1 Server 2 CPU. mem I/O. allocate rec n read elem. n*47.0. n*20.0. select. n*1.0. write elem. n*26.5 send. n*

Server 1 Server 2 CPU. mem I/O. allocate rec n read elem. n*47.0. n*20.0. select. n*1.0. write elem. n*26.5 send. n* Information Needs in Performance Analysis of Telecommunication Software a Case Study Vesa Hirvisalo Esko Nuutila Helsinki University of Technology Laboratory of Information Processing Science Otakaari

More information

On Object Orientation as a Paradigm for General Purpose. Distributed Operating Systems

On Object Orientation as a Paradigm for General Purpose. Distributed Operating Systems On Object Orientation as a Paradigm for General Purpose Distributed Operating Systems Vinny Cahill, Sean Baker, Brendan Tangney, Chris Horn and Neville Harris Distributed Systems Group, Dept. of Computer

More information

THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL. Jun Sun, Yasushi Shinjo and Kozo Itano

THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL. Jun Sun, Yasushi Shinjo and Kozo Itano THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL Jun Sun, Yasushi Shinjo and Kozo Itano Institute of Information Sciences and Electronics University of Tsukuba Tsukuba,

More information

2 Data Reduction Techniques The granularity of reducible information is one of the main criteria for classifying the reduction techniques. While the t

2 Data Reduction Techniques The granularity of reducible information is one of the main criteria for classifying the reduction techniques. While the t Data Reduction - an Adaptation Technique for Mobile Environments A. Heuer, A. Lubinski Computer Science Dept., University of Rostock, Germany Keywords. Reduction. Mobile Database Systems, Data Abstract.

More information

Generating Continuation Passing Style Code for the Co-op Language

Generating Continuation Passing Style Code for the Co-op Language Generating Continuation Passing Style Code for the Co-op Language Mark Laarakkers University of Twente Faculty: Computer Science Chair: Software engineering Graduation committee: dr.ing. C.M. Bockisch

More information

A Boolean Expression. Reachability Analysis or Bisimulation. Equation Solver. Boolean. equations.

A Boolean Expression. Reachability Analysis or Bisimulation. Equation Solver. Boolean. equations. A Framework for Embedded Real-time System Design? Jin-Young Choi 1, Hee-Hwan Kwak 2, and Insup Lee 2 1 Department of Computer Science and Engineering, Korea Univerity choi@formal.korea.ac.kr 2 Department

More information

Programming. In Ada JOHN BARNES TT ADDISON-WESLEY

Programming. In Ada JOHN BARNES TT ADDISON-WESLEY Programming In Ada 2005 JOHN BARNES... TT ADDISON-WESLEY An imprint of Pearson Education Harlow, England London New York Boston San Francisco Toronto Sydney Tokyo Singapore Hong Kong Seoul Taipei New Delhi

More information

ICC++ Language Denition. Andrew A. Chien and Uday S. Reddy 1. May 25, 1995

ICC++ Language Denition. Andrew A. Chien and Uday S. Reddy 1. May 25, 1995 ICC++ Language Denition Andrew A. Chien and Uday S. Reddy 1 May 25, 1995 Preface ICC++ is a new dialect of C++ designed to support the writing of both sequential and parallel programs. Because of the signicant

More information

Thesis book. Extension of strongly typed object-oriented systems using metaprograms István Zólyomi

Thesis book. Extension of strongly typed object-oriented systems using metaprograms István Zólyomi Thesis book Extension of strongly typed object-oriented systems using metaprograms István Zólyomi Supervisor: Dr. Zoltán Porkoláb Eötvös Loránd University Faculty of Informatics Department of Programming

More information

Reverse Engineering with a CASE Tool. Bret Johnson. Research advisors: Spencer Rugaber and Rich LeBlanc. October 6, Abstract

Reverse Engineering with a CASE Tool. Bret Johnson. Research advisors: Spencer Rugaber and Rich LeBlanc. October 6, Abstract Reverse Engineering with a CASE Tool Bret Johnson Research advisors: Spencer Rugaber and Rich LeBlanc October 6, 994 Abstract We examine using a CASE tool, Interactive Development Environment's Software

More information

Suggestions for Stream Based Parallel Systems in Ada

Suggestions for Stream Based Parallel Systems in Ada Suggestions for Stream Based Parallel Systems in Ada M. Ward * and N. C. Audsley Real Time Systems Group University of York York, England (mward,neil)@cs.york.ac.uk Abstract Ada provides good support for

More information

Classwide Programming 1

Classwide Programming 1 Classwide Programming 1 OO Definitions Type extension Tagged types 1 Object-Oriented Programming Method of program construction that facilitates: writing reusable software components supporting programming

More information

Autolink. A Tool for the Automatic and Semi-Automatic Test Generation

Autolink. A Tool for the Automatic and Semi-Automatic Test Generation Autolink A Tool for the Automatic and Semi-Automatic Test Generation Michael Schmitt, Beat Koch, Jens Grabowski and Dieter Hogrefe University of Lubeck, Institute for Telematics, Ratzeburger Allee 160,

More information

Lecture Notes on Programming Languages

Lecture Notes on Programming Languages Lecture Notes on Programming Languages 85 Lecture 09: Support for Object-Oriented Programming This lecture discusses how programming languages support object-oriented programming. Topics to be covered

More information

Network. Department of Statistics. University of California, Berkeley. January, Abstract

Network. Department of Statistics. University of California, Berkeley. January, Abstract Parallelizing CART Using a Workstation Network Phil Spector Leo Breiman Department of Statistics University of California, Berkeley January, 1995 Abstract The CART (Classication and Regression Trees) program,

More information

Inter-process communication (IPC)

Inter-process communication (IPC) Inter-process communication (IPC) We have studied IPC via shared data in main memory. Processes in separate address spaces also need to communicate. Consider system architecture both shared memory and

More information

Parametric and provisioning approaches are again obviously useful for various

Parametric and provisioning approaches are again obviously useful for various Parametric and provisioning approaches are again obviously useful for various kinds of generic descriptions and provide the most direct means of deriving their product architecture from the product line

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

SCXML State Chart XML

SCXML State Chart XML SCXML State Chart XML Previously, in this course... Previously, in this course... Running Example all actions omitted wasn t it supposed to help? Previously, in this course... Running Example all actions

More information

1 Introduction The object-oriented programming (OOP) paradigm provides the tools and facilities for developing software that is easier to build, exten

1 Introduction The object-oriented programming (OOP) paradigm provides the tools and facilities for developing software that is easier to build, exten ABC ++ : Concurrency by Inheritance in C ++ Eshrat Arjomandi, y William O'Farrell, Ivan Kalas, Gita Koblents, Frank Ch Eigler, and Guang G Gao Abstract Many attempts have been made to add concurrency to

More information

Concurrent Programming Lecture 3

Concurrent Programming Lecture 3 Concurrent Programming Lecture 3 3rd September 2003 Atomic Actions Fine grain atomic action We assume that all machine instructions are executed atomically: observers (including instructions in other threads)

More information

Forward declaration of enumerations

Forward declaration of enumerations Doc. no.: N2499=08-0009 Date: 2008-01-09 Project: Programming Language C++ Reply to: Alberto Ganesh Barbati Forward declaration of enumerations 1 Introduction In C++03 every declaration

More information

A practical and modular implementation of extended transaction models

A practical and modular implementation of extended transaction models Oregon Health & Science University OHSU Digital Commons CSETech January 1995 A practical and modular implementation of extended transaction models Roger Barga Calton Pu Follow this and additional works

More information

Modeling Cooperative Behavior Using Cooperation Contracts. Peter Lang. Abstract

Modeling Cooperative Behavior Using Cooperation Contracts. Peter Lang. Abstract Modeling Cooperative Behavior Using Cooperation Contracts Michael Schre Department of Data & Knowledge Engineering University of Linz Altenbergerstr. 69, A-4040 Linz, Austria schre@dke.uni-linz.ac.at Gerti

More information

INPUT SYSTEM MODEL ANALYSIS OUTPUT

INPUT SYSTEM MODEL ANALYSIS OUTPUT Detecting Null Pointer Violations in Java Programs Xiaoping Jia, Sushant Sawant Jiangyu Zhou, Sotiris Skevoulis Division of Software Engineering School of Computer Science, Telecommunication, and Information

More information

Design by Contract in Eiffel

Design by Contract in Eiffel Design by Contract in Eiffel 2002/04/15 ctchen@canthink.com.com.tw.tw Reference & Resource Bertrand Meyer, Object-Oriented Oriented Software Construction 2nd,, 1997, PH. Bertrand Meyer, Eiffel: The Language,,

More information

Code Generation & Parameter Passing

Code Generation & Parameter Passing Code Generation & Parameter Passing Lecture Outline 1. Allocating temporaries in the activation record Let s optimize our code generator a bit 2. A deeper look into calling sequences Caller/Callee responsibilities

More information

Database Systems Concepts *

Database Systems Concepts * OpenStax-CNX module: m28156 1 Database Systems Concepts * Nguyen Kim Anh This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 3.0 Abstract This module introduces

More information

AI Non-Preemptive Dispatching. A new dispatching policy is defined for the non-preemptive execution of Ada tasks.

AI Non-Preemptive Dispatching. A new dispatching policy is defined for the non-preemptive execution of Ada tasks. AI-00298 Non-Preemptive Dispatching!standard D.2.4 (00) 04-05-24 AI95-00298/05!reference AI95-00321!class amendment 02-06-01!status Amendment 200Y 03-07-02!status WG9 Approved 04-06-18!status ARG Approved

More information

Kevin Skadron. 18 April Abstract. higher rate of failure requires eective fault-tolerance. Asynchronous consistent checkpointing oers a

Kevin Skadron. 18 April Abstract. higher rate of failure requires eective fault-tolerance. Asynchronous consistent checkpointing oers a Asynchronous Checkpointing for PVM Requires Message-Logging Kevin Skadron 18 April 1994 Abstract Distributed computing using networked workstations oers cost-ecient parallel computing, but the higher rate

More information

An Overview of Production Rules. University of Florida. IBM Almaden Research Center. Abstract

An Overview of Production Rules. University of Florida. IBM Almaden Research Center. Abstract An Overview of Production Rules in Database Systems Eric N. Hanson Dept. of Computer and Information Sciences University of Florida Gainesville, FL 32611 USA hanson@cis.u.edu Jennifer Widom IBM Almaden

More information

Java: Just Another Version of Ada an overview of Ada 2005

Java: Just Another Version of Ada an overview of Ada 2005 Topics To Be Covered!Introduction Java: Just Another Version of Ada an overview of Ada 2005 Jorge L. Díaz-Herrera, Ph.D. Professor of Computer Science B. Thomas Golisano College of Computing and Information

More information

Type and Eect Systems via Abstract Interpretation. Jer^ome Vouillon. Pierre Jouvelot. CRI, Ecole des Mines de Paris. Abstract

Type and Eect Systems via Abstract Interpretation. Jer^ome Vouillon. Pierre Jouvelot. CRI, Ecole des Mines de Paris. Abstract Type and Eect Systems via Abstract Interpretation Jer^ome Vouillon Pierre Jouvelot CRI, Ecole des Mines de Paris fvouillon, jouvelotg@cri.ensmp.fr July 12, 1995 Abstract Abstract interpretation and type

More information

2 Martin C. Rinard and Monica S. Lam 1. INTRODUCTION Programmers have traditionally developed software for parallel machines using explicitly parallel

2 Martin C. Rinard and Monica S. Lam 1. INTRODUCTION Programmers have traditionally developed software for parallel machines using explicitly parallel The Design, Implementation, and Evaluation of Jade MARTIN C. RINARD Massachusetts Institute of Technology and MONICA S. LAM Stanford University Jade is a portable, implicitly parallel language designed

More information

Gen := 0. Create Initial Random Population. Termination Criterion Satisfied? Yes. Evaluate fitness of each individual in population.

Gen := 0. Create Initial Random Population. Termination Criterion Satisfied? Yes. Evaluate fitness of each individual in population. An Experimental Comparison of Genetic Programming and Inductive Logic Programming on Learning Recursive List Functions Lappoon R. Tang Mary Elaine Cali Raymond J. Mooney Department of Computer Sciences

More information

Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1

Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1 CME 305: Discrete Mathematics and Algorithms Instructor: Professor Aaron Sidford (sidford@stanford.edu) January 11, 2018 Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1 In this lecture

More information

Real-Time Scalability of Nested Spin Locks. Hiroaki Takada and Ken Sakamura. Faculty of Science, University of Tokyo

Real-Time Scalability of Nested Spin Locks. Hiroaki Takada and Ken Sakamura. Faculty of Science, University of Tokyo Real-Time Scalability of Nested Spin Locks Hiroaki Takada and Ken Sakamura Department of Information Science, Faculty of Science, University of Tokyo 7-3-1, Hongo, Bunkyo-ku, Tokyo 113, Japan Abstract

More information

Towards a Reference Framework. Gianpaolo Cugola and Carlo Ghezzi. [cugola, P.za Leonardo da Vinci 32.

Towards a Reference Framework. Gianpaolo Cugola and Carlo Ghezzi. [cugola, P.za Leonardo da Vinci 32. Inconsistencies in Software Development: Towards a Reference Framework Gianpaolo Cugola and Carlo Ghezzi [cugola, ghezzi]@elet.polimi.it Dipartimento di Elettronica e Informazione Politecnico di Milano

More information

Testing Techniques for Ada 95

Testing Techniques for Ada 95 SOFTWARE QUALITY ASSURANCE TOOLS & TECHNOLOGY PROFESSIONAL SERVICES ACADEMY P a g e 1 White Paper Testing Techniques for Ada 95 The Ada language is widely accepted as the language of choice for the implementation

More information

Tutorial 7. Y. Bernat. Object Oriented Programming 2, Spring Y. Bernat Tutorial 7

Tutorial 7. Y. Bernat. Object Oriented Programming 2, Spring Y. Bernat Tutorial 7 Tutorial 7 Y. Bernat Object Oriented Programming 2, Spring 2016 Exercise 4 STL Outline Part I Today's Topics 1 Exercise 4 2 STL Containers - continue Lambda functions Algorithms Exercise 4 STL Exercise

More information

Algorithmic "imperative" language

Algorithmic imperative language Algorithmic "imperative" language Undergraduate years Epita November 2014 The aim of this document is to introduce breiy the "imperative algorithmic" language used in the courses and tutorials during the

More information

Schema and Database Evolution in Object. Database Systems. Project Progress Report. Parag Mahalley. Jayesh Govindrajan. Swathi Subramanium

Schema and Database Evolution in Object. Database Systems. Project Progress Report. Parag Mahalley. Jayesh Govindrajan. Swathi Subramanium Schema and Database Evolution in Object Database Systems Project Progress Report By Parag Mahalley Jayesh Govindrajan Swathi Subramanium Anuja Gokhale Advisor: Elke A.Rundensteiner CS 542 - Database Management

More information

New attacks on the MacDES MAC Algorithm. 1st July Two new attacks are given on a CBC-MAC algorithm due to Knudsen and Preneel, [2],

New attacks on the MacDES MAC Algorithm. 1st July Two new attacks are given on a CBC-MAC algorithm due to Knudsen and Preneel, [2], New attacks on the MacDES MAC Algorithm Don Coppersmith IBM Research T. J. Watson Research Center Yorktown Heights, NY 10598, USA copper@watson.ibm.com Chris J. Mitchell Information Security Group Royal

More information

Two Problems - Two Solutions: One System - ECLiPSe. Mark Wallace and Andre Veron. April 1993

Two Problems - Two Solutions: One System - ECLiPSe. Mark Wallace and Andre Veron. April 1993 Two Problems - Two Solutions: One System - ECLiPSe Mark Wallace and Andre Veron April 1993 1 Introduction The constraint logic programming system ECL i PS e [4] is the successor to the CHIP system [1].

More information

A Framework for Real-Time Utilities for Ada 2005

A Framework for Real-Time Utilities for Ada 2005 A Framework for Real-Time Utilities for Ada 2005 A.J. Wellings and A. Burns Department of Computer Science University of York, UK {andy,burns}@cs.york.ac.uk Abstract Modernlarge real-time systems are becoming

More information

CPSC 320 Sample Solution, Playing with Graphs!

CPSC 320 Sample Solution, Playing with Graphs! CPSC 320 Sample Solution, Playing with Graphs! September 23, 2017 Today we practice reasoning about graphs by playing with two new terms. These terms/concepts are useful in themselves but not tremendously

More information

Tutorial 6. Y. Bernat. Object Oriented Programming 2, Spring Y. Bernat Tutorial 6

Tutorial 6. Y. Bernat. Object Oriented Programming 2, Spring Y. Bernat Tutorial 6 Tutorial 6 Y. Bernat Object Oriented Programming 2, Spring 2016 Outline Part I Today's Topics 1 Intro!= C++ Standard Library Standard Template Library 3 ingerdience/concepts Set of data structures that

More information

Written Presentation: JoCaml, a Language for Concurrent Distributed and Mobile Programming

Written Presentation: JoCaml, a Language for Concurrent Distributed and Mobile Programming Written Presentation: JoCaml, a Language for Concurrent Distributed and Mobile Programming Nicolas Bettenburg 1 Universitaet des Saarlandes, D-66041 Saarbruecken, nicbet@studcs.uni-sb.de Abstract. As traditional

More information

DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC

DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, 28-3 April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC 1131-3 Martin hman Stefan Johansson Karl-Erik rzen Department of Automatic

More information

0. Overview of this standard Design entities and configurations... 5

0. Overview of this standard Design entities and configurations... 5 Contents 0. Overview of this standard... 1 0.1 Intent and scope of this standard... 1 0.2 Structure and terminology of this standard... 1 0.2.1 Syntactic description... 2 0.2.2 Semantic description...

More information

Center for Supercomputing Research and Development. were identied as time-consuming: The process of creating

Center for Supercomputing Research and Development. were identied as time-consuming: The process of creating Practical Tools for Optimizing Parallel Programs Rudolf Eigenmann Patrick McClaughry Center for Supercomputing Research and Development University of Illinois at Urbana-Champaign Abstract This paper describes

More information

SCXML State Chart XML. Previously, in this course...

SCXML State Chart XML. Previously, in this course... SCXML State Chart XML Previously, in this course... Previously, in this course... Running Example all actions omitted wasn t it supposed to help? Previously, in this course... Running Example all actions

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

Contents 1 Introduction Denition of Terms Execution Model Dir

Contents 1 Introduction Denition of Terms Execution Model Dir JOMP Application Program Interface Version 0.1 (draft) Jan Obdrzalek Faculty of Informatics, Masaryk University, Botanicka 68a, 602 00 Brno, Czech Republic. email: xobdrzal@fi.muni.cz Mark Bull EPCC, University

More information

Lecture 33 April 4, Unied Modelling Language. ECE155: Engineering Design with Embedded Systems Winter Patrick Lam version 1

Lecture 33 April 4, Unied Modelling Language. ECE155: Engineering Design with Embedded Systems Winter Patrick Lam version 1 ECE155: Engineering Design with Embedded Systems Winter 2013 Lecture 33 April 4, 2013 Patrick Lam version 1 Unied Modelling Language The Unied Modelling Language (UML) is a language for specifying and

More information

2 Keywords Backtracking Algorithms, Constraint Satisfaction Problem, Distributed Articial Intelligence, Iterative Improvement Algorithm, Multiagent Sy

2 Keywords Backtracking Algorithms, Constraint Satisfaction Problem, Distributed Articial Intelligence, Iterative Improvement Algorithm, Multiagent Sy 1 The Distributed Constraint Satisfaction Problem: Formalization and Algorithms IEEE Trans. on Knowledge and DATA Engineering, vol.10, No.5 September 1998 Makoto Yokoo, Edmund H. Durfee, Toru Ishida, and

More information

An Introduction to OpenMP

An Introduction to OpenMP Dipartimento di Ingegneria Industriale e dell'informazione University of Pavia December 4, 2017 Recap Parallel machines are everywhere Many architectures, many programming model. Among them: multithreading.

More information

ACTA: The SAGA Continues. Abstract. ACTA is a comprehensive transaction framework that permits a transaction

ACTA: The SAGA Continues. Abstract. ACTA is a comprehensive transaction framework that permits a transaction ACTA: The SAGA Continues Panos K. Chrysanthis Dept. of Computer Science University of Pittsburgh Pittsburgh, PA 15260 Krithi Ramamritham Dept. of Computer Science University of Massachusetts Amherst, MA

More information

6.001 Notes: Section 15.1

6.001 Notes: Section 15.1 6.001 Notes: Section 15.1 Slide 15.1.1 Our goal over the next few lectures is to build an interpreter, which in a very basic sense is the ultimate in programming, since doing so will allow us to define

More information

Synchronization Expressions: Characterization Results and. Implementation. Kai Salomaa y Sheng Yu y. Abstract

Synchronization Expressions: Characterization Results and. Implementation. Kai Salomaa y Sheng Yu y. Abstract Synchronization Expressions: Characterization Results and Implementation Kai Salomaa y Sheng Yu y Abstract Synchronization expressions are dened as restricted regular expressions that specify synchronization

More information

Inheritance. Transitivity

Inheritance. Transitivity Inheritance Classes can be organized in a hierarchical structure based on the concept of inheritance Inheritance The property that instances of a sub-class can access both data and behavior associated

More information

14. Exception Handling

14. Exception Handling 14. Exception Handling 14.1 Intro to Exception Handling In a language without exception handling When an exception occurs, control goes to the operating system, where a message is displayed and the program

More information

CAD with use of Designers' Intention. Osaka University. Suita, Osaka , Japan. Abstract

CAD with use of Designers' Intention. Osaka University. Suita, Osaka , Japan. Abstract CAD with use of Designers' Intention Eiji Arai, Keiichi Shirase, and Hidefumi Wakamatsu Dept. of Manufacturing Science Graduate School of Engineering Osaka University Suita, Osaka 565-0871, Japan Abstract

More information

to automatically generate parallel code for many applications that periodically update shared data structures using commuting operations and/or manipu

to automatically generate parallel code for many applications that periodically update shared data structures using commuting operations and/or manipu Semantic Foundations of Commutativity Analysis Martin C. Rinard y and Pedro C. Diniz z Department of Computer Science University of California, Santa Barbara Santa Barbara, CA 93106 fmartin,pedrog@cs.ucsb.edu

More information

second_language research_teaching sla vivian_cook language_department idl

second_language research_teaching sla vivian_cook language_department idl Using Implicit Relevance Feedback in a Web Search Assistant Maria Fasli and Udo Kruschwitz Department of Computer Science, University of Essex, Wivenhoe Park, Colchester, CO4 3SQ, United Kingdom fmfasli

More information

Monitoring Script. Event Recognizer

Monitoring Script. Event Recognizer Steering of Real-Time Systems Based on Monitoring and Checking Oleg Sokolsky, Sampath Kannan, Moonjoo Kim, Insup Lee, and Mahesh Viswanathan Department of Computer and Information Science University of

More information

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING Year & Semester : I Year / II Semester Section : CSE - I Subject Code : CS7203 Subject Name : PRINCIPLES OF PROGRAMMING LANGUAGES Degree & Branch : M.E C.S.E.

More information

Heap-on-Top Priority Queues. March Abstract. We introduce the heap-on-top (hot) priority queue data structure that combines the

Heap-on-Top Priority Queues. March Abstract. We introduce the heap-on-top (hot) priority queue data structure that combines the Heap-on-Top Priority Queues Boris V. Cherkassky Central Economics and Mathematics Institute Krasikova St. 32 117418, Moscow, Russia cher@cemi.msk.su Andrew V. Goldberg NEC Research Institute 4 Independence

More information

RECONFIGURATION OF HIERARCHICAL TUPLE-SPACES: EXPERIMENTS WITH LINDA-POLYLITH. Computer Science Department and Institute. University of Maryland

RECONFIGURATION OF HIERARCHICAL TUPLE-SPACES: EXPERIMENTS WITH LINDA-POLYLITH. Computer Science Department and Institute. University of Maryland RECONFIGURATION OF HIERARCHICAL TUPLE-SPACES: EXPERIMENTS WITH LINDA-POLYLITH Gilberto Matos James Purtilo Computer Science Department and Institute for Advanced Computer Studies University of Maryland

More information

Steering. Stream. User Interface. Stream. Manager. Interaction Managers. Snapshot. Stream

Steering. Stream. User Interface. Stream. Manager. Interaction Managers. Snapshot. Stream Agent Roles in Snapshot Assembly Delbert Hart Dept. of Computer Science Washington University in St. Louis St. Louis, MO 63130 hart@cs.wustl.edu Eileen Kraemer Dept. of Computer Science University of Georgia

More information

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction Lecture 13: Object orientation Object oriented programming Introduction, types of OO languages Key concepts: Encapsulation, Inheritance, Dynamic binding & polymorphism Other design issues Smalltalk OO

More information

Distributed Systems Group, Department of Computer Science, Abstract. This document gives the specication of the VOID Shell described in the

Distributed Systems Group, Department of Computer Science, Abstract. This document gives the specication of the VOID Shell described in the VOID Shell Specication Vinny Cahill, Andrew Condon, Dermot Kelly, Stephen McGerty, Karl O'Connell, Gradimir Starovic, Brendan Tangney Distributed Systems Group, Department of Computer Science, Trinity

More information

Jukka Julku Multicore programming: Low-level libraries. Outline. Processes and threads TBB MPI UPC. Examples

Jukka Julku Multicore programming: Low-level libraries. Outline. Processes and threads TBB MPI UPC. Examples Multicore Jukka Julku 19.2.2009 1 2 3 4 5 6 Disclaimer There are several low-level, languages and directive based approaches But no silver bullets This presentation only covers some examples of them is

More information

Object oriented aspects of Ada95

Object oriented aspects of Ada95 Object oriented aspects of Ada Mikael Åsberg mag000@student.mdh.se Amir Shariat ast000@student.mdh.se Mälardalen University Department of Computer Science and Electronics June, 00 Abstract Have you ever

More information

A Data Modeling Process. Determining System Requirements. Planning the Project. Specifying Relationships. Specifying Entities

A Data Modeling Process. Determining System Requirements. Planning the Project. Specifying Relationships. Specifying Entities Chapter 3 Entity-Relationship Data Modeling: Process and Examples Fundamentals, Design, and Implementation, 9/e A Data Modeling Process Steps in the data modeling process Plan project Determine requirements

More information

reasonable to store in a software implementation, it is likely to be a signicant burden in a low-cost hardware implementation. We describe in this pap

reasonable to store in a software implementation, it is likely to be a signicant burden in a low-cost hardware implementation. We describe in this pap Storage-Ecient Finite Field Basis Conversion Burton S. Kaliski Jr. 1 and Yiqun Lisa Yin 2 RSA Laboratories 1 20 Crosby Drive, Bedford, MA 01730. burt@rsa.com 2 2955 Campus Drive, San Mateo, CA 94402. yiqun@rsa.com

More information

1.1 Related work Our taxonomy aims at providing a terminology of replay debugger characteristics. The need for a debugging terminology has been formal

1.1 Related work Our taxonomy aims at providing a terminology of replay debugger characteristics. The need for a debugging terminology has been formal A Taxonomy of Distributed Debuggers Based on Execution Replay 1 Carl Dionne Marc Feeley Jocelyn Desbiens Alex Informatique Universite de Montreal INRS-Telecommunications Lachine (Quebec) Montreal (Quebec)

More information

Caller C. Acceptor A. accept Call(in, out) do accept - body end. A.Call(in, out) out param. - complete rendezvous. Acceptor A.

Caller C. Acceptor A. accept Call(in, out) do accept - body end. A.Call(in, out) out param. - complete rendezvous. Acceptor A. The Rendezvous is Dead { Long Live the Protected Object Dragan Macos and Frank Mueller Humboldt-Universitat zu Berlin, Institut fur Informatik 10099 Berlin (Germany) e-mail: fmacos,muellerg@informatik.hu-berlin.de

More information

Reconciling Dierent Semantics for Concept Denition (Extended Abstract) Giuseppe De Giacomo Dipartimento di Informatica e Sistemistica Universita di Ro

Reconciling Dierent Semantics for Concept Denition (Extended Abstract) Giuseppe De Giacomo Dipartimento di Informatica e Sistemistica Universita di Ro Reconciling Dierent Semantics for Concept Denition (Extended Abstract) Giuseppe De Giacomo Dipartimento di Informatica e Sistemistica Universita di Roma \La Sapienza" Via Salaria 113, 00198 Roma, Italia

More information

The 10 Minute Guide to Object Oriented Programming

The 10 Minute Guide to Object Oriented Programming The 10 Minute Guide to Object Oriented Programming Why read this? Because the main concepts of object oriented programming (or OOP), often crop up in interviews, and all programmers should be able to rattle

More information

/99/$ IEEE

/99/$ IEEE A Multiparadigm Language Approach to Teaching Principles of Programming Languages D. Suzanne Westbrook Computer Science and Electrical Engineering Northern Arizona University Flagstaff, AZ 86011 Abstract

More information

Ada and Real-Time. Prof. Lars Asplund. Mälardalen University, Computer Science

Ada and Real-Time. Prof. Lars Asplund. Mälardalen University, Computer Science 16.070 Ada and Real-Time Prof. Lars Asplund lars.asplund@mdh.se 1 Mälardalen University, Computer Science History 2 Software Engineering first conference -69 Strawman -> Steelman Ada (ANSI standard 1983);

More information

Building custom components IAT351

Building custom components IAT351 Building custom components IAT351 Week 1 Lecture 1 9.05.2012 Lyn Bartram lyn@sfu.ca Today Review assignment issues New submission method Object oriented design How to extend Java and how to scope Final

More information

Agent-Oriented Software Engineering

Agent-Oriented Software Engineering Agent-Oriented Software Engineering Lin Zuoquan Information Science Department Peking University lz@is.pku.edu.cn http://www.is.pku.edu.cn/~lz/teaching/stm/saswws.html Outline Introduction AOSE Agent-oriented

More information

such internal data dependencies can be formally specied. A possible approach to specify

such internal data dependencies can be formally specied. A possible approach to specify Chapter 6 Specication and generation of valid data unit instantiations In this chapter, we discuss the problem of generating valid data unit instantiations. As valid data unit instantiations must adhere

More information