159 citations found. Retrieving documents...
Coplien, J.: Advanced C++: Programming Styles and Idioms. Addison-Wesley (1992)

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents  Next 50

A Formal Semantics for the C Programming Language - Nikolaos Papaspyrou Doctoral (1998)   (1 citation)  (Correct)

....In Section 15.3.5 the full example is given and discussed. Finally, Section 15.3.6 summarizes and evaluates the results of this approach. 15.3.1 Untyped version The first implementation in C to be considered is for an untyped version of the meta language. ENVELOPES The envelope letter idiom [Copl92] is used, in order to achieve method polymorphism and at the same time alleviate the memory management problems that result from the use of object pointers. An envelope class is used for the representation of Scott domain elements, whereas several letter classes are used for the representation of ....

J. O. Coplien, Advanced C++ Programming Styles and Idioms, Addison-Wesley, 1992.


DAKOTA, A Multilevel Parallel Object-Oriented Framework for.. - Eldred, al. (2002)   (Correct)

....space. Parallel computers within the Department of Energy national laboratories have exceeded ten trillion floating point operations per second (10 TeraFLOPS) and are expected to achieve 100 TeraFLOPS by 2004. This performance is achieved through the use of massively parallel (MP) processing (O[10 ] processors) In order to harness the power of these machines for performing design, parallel optimization approaches are needed which are scalable on thousands of processors. To understand the possibilities, it is instructive to first categorize the opportunities for exploiting parallelism into ....

Coplien, J. O., Advanced C++ Programming Styles and Idioms, Addison-Wesley, Reading, MA, 1992.


Optimizing Object-Oriented Languages through Architectural.. - Tourwe, De Meuter (1999)   (4 citations)  (Correct)

....that get polymorphically invoked byeach other. Unfortunately, recent insights in the programming style fostered by the object oriented paradigm precisely encourage the use of these features. Proof thereof is the tremendous success of programming conventions such as design patterns[7 and idioms [1, 3]. Of course, the reason for the success of these programming techniques is that there currently exists a trend to make a software system comply to many important non functional requirements, such as reusability, extendability and adaptability, enabling the developers to reuse major parts of it. ....

James O. Coplien. Advanced C++ programming styles and idioms. Addison-Wesley Publishing Company, 1992.


A Distributed Spatial Architecture for Bush Fire Simulation - Eklund (1999)   (Correct)

....at run time by the Java virtual machine. The software engineering principles of Java derive from object oriented design with the emphasis being on the creation of a series of object specifications termed classes [Meyer 1988, Meyer 1991, Meyer 1992, Musser and Stepanov 1994, Plauger et al. 1996, Coplien 1992] 2.1 System Constructs FireMaster has three levels illustrated in Figure 1: 1. Data the Data Level controls all static and dynamic information required and generated by the system. Initial data is stored to be used in the Operational Level and displayed in the user level. New information ....

J.O. Coplien. Advanced C++ Programming Styles and Idioms. Addison-Wesley, Reading, MA, 1992.


External control - An object-structural pattern for mapping.. - Berti (1998)   (Correct)

....base; however this is preferable if the class is to be used in a polymorphic context. class controllable public: virtual void registerAt(ControlDevice ) 0; virtual controllable( 0; Finally, ControlDevice implements the controller concept using a letter envelope pattern (see e.g. [2]) class ControlDevice ctrldevimpl impl; public: ControlDevice(ctrldevimpl imp = 0) impl(imp) void add(string const nm, Mutator value) ControlDevice SubDevice(string const ) void update( void registerAt(ControlDevice ) Note that the class ControlDevice itself has a ....

J. O. Coplien. Advanced C++ Programming Styles and Idioms. Addison-Wesley, 1992.


Three Musketeers to the Rescue - Meta-modelling, Logic.. - Guéhéneuc (2002)   (Correct)

....describe a succinct scenario highlighting the use of our tools. 2 Pattern Description Patterns have been widely accepted by software practitioners. They cover all phases of the software development process: Requirements [20] Analysis [12] Architecture [6] Design [15] Implementation (idioms) [7]; Defects [5] Refactoring [13] Testing [14] Requirements, analysis, and architectural patterns are high level, informal, and general purpose patterns; Whereas design, defect, and implementation patterns are tightly coupled with the software development process and implementation. Thus, it is ....

J. O. Coplien. Advanced C++ Programming Styles and Idioms. Addison-Wesley, 1991.


Object Relations and Syntactic Mechanisms in Design Patterns - Cohen   (Correct)

....within the object oriented paradigm provide different features, and these dictate what can and cannot be implemented easily in the language. On the one hand, a design pattern is not very worth if it can be implemented as the instantiation of one language feature. This is sometimes called an idiom [7]. On the other hand, a design pattern may require a complex relationship between several classes and objects. Gil and Lorenz give a taxonomy of design patterns based on this criteria [10] Design patterns have several drawbacks when implemented in languages like SMALLTALK [11] C [14] and JAVA ....

J. Coplien. Advanced C++ Programmings Styles and Idioms. Addison-Wesley, 1992.


eXtreme Programming In A Hostile Environment - Wright (2002)   (1 citation)  (Correct)

....the testing framework from accessing any methods or member data not exposed by the COM interface. The first step in enabling testing is thus to refactor this code to separate the functionality from the GUI or COM framework. Essentially this involves implementing the envelope letter idiom [4] or bridge pattern [8] creating an implementation class refactoring the code to move the functionality into that class. An example of such a change is shown below. In this sample CFileVersion is a thin wrapper implementing the COM interface and CFileVersionImp is the worker class implementing the ....

Coplien, James O. Advanced C++ Programming Styles and Idioms, 133-134. (Addison-Wesley 1991)


Application of Patterns to Real-Time Object-Oriented Software.. - McKegney (2000)   (1 citation)  (Correct)

....1990s, a variety of patterns related research was being conducted in parallel: Erich Gamma was working on design patterns (attempting to capture recurring design structures in the ET [WGM88] application framework) as part of his Ph.D. research; James Coplien was developing a set of C idioms [Cop92] essentially low level, or language specific, patterns; the Hillside group [Hil00] was formed (including Cunningham, Beck, Desmond DeSouza, Norm Kerth, Doug Lea, Wolfgang Pree, and others) and coordinated the first annual Pattern Languages of Programming (PLoP) conference in 1994; finally, ....

....the Program and Rework stages; Phase process patterns, the interactions between the stage process patterns for a single project phase, such as the Initiate and Delivery phases. 2.2. 4 Language Specific Patterns (Idioms) Language specific patterns, also known as Idioms, have been created for C [Cop92] and Smalltalk [Bec96] 2.2.5 Anti Patterns Anti patterns document solutions to commonly used, yet misguided, attempts at resolving software problems. Thus, they focus on refactoring existing software. Brown et al. in their text AntiPatterns: Refactoring Software, Architectures, and Projects ....

Coplien, J.O. Advanced C++ Programming Styles and Idioms. Addison-Wesley, Reading, Mass. 1992.


Advanced Programming Language Features for Executable Design.. - Sullivan (2002)   (6 citations)  (Correct)

....another object to control access to it. The GOF list the following kinds of Proxy uses. TO DO: replace quoted references with real ones: 1. A remote proxy provides a local representative for an object in a di#erent address space. NEXTSTEP [Add94] uses the class NXProxy for this purpose. Coplien [Cop91] calls this kind of proxy an Ambassador. 23 2. A virtual proxy creates expensive objects on demand. The ImageProxy described in the Motivation is an example of such a proxy. 3. A protection proxy controls access to the original object. Protection proxies are useful when objects should have ....

J. Coplien. Advanced C++: Programming Styles and Idioms. Addison-Wesley, 1991.


Supporting tensor symmetries in EinSum - Åhlander (2001)   (Correct)

....of the Frobenius norm (7) may be formulated using EinSum as follows. R frobenius(const EinTensor R A) R ret = 0, value; EinIndexSpace AI = A. getIndexSpace( for(AI.begin( AI.end( AI.next( 7 An alternative solution would be to use a variation of the reference counting idiom [5]. 14 EinMultiInt mi = AI; value = A[mi] ret = AI.orbitSize(mi) value value; return sqrt(ret) Here, A is a tensor whose elements is of type R, for instance a double precision floating point number, or an array of integers, etc. The loop over the appropriate index space AI is only ....

J. O. Coplien. Advanced C++ programming styles and idioms. Addison-Wesley, Reading, Massachusetts, 1992.


An Advanced C++ Library for Symbolic Computing - Department (1999)   (Correct)

....type checking with a scheme flexible enough to support directly the mix in style of programming used in some Lisp dialects. While the support of the mix in style of programming is not supported directly in C , part of which is achievable by using specialized programming styles and idioms [3]. While these programming styles and idioms are demonstrated to be powerful, they are ad hoc at best and usually error prone. Many people find themselves lack of necessary experiences to master these idioms, which severely limits their use. This paper instead describes an advanced library to ....

....implemented efficiently by use of templates. STL is a strictly static library, but lacks most of the symbolic features in LIBSETL. While no popular libraries provide powerful symbolic features as LIBSETL does, many of the techniques used for implementing LIBSETL are well known. Coplien s book[3] is an excellent reference for these techniques, although it was more geared toward individual techniques for emulating Smalltalk in C programming. LIBSETL is instead an integrated library that offers comprehensive features for symbolic computing. 7 Conclusions This paper describes an advanced ....

J. O. Coplien, Advanced C++ Programming Styles and Idioms, Addison-Wesley, Reading, M.A., 1992.


Replicated Object Management using Group Technology - Rodrigues, Veríssimo (1993)   (4 citations)  (Correct)

....methods separately and, afterwards, we will describe how they coexist in the ROMANCE environment. 2.1 Remote access Access to remote objects is performed through remote invocations. This method is supported by two auxiliary blocks: a Group Remote Invocation Proxy (GRIP) and a matching Ambassador [7]. The GRIP marshals the local client invocation in a message multicasted to the remote ambassador(s) and waits for results, if any (GRIP functionality is similar to the client stub of point to point RPC) The ambassador is the GRIP counterpart on the server side, and is responsible for ....

....an object of any specialization of the desired signature. All interfaces are identified, and can be accessed in ROMANCE, by the associated interface name, as defined in its IDL description. ffl An Envelope class hides from the object client the actual implementation being used. The envelope [7] class is the visible C interface of the object and is in charge of forwarding the requests to the selected implementation. Its interface must match the object signature, thus it is derived from the Signature class. When an envelope is created, it requests to the interface class to build an ....

James O. Coplien. Advanced C++ Programming Styles and Idioms. Addison-Wesley Publishing Co., 1992.


Re-engineering Legacy Software through Language Conversion - Harsu (2000)   (Correct)

....a restructured solution that better suits the current requirements [5] This definition covers the guidelines of detecting a pattern and replacing it with a better solution. On the other hand, re engineering patterns can be compared to the other patterns. Design patterns [22, 43] and code patterns [24] are ideal solutions, guidelines to follow. Instead, re engineering patterns are code fragments found in programs that have been run and maintained for many years. Thus, they are not patterns to be followed, but patterns to be untangled [40] According to this comparison approach, re engineering ....

Coplien, J. O., Advanced C++ Programming Styles and Idioms, AddisonWesley, 1992.


A Framework for Practical, Automated Black-Box Testing.. - Stephen Edwards Virginia   (Correct)

....the 2QHB:D B LVW specification and instantiated to contain integer elements. The architecture for the interpreter test driver uses the envelope and letter paradigm for handling internal values, and uses an exemplar based dispatching strategy for handling operations on user defined objects [3]. As a result, the core interpreter engine does not directly refer to the component under test or any of its methods. This means that support for any unit under test can be added without requiring any changes to or recompilation of the interpreter engine itself. Instead, the driver generator ....

Coplien JO. Advanced C++ Programming Styles and Idioms. Addison-Wesley: Reading, MA, 1992.


Delegation for Java: API or Language Extension? - Kniesel (1997)   (Correct)

....been centered around the question whether particular features of one paradigm can or cannot be simulated in the other one. Especially regarding the simulation of dynamic delegation in traditional class based systems, the last ten years have seen a proliferation of various language specific idioms ([2]) and general design patterns [7] 12] 10] Although these proposals shed light on some interesting technical aspects, they often neglected the cost of simulations in terms of program clarity, good design, reusability, error safety and time spent by programmers on simulations rather then on ....

J.O. Coplien: Advanced C++: Programming Styles and Idioms. Addison-Wesley, 1992.


A Meta-Model for Composition Techniques in Object-Oriented.. - Department   (Correct)

....composers which are normally hidden in the functionality of the compiler. Our meta model will be the basis for our research to adaptable and composable models and methods. Using this generic meta model we will express the OO models adopted by different OO languages like Smalltalk [12] C [9][25] SELF [8] and SINA [2] 17] and exploit the common powerful properties which support the composability and as such the adaptability of the software. We have to note that this is a preliminary work and as such the paper is really written as a position paper. The main goal of this position ....

. J. O. Coplien. Advanced C++ Programming Styles and Idioms. Addison-Wesley, Reading, MA, 1992. 7


Object-Oriented Representation of Time-Varying Data Sequences in.. - Klupsch (1998)   (1 citation)  (Correct)

....can be read or measured by different modules. This results 1 Actually, image sequences and all derived data streams can be seen as discrete transformations of the digitized video signal. in a graph or network of data objects which are connected by functions or functional objects, called functors [1] (cf. Fig. 3) An agent responsible for providing various data sequences can switch them on or off like signals and exchange the functors or transformation units for converting one signal into another. In contrast to a signal, the sequence object can store an arbitary number of old values, and it ....

Coplien J. O., Advanced C++ programming styles and idioms, Addison-Wesley Publishing Company, 1994.


Cjj: a subset of C++ compliant with Java - Tonella, Potrich   (Correct)

....of coding conventions is expected to improve the organization and readability of the code, which become fundamental quality factors during the successive iterations of development and maintenance. The C language [10] is a very complex and multifaceted programming language. Several books [3 5,8] deal with directions and guidelines for the development of high quality, clean C code. In C it is possible to declare global variables. Consequently any function or method can produce side effects on the overall system by modifying the global state. The ripple effects of changing the value of ....

J. O. Coplien. Advanced C++ Programming Styles and Idioms. AddisonWesley, 1992.


Java + Patterns = Object Engineering? - Parsons   (Correct)

....number of objects is dependent on some commonly referenced object. The Factory Method pattern A Factory is a method that allows an object to be created without knowing its specific class. It is also known as a virtual constructor , a code idiom that comes in many forms (e.g. those described in Coplien 1992). Figure 2 shows the Factory Method pattern. Subject Observer Attach(Observer) Detach(Observer) Notify( Update( for all o in observers o .Update( ConcreteSubject GetState( SetState( ConcreteObserver Update( observerState = subject.GetState( observers observerState ....

Coplien, J. Advanced C++ Programming Styles and Idioms. Reading, Mass.: Addison-Wesley 1992.


Design Patterns for Simulations in Erlang/OTP - Ekström (2000)   (Correct)

....Idioms are on a much lower level than design patterns and are programming language specific. An idiom describes how to implement particular aspects of components or relationships between them. The most famous publication of idioms is James Copliens book, Advanced C Programming Styles and Idioms [7]. One example of an idiom is the Counted Pointer idiom which makes memory management of dynamically allocated shared objects in C easier. It introduces a reference counter to a body class that is updated by handle objects. Clients access body class objects only through handles via the overloaded ....

James Coplien. Advanced C++ Programming Styles and Idioms. AddisonWesley, 1991.


Building Software with Patterns - Buschmann (1999)   (Correct)

.... rolling mill process automation framework [BGHS98] Some patterns also build on Christopher Alexander s work [Ale79] ANAK87] Altogether they complement and complete the specific implementation guidelines that accompany well described patterns for software architecture, for example the ones in [Cope92] [GHJV95] POSA1] POSA2] PLoP94] PLoP95] PLoP96] The patterns were also applied in the development of TAO, the ACE ORB, a configurable, CORBA compliant, high performance, real time Object Request 5 Frank Buschmann 1998, 1999, all rights reserved, Siemens AG 1998, 1999, all rights reserved ....

J.O. Coplien: Advanced C++ -- Programming Styles and Idioms, AddisonWesley, Reading, MA, 1992


Type-Safe Delegation for Run-Time Component Adaptation - Kniesel (1999)   (38 citations)  (Correct)

....problems of run time code modification. Why simulations of delegation are not enough. In spite of its advantages, no widely used class based object oriented language has incorporated delegation yet. Instead, various simulations of delegation have been proposed, either as language specific idioms ([Cop92]) or general design patterns ( GHJV95] The possible simulation techniques and their drawbacks are summarised and evaluated in [HOT97] and [Kni98a] The main disadvantages of the discussed simulations are: the need to anticipate the use of a piece of software as part of a larger composite ....

James O. Coplien. Advanced C++: Programming Styles and Idioms. AddisonWesley, 1992.


DAKOTA, A Multilevel Parallel Object-Oriented Framework for.. - Eldred, Bohnhoff   (Correct)

....the envelope for derived letter classes in a letter envelope idiom design. The letter envelope idiom is an advanced C construct which provides mechanisms for enhanced polymorphism (the envelope is a generic handle for any derived class) and for smart memory management through reference counting [Coplien, J.O. 1992]. User s Instructions Simulation Interfacing Dakota Interface Abstraction 78 Figure 18 The DakotaInterface class hierarchy The ApplicationInterface and ApproximationInterface classes provide base classes for those interfaces dealing with simulation codes and response approximations, ....

Coplien, J.O., 1992 Advanced C++ Programming Styles and Idioms, Addison-Wesley, Reading, MA.


Class Inheritance: The Mechanism and Its Uses - Ewing (1994)   (Correct)

.... available literature revealing strong feelings on either side of the debate for MI (McGregor and Sykes 1992; Meyer 1992c; Srinavasan and Jayaraman 1994) against MI (Sakkinen 1989; Meyers 1992; Hunt 1992; Menzies, Edwards, and Ng 1992; Firesmith 1993; Lorenz 1993) noncommitted, but interesting (Coplien 1992; Sikora 1994) There does, however, appear to be general agreement that many situations can be resolved using single inheritance. In support of MI, it must be said that single inheritance can lead to unnaturally asymmetric relationships in conceptual models (Sakkinen 1989) and its structure ....

.... no fewer than eighteen terms, each relating to a specific realisation of the inheritance mechanism, were encountered in the literature: ffl strict and non strict inheritance (Pun and Winder 1989) ffl incidental and essential inheritance (Sakkinen 1989) ffl public and private inheritance (Coplien 1992); ffl partial inheritance (Nierstrasz 1989) ffl selective inheritance (Al Haddad, George, and Samadzadeh 1991) ffl abstract inheritance (Royer 1992) 18 ffl specification inheritance (Snyder 1991) ffl is kind of inheritance (Wirfs Brock and Johnson 1991) ffl derivation (Cusack 1991) ....

[Article contains additional citation context not shown here]

Coplien, J. O. (1992). Advanced C++ Programming Styles and Idioms. AT&T.


A Draft Guide to MatClass A matrix class for C++ Version 1.0d - Birchenhall   (Correct)

....All major functions in MatClass exploit this facility and thus it should be possible to identify the sequence of calls that leads to the error. Note the numbers in Broad OutLine 34 matObject error no. 20 Error in cond Non positive definite matrix 5 C cholDec 6 Stack of Function Calls # cond[ 2] # myfunc[ 1] Object Name Type Field1 Field2 Field3 Field4 Field5 6 decM matrix 2 2 7 5 C cholDec 6 1 A matrix 2 2 2 MatClass Fatal Error. Figure 8: Error Output square brackets following the stack of function names simply ....

....e.g. for loops and if statements and for the general structure of functions and methods in C . Dewhurst and Stark gives an excellent introduction to the potential offered by C s object orientation. To go further still see the excellent Advanced C programming Styles and Idioms by Coplien [2]. The two bibles on C are authored by the originator of the langauge, Bjarne Stroustrup. The C programming Language, 15] was the effective definition of the first version of the language. With coauthor Margaret Ellis The Annotated C Reference Manual [6] is a draft of ANSI standard ....

J. O. Coplien. Advanced C++ Programming Styles and Idioms, Addison-Wesley, Reading Mas., 1992.


MatClass : A matrix class for C++ - Birchenhall (1993)   (2 citations)  (Correct)

....e.g. for loops and if statements and for the general structure of functions and methods in C . Dewhurst and Stark gives an excellent introduction to the potential offered by C s object orientation. To go further still see the excellent Advanced C programming Styles and Idioms by Coplien [2]. The two bibles on C are authored by the originator of the langauge, Bjarne Stroustrup. The C programming Language, 14] was the effective definition of the first version of the language. With coauthor Margaret Ellis The Annotated C Reference Manual [6] is a draft of ANSI standard ....

J. O. Coplien. Advanced C++ Programming Styles and Idioms, Addison-Wesley, Reading Mass., 1992.


Object-Oriented Analysis and Design of the Message.. - Skjellum, Wooley.. (1998)   (Correct)

....not directly visible to the user. Opaque objects are accessed via handles, which exist in user space [14] Therefore, in the object oriented design, there is a need to separate objects into two categories: user objects and system objects. 2. Because of the principle of design for inheritance [8], which is to promote flexibility, the draft C binding proposes to declare user level methods virtual. This practice would allow the user to refine the methods to suit a particular application better. But this also adds problems in the design and implementation. For example, MPI collective ....

....above should call MPIX Comm intra: Free( The user must decide how to manage this freeing operation themselves. This follows the logic that C operators, extended to C objects, should not have unexpected side effects. In practice, the above property can be avoided by using reference counting [8], but the real issue is the potential for deadlock. If operator= required loosely synchronous invocation over the entire group involved in the communication, subtle bugs involving synchronization could arise from seemingly local operations. Figure 7 shows that three subclasses are derived from ....

[Article contains additional citation context not shown here]

J.O. Coplien. Advanced C++: Programming Styles and Idioms. Addison--Wesley, 1992.


Object-Oriented Design of Preconditioned Iterative methods.. - Bruaset, Langtangen (1996)   (10 citations)  (Correct)

....current matrix object. The special member function RectMat, which is called the constructor, is used to declare a variable (instance) of the 1 The term iabstractj is perhaps misleading, since an ADT may well be a usable, concrete data type in a program, in contrast to abstract base classes in C [7]. 3 class RectMat f protected: double entries; int nrows, ncols; public: RectMat (int nrows, int ncols) RectMat ( void size (int nrows, int ncols) virtual void prod (const Vector x, Vector y) virtual void prod (const RectMat x, RectMat y) double operator( int i, int j) ....

....common functionality of all matrices, eOEciency considerations prevent the practical use of a virtual function for this purpose. Looking at the SymmMat class, we see that the member function operator( is redened in this subclass and that it is not virtual. This violates a fundamental rule in OOP [7], but is necessary to achieve inlining which is crucial to the computational eOEciency when indexing large matrices. In large software packages there are usually several class hierarchies with many levels and numerous classes at each level. To fully exploit the potential of inheritance and ....

[Article contains additional citation context not shown here]

J. O. Coplien, Advanced C++ Programming Styles and Idioms, AddisonWesley, 1992.


Search By Humming - Blackburn, Davis (1997)   (Correct)

....user interface was developed using a text editor and Tcl 7.5 and Tk 4.1, beta 2 release, for Microsoft Windows. The Tcl Tk code was periodically executed on a Linux system to ensure it was portable. 6. 2 Orthodox canonical class form The Orthodox Canonical Class Form (OCCF) termed by Coplien [1], is an idiom which allows variables created from classes to be declared, assigned and passed as arguments just like any C variables. It ensures robust class design, particularly for classes with pointer members used to maintain dynamically allocated memory. The OCCF was adopted to overcome memory ....

J.O. Coplien, Advanced C++ Programming Styles and Idioms. AddisonWesley, 1992.


A metalevel architecture for dynamism and reflection in C++ - Jautzy, Lebastard (1997)   (Correct)

....is to perform persistence and creation of classes at run time. In C , classes are only static denitions. Consequently, classes cannot be added at run time and cannot be saved. 3.2 Dynamism in C In order to add these functionalities, we have used programming idioms introduced by J.O. Coplien [Cop94] 4 Envelope Letter idiom This idiom is based on a technic using two classes for representing only one class : ffl an extern one, named envelope class, which is the visible part. This is the class manipulated by the user. That is only an interface class which contains no functionality. ffl an ....

J.O. Coplien, editor. Advanced C++ : Programming Style and Idioms. Addison-Wesley Publishing Company, New York (N.Y., U.S.A.), 1994. 520 pages.


Design Patterns: An Essential Component of CS Curricula - Software Engineering..   (Correct)

....in [22] for C and in [6] for Smalltalk, but these idioms are addressed at experienced programmers. A catalog of idioms and patterns for inexperienced programmers is being developed as part of our project. Idioms have a long history [33, 27] and are recognized as part of the patterns community [14, 9]. Although the difference between an idiom and a pattern is not always clear, the language specificity of idioms differentiates them from design patterns in most cases. Both kinds of patterns are essential for those new to object technology since object oriented programming and design will be ....

.... public: Creature( Species getSpecies( void takeTurn( private: CreatureImpl myImpl; Since we must provide header files, but we want to leave implementation design decisions to the students, we can use this pointer based implementation, called the handle body idiom in [14]. However, this method has severe drawbacks. Students must write a class named Creature, and it is difficult to experiment with alternate definitions of the class. Inheritance hierarchies of handle body classes are problematic so some objectoriented techniques cannot be used when this idiom is ....

James O. Coplien. Advanced C++ Programming Styles and Idioms. Addison Wesley, 1992.


Parameterized Inheritance vs. Multiple Inheritance - Amit Patel Vitaly   (Correct)

....class hierarchies. For example, an edit dialog window may inherit from either XWindow or CursesWindow (system specific implementations of an abstract Window class) and also from Editor (implementation of basic editing functionality) A more detailed example of this nature can be found in [6]. 2.1.2 Multiple interface inheritance Objects of some classes may need multiple interfaces if they are to be used in different contexts. For example, an Editor could have a Stream interface so that the contents of the edit buffer can be accessed as a stream of characters. This idea is ....

....the semantics of multiple inheritance. The programmer can refer to any inherited method using base class name as a prefix, thus avoiding ambiguity [8] C takes the view that name conflicts between inherited methods are program design flaws that have to be addressed explicitly by the programmer [6]. Therefore, C does not provide a rule for resolving ambiguities. Attempts to call an ambiguous method are signaled as errors at compile time. The standard solution is to define a new method with the same name in the derived class, and in the body of this method call the conflicting inherited ....

Coplien, J. O. (1992). Advanced C++ Programming Styles and Idioms. Addison-Wesley.


A Pattern Language for Reverse Engineering - Demeyer, Ducasse, Tichelaar (1999)   (1 citation)  (Correct)

....through the source code. Take notes sparingly to maximize the contact with the code. After this reading time, take about the same time to produce a report about your findings, including list of (i) the important entities (i.e. classes, packages, ii) the coding idioms applied (i.e. C [Cop92] Mey98] Mey96] Smalltalk [Bec97] and (iii) the suspicious coding styles discovered (i.e. code smells [Fow99] Keep this report short, and name the entities like they are mentioned in the source code. Hints. The fact that you are limited in time should force you to think how you can ....

J. O. Coplien. Advanced C++: Programming Styles and Idioms. Addison-Wesley, 1992.


Symmetry and Symmetry Breaking in Software Patterns - Coplien, Zhao (2000)   (1 citation)  Self-citation (Coplien)   (Correct)

....longstanding linguistic solution is multiple dispatch. The pattern literature calls this the Visitor pattern [15] Visitor s semantics attempt to preserve much of the articulation of method symmetry developed earlier in this paper. The solution was documented as an idiom in the early literature [6]. Languages such as CLOS that support multiple dispatch start with a fundamentally different model of symmetry; the metaphor suggests that it is formally a different algebra or geometry, in which multiple dispatch does not break symmetry. 7.2.2 Promote and Add Independent of whether multiple ....

Coplien, J. Advanced C++ Programming Styles and Idioms. Reading, MA: Addison-Wesley, 1992.


Industrial Experience with Design Patterns - Beck, Coplien, Crocker.. (1996)   (31 citations)  Self-citation (Coplien)   (Correct)

.... Software design patterns had their origin in the late 1980 s when Ward Cunningham and Kent Beck developed a set of patterns for developing elegant user interfaces in Smalltalk [5] At around the same time, Jim Coplien was developing a catalog of language specific C patterns called idioms [9]. Meanwhile, Erich Gamma recognized the value of explicitly recording recurring design structures while working on his doctoral dissertation on object oriented software development [16] These people and others met and intensified their discussions on patterns at a series of OOPSLA workshops ....

....Besides, there are many more proven, mature patterns in the architectures of legacy systems than there are in the young, rapidly changing objectoriented systems. Early work in AT T to gather proven C programming idioms has culminated in a collection of widely used programming techniques [9]. One can think of these as proto patterns; they were in fact one of the foundations from which contemporary patterns practice grew. The seminal Design Patterns book [18] built on these and other patterns to provide a general, language independent collection of patterns by which object oriented ....

James O. Coplien. Advanced C++: Programming Styles and Idioms. Addison-Wesley, 1992.


Ontological Representations of Software Patterns - Ursu   (Correct)

No context found.

Coplien, J.: Advanced C++: Programming Styles and Idioms. Addison-Wesley (1992)


Object Shadowing - a Key Concept for a - Modern Programming Language   (Correct)

No context found.

James Coplien. Advanced C++ programming styles and idioms, Addison-Wesley 1992.


Optimizing Object-Oriented Languages through Architectural.. - Tourwe, De Meuter (1999)   (4 citations)  (Correct)

No context found.

James O. Coplien. Advanced C++ programming styles and idioms. Addison-Wesley Publishing Company, 1992.


The Application of Patterns to Concurrent Control Flow - Kierstead (2001)   (Correct)

No context found.

James Coplien. Advanced C++ Programming Styles and Idioms. AddisonWesley, 1992.


PSTL - A C++ Persistent Standard Template Library - Gschwind (2001)   (Correct)

No context found.

James O. Coplien. C++ Programming Styles and Idioms. Addison-Wesley, August


Development of Reusable Components through the Use of.. - Chia-Chu Chiang Department   (Correct)

No context found.

J. Coplien, Advanced C++: Programming Styles and Idioms, Addison-Wesley, 1992.


In Proceedings of the Third Conference on the.. - September..   (Correct)

No context found.

J. Coplien. Advanced C++ Programming Styles and Idioms. Addison-Wesley, 1992.


Integrating Bulk-Data Transfer into the - Aurora Distributed Shared (2001)   (Correct)

No context found.

J.O. Coplien. Advanced C++: Programming Styles and Idioms. Addison--Wesley, 1992. 34


Schu97] C. Schuderer, REFORM Entwurfsdokumentation.. - Shs Schmidt Harrison   (Correct)

No context found.

J.O. Coplien: Advanced C++ -- Programming Styles and Idioms, AddisonWesley, Reading, MA, 1992


Application Frameworks in the Java Environment - Viljamaa (1997)   (1 citation)  (Correct)

No context found.

Cop92 Coplien J., Advanced C++: Programming Styles and Idioms. Addison-Wesley, 1992.


The Parallel Mathematical Libraries Project.. - Birov, Prokofiev, .. (1999)   (Correct)

No context found.

Coplien, J.: Advanced C++: Programming Styles and Idioms. Addison-Wesley, 1992.


How and Why to Encapsulate Class Trees - Riehle (1995)   (3 citations)  (Correct)

No context found.

Cop92 James O. Coplien. Advanced C++: Programming Styles and Idioms. Reading, Massachusetts: Addison-Wesley, 1992.


Proposed Principles for a RESOLVE/C++ Discipline (Draft 4) - Sergey Zhupanov Bruce   (Correct)

No context found.

James O. Coplien: Advanced C++ Programming Styles and Idioms. Addison Wesley. ISBN 0-201-54855-0.


TClassifier - Tclsf Tgaobj Tobject   (Correct)

No context found.

Coplien, J. O.; 1992. Advanced C++. Programming Styles and Idioms. Addision-Wesley.

First 50 documents  Next 50

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC