31 citations found. Retrieving documents...
Austern, Matthew H. Generic Programming and the STL. Addison-Wesley-Longman, 1998.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents

New Methods for Parallel Discrete Event Simulation - Chen (2003)   (Correct)

....general programming languages always have good compiler support, and their execution speed is generally faster after optimization. Second, language level reusability is a factor as important as component level reusability, and C is one of the few languages that support code reuse well. With STL [6, 49], C programs can easily achieve high efficiency while maintaining a high level of code reuse, and these properties match our design goal. However, with C we ran into a problem. As mentioned in last section, inports are equivalent to functions, so it is natural to define them as member ....

....with the requirement that component development should be completely independent. The classical solution for such a problem is a functor, which is the generalization of the function pointer. 36 A functor, or a function object, is an object that can be called in the same way that a function is [6, 49]. A functor class overloads the function call operator, operator( For instance, the following is declaration of a Functor class that takes exactly one function argument. template class T class Functor typede T data t; virtual Functor ( 3; virtual return t operator( const T ) ....

[Article contains additional citation context not shown here]

Matthew H. Austern. Generic Programming and the STL. Addison Wesley Longman, 1998.


The Design and Performance of Meta-Programming.. - Wang.. (2001)   (19 citations)  (Correct)

....when they invoked at ending interception points. Problem: To implement the semantics dictated by CORBA s general flow rules, some type of stack implementation is needed. However, implementing a flow stack with a generalpurpose stack container class, such as the one in the standard C library [18], has the following problems: # Time overhead: The stack implementation may incur non trivial performance overhead if it allocates space off of the heap dynamically for each interceptor or interceptor reference pushed onto the stack. Dynamic memory is particularly problematic for real time ....

M. H. Austern, Generic Programming and the STL. Reading, MA: Addison-Wesley, 1999.


EMSim: An Extensible Simulation Environment for Studying.. - Ortiz-Arroyo, Lee, Yu (2002)   (Correct)

....However, the features that provide the OO approach to software design are equally or perhaps more important in a simulator. Languages such as C provide useful OO mechanisms, such as inheritance, polymorphism, and templates. Templates support the design of software using generic programming [2] techniques. In generic programming, software components are created so that they can be easily reused in a wide variety of situations. The data structures and algorithms in the Standard Template Library (STL) 2] are examples of the application of generic programming. In this library, software ....

....and templates. Templates support the design of software using generic programming [2] techniques. In generic programming, software components are created so that they can be easily reused in a wide variety of situations. The data structures and algorithms in the Standard Template Library (STL) [2] are examples of the application of generic programming. In this library, software components such as queues, sets, lists, etc. are able to handle different types of objects employing different algorithms. EMSim provides modularity, code reutilization, and extendibility through the use of ....

M. Austern, Generic Programming and the STL, AddisonWesley, 1998. ISBN 0-201-30956-4.


Generic Programming Techniques that Make Planar Cell Complexes.. - Köthe (2000)   (Correct)

....concept may be realized by several data structures. 5. Implement algorithms in terms of abstract concepts (interfaces) Thus, algorithms can run on top of any data structure that implements the concepts. The currently best example for this approach is the design of the Standard Template Library [1] which forms a major part of the C standard library. This library deals with fundamental data structures (list, arrays, trees etc. and algorithms (sorting, searching etc. On the basis of the steps sketched above, Stepanov and Musser arrived at the iterator concept as their fundamental ....

.... source sequence to the target sequence, looks like this: temp] ate c] ass Sourcelterator, c] ass Targetlterator void copy(Sourcelterator src begin, Sourcelterator src end, Targetlterator target begin) For further information about the design of the STL and generic programming in general, [1] is recommended. In case of cyclic data structures, the concept of an iterator (which has a first and last element) is replaced by the concept of a circulator [5] A circulator behaves like an iterator, with the exception that there is no special last element where further incrementing is ....

M. Austern: "Generic Programming and the STL", Reading: Addison-Wesley, 1998


An Adaptable and Extensible Geometry Kernel - Hert, Hoffmann, Kettner, Pion.. (2001)   (3 citations)  (Correct)

....9) As our implementation is in C [9] we assume the reader is somewhat familiar with this language. Stroustrup [30] provides a general introduction to C template programming, which is used extensively in our design. Parts of the design of the library were inspired by the STL. Austern [2] provides a good reference for generic programming and the STL, and a good reference for the C Standard Library is the book of Josuttis [19] 2 Motivation and Previous Work Over the past 10 years, a number of geometry libraries have been developed, each with its own notion of a geometry ....

....a range of random access iterators providing the input sequence of points and a bidirectional iterator for the resulting sequence of hull points. The last argument is the traits class, that is, our kernel. For a thorough description of the standard iterator concepts refer to the book of Austern [2] 12 or the online reference of SGI s STL [29] Informally speaking, one can think of randomaccess iterators as pointers to an array, while bidirectional iterators can be regarded as pointers to a doubly linked list. Let us flesh out the example of the convex hull algorithm and see how it could ....

[Article contains additional citation context not shown here]

AUSTERN, M. H. Generic Programming and the STL. Addison-Wesley, 1998.


Generic Graph Algorithms for Sparse Matrix Ordering - Lee, Siek, Lumsdaine (1999)   (2 citations)  (Correct)

....paradigm and although they were well programmed, the reported performance was still a factor of 4 5 slower than Fortran 77 implementations. This work was supported by NSF grants ASC94 22380 and CCR95 02710. 2 The recently introduced programming paradigm known as generic programming [4, 5] has demonstrated that abstraction and performance are not necessarily mutually exclusive. One example of a graph library that incorporates the generic programming paradigm is the recently developed Generic Graph Component Library (GGCL) 6] In this paper we present an implementation of the ....

....of vertex v.Inadirected graph edges are ordered pairs while in a undirected graph edges are unordered pairs. In a directed graph an edge (u,v) leaves from the source vertex u to the target vertex v. To describe the graph interface of GGCL we use generic programming terminology from the SGI STL [4]. In the parlance of the SGI STL, the set of requirements on a template parameter for a generic algorithm or data structure is called a concept.The various classes that fulfill the requirements of a concept are said to be models of the concept. Concepts can extend other concepts, which is ....

Matthew H. Austern. Generic Programming and the STL. Addison Wesley Longman, Inc, October 1998.


Iterators and Encapsulation - Noble (2000)   (4 citations)  (Correct)

.... iterator to the next element (in Java these are combined into the next( method) a single operation can also signal the end of the iterator (by returning a sentinel value) or the end of the iteration can be marked by the iterator becoming equal to a special end position iterator (as in C STL [2]) These di erences are mostly cosmetic, and do not greatly a ect the encapsulation properties of an iterator. In the examples in this paper, we use the Java language and the core interface shown above, to highlight the di erences between implementations. To iterate over a collection using an ....

Matthew H. Austern. Generic Programming and the STL. Addison-Wesley, 1999.


Challenges of Component-based Development - Crnkovic, Larsson   (4 citations)  (Correct)

....to retain the tools and utilities they prefer to work with. C complib C complib is a class library that contains generalpurpose classes, such as containers, string management classes, file management classes, etc. The C complib library was developed when no standard libraries, such as STL (Austern, 1999), were available on the market. The main purpose of this library was to improve the efficiency and quality, and promote the uniform usage of the basic functions. C complib is not a component according to the definition in (Szyperski, 1998) where a component is a unit of composition deployed ....

....can be used. If the middleware does not have this possibility it might be possible to generate code automatically that takes care of the different types of calls which are going to be placed through the adapter to the other system. Replacing C complib with STL To switch from C complib to STL (Austern, 1999) was much easier because STL covers almost all the C complib functions and provides additional functionality. Still, much work reminded to be done, since all the code using C complib had to be changed to be able to use STL instead. The decision was taken to continue using both components and ....

Austern M., 1999., Generic Programming and STL, Addison-Wesley.


Embedding Reliable Numerical Analysis Capabilities into an.. - Klaas, Shephard (2000)   (1 citation)  (Correct)

....current CAE tools are simply the solution engine to solve one single problem when it has reached the second idealization stage in an overall adaptive process controlled by the framework. 10 The framework currently under development [12] makes use of modern software development techniques [20] [21], 22] to make sure that it is extendable. So far it has been used for Finite Element Analysis, as well as Partition of Unity methods [3] 2.5 Product Data Management Tools Product Data Management tools, which are also known as Engineering Data Management systems (EDM) 23] were developed to ....

Matthew, H.A. (1998) Generic Programming and the STL, AddisonWesley.


Making C++ Ready for Algorithmic Skeletons - Striegnitz (2000)   (Correct)

....classes (e.g. 2.2 Higher Order Functions Higher order functions are functions with functional arguments and or functional results. Indeed the implementation of higher order functions is not only possible with C , but also the Standard Template Library (STL) [5, 6] as part of the C standard already contains a lot of them (e.g. for each, transform) Higher order functions easily can be expressed through the use of templates. Consider for example the following function template: template typename ARG, typename RESULT, typename UNARYOP, typename ....

Austern M. Generic Programming and the STL Addison Wesley 1999


Next-generation Generic Programming and its.. - Mateev, Pingali.. (2000)   (10 citations)  (Correct)

....of algorithms have to be implemented for many data structures. Code explosion is avoided by mandating a common API which is (i) supported by all data structures, and (ii) used to express algorithms in a generic, datastructure neutral fashion. For example, the C Standard Template Library (STL) [2] uses the API of one dimensional sequences as the interface between data structures like arrays and lists, and algorithms like searching and sorting. The type systems of modern languages permit the data structure implementations and generic programs to be type checked and compiled separately; a ....

Matthew Austern. Generic Programming and the STL. Addison-Wesley, Reading, MA, 1998.


The Generic Graph Component Library - Lee, Siek, Lumsdaine (1999)   (7 citations)  (Correct)

....[11] Sources such as Netlib [1] and [22] represent repositories of graph algorithms. These libraries and repositories represent a significant amount of potentially reusable algorithms and data structures. However, none of these libraries faithfully follows the generic programming paradigm [3] (also see Section 1.1) and are therefore far more rigid (and much less reusable) than necessary. These libraries are inflexible in several respects. First, the user is restricted to the graph data structures provided by the library. Second, the graph algorithms often do not provide explicit ....

....weight) with a graph data structure is often inflexible and hard coded into the algorithms or data structures. Ultimately, these (and other) libraries are fundamentally limited in terms of their flexibility by their design and implementation. 1. 1 Generic Programming Recently, generic programming [3] has emerged as a powerful new paradigm for library development. The fundamental principle of generic programming is to separate algorithms from the concrete data structures on which they operate based on the underlying abstract problem domain concepts, allowing the algorithms and data structures ....

[Article contains additional citation context not shown here]

Austern, M. H. Generic Programming and the STL. Addison Wesley Longman, Inc, October 1998.


Custom Iterators for the STL - Baus, Becker (2000)   (1 citation)  (Correct)

....would not be a very good example of generic programming if there were anything that required iterators to resemble pointers in this way. The requirements on iterators are, of course, much weaker than that. For a complete discussion of these requirements, see e.g. Chapter 7 of Matt Austern s book ([1]) In essence, all one has to observe when writing an iterator class is that, depending on the category that the iterator will belong to, certain operators such as dereferencing and incrementing must be implemented, and, again depending on the iterator category, certain plausibility conditions ....

....it, increment it, decrement it, and dereference it again, the two dereferenced values must be equal under operator= It is clear that none of this places any restrictions on the origin of the data that the iterator retrieves. Interestingly, at the very beginning of his book on the STL ([1], p.4) Matt Austern gives an example of an iterator that gathers data from a place other than a range in memory. His iterator line iterator retrieves lines from an input stream. The operator ( reads the next line and stores it, and the operator ( returns that stored line. The next step on our ....

[Article contains additional citation context not shown here]

Matthew H. Austern, Generic Programming and the STL, Addison Wesley 1998


The Generic Graph Component Library - Lee, Siek, Lumsdaine (1999)   (7 citations)  (Correct)

....weight) with a graph data structure is often inflexible and hard coded into the algorithms or data structures. Ultimately, these (and other) libraries are fundamentally limited in terms of their flexibility by their design and implementation. 1. 1 Generic Programming Recently, generic programming [8] has emerged as a powerful new paradigm for library development. The fundamental principle of generic programming is to separate algorithms from the concrete data structures on which they operate based on the underlying abstract problem domain concepts, allowing the algorithms and data structures ....

....graph edges are unordered pairs. In a directed graph an edge (u,v) leaves from the source vertex u to the target vertex v. 2.2 Graph Concepts The formal graph definition is the basis for our abstract graph interface design. We describe the graph interface using the terminology of the SGI STL [8]. In the parlance of the SGI STL, the set of requirements on a template parameter for a generic algorithm or data structure is called a concept. The various classes that fulfill the requirements of a concept are said to be models of the concept. Concepts can extend other concepts, which is ....

Matthew H. Austern. Generic Programming and the STL. Addison Wesley Longman, Inc, October 1998.


A Computational Sensorimotor Model of Bat Echolocation - Erwin, Wilson, Moss   (Correct)

....Codewarrior Pro 5.0 C programming environment was used. 9 The model simulated the capture of a stationary tethered insect by an echolocating bat flying in an open space. It was a combined continuous discrete event simulation written using both object oriented and generic programming techniques (Austern, 1998). It made use of a priority queue to manage the scheduling and execution of discrete events and updated the continuous components of the system state using an adaptive 4 th 5 th order Runge Kutta integration algorithm (Press, Flannery, Teukolsky, Vetterling, 1988) Integration forward was ....

Austern, M. (1998). Generic Programming and the STL: Addison-Wesley.


A Software Framework for Integrating Search Paradigms - Ng, Ong (2000)   (Correct)

....di#erent distribution strategy. The continuation can be used for programming side e#ects like producing results output. In this implementation, a continuation object is a function object that takes in a store as an argument. Function objects is an abstraction of first class functions using objects [Aus98]. In our implementation of DPL, when distribution completes, the algorithms performs a continuation. For SAT, we output the variables final finite domains when we complete distribution. Program 3 shows the implementation of such an output function object. The operator ( is overloaded so that ....

M. Austern. Generic Programming and the STL. Addison-Wesley, Reading, MA, 1998.


Dr. Dobb's Journal September 2000 Generic programming for.. - Jeremy Siek Lie-Quan   (Correct)

No context found.

Austern, Matthew H. Generic Programming and the STL. Addison-Wesley-Longman, 1998.


Supporting SELL for High-Performance Computing - Stroustrup, Reis   (Correct)

No context found.

Matthew H. Austern. Generic Programming and the STL. Addison-Wesley, October 1998.


Specifying C++ concepts - Gabriel Dos Reis   (Correct)

No context found.

Matthew H. Austern. Generic Programming and the STL. Addison-Wesley, October 1998.


Sensor Network Component Based Simulator - Boleslaw Szymanski And   (Correct)

No context found.

Austern, M. H., 1999. Generic Programming and the STL. Addison-Wesley.


EXACUS: Efficient and Exact Algorithms for Curves and.. - Berberich..   (Correct)

No context found.

M. H. Austern. Generic Programming and the STL. Addison-Wesley, 1998.


Next-generation Generic Programming and its.. - Mateev, Pingali.. (2000)   (10 citations)  (Correct)

No context found.

Matthew Austern. Generic Programming and the STL. Addison-Wesley, Reading, MA, 1998.


Patterns in Datatype-Generic Programming - Gibbons (2003)   (1 citation)  (Correct)

No context found.

Matthew H. Austern. Generic Programming and the STL. Addison-Wesley, 1999.


Generic Pattern Mining via Data Mining Template Library - De, Gao, Palmerini..   (Correct)

No context found.

M. H. Austern. Generic Programming and the STL. Addison Wesley Longman, Inc., 1999.


STL and OO Don't Easily Mix - Kühl (2000)   (Correct)

No context found.

Matthew H.Austern. Generic Programming and the STL. Addison-Wesley, Reading. 1998.

First 50 documents

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