or
Sign in to turn on 1-Click ordering.
 
 
More Buying Choices
26 used & new from £10.99

Have one to sell? Sell yours here
 
   
Generative Programming: Methods, Techniques and Applications
 
 

Generative Programming: Methods, Techniques and Applications (Paperback)

by Krysztof Czarnecki (Author), Ulrich Eisenecker (Author)
4.4 out of 5 stars  See all reviews (5 customer reviews)
RRP: £37.99
Price: £22.79 & this item Delivered FREE in the UK with Super Saver Delivery. See details and conditions
You Save: £15.20 (40%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In stock.
Dispatched from and sold by Amazon.co.uk. Gift-wrap available.

Only 5 left in stock--order soon (more on the way).

Want guaranteed delivery by Tuesday, November 24? Choose Express delivery at checkout. See Details
17 new from £21.52 9 used from £10.99

Special Offers and Product Promotions


Frequently Bought Together

Customers buy this book with Modern C++ Design: Applied Generic and Design Patterns (C++ in Depth) by Andrei Alexandrescu

Generative Programming: Methods, Techniques and Applications + Modern C++ Design: Applied Generic and Design Patterns (C++ in Depth)
Price For Both: £40.25

Show availability and delivery details


Customers Who Bought This Item Also Bought

Modern C++ Design: Applied Generic and Design Patterns (C++ in Depth)

Modern C++ Design: Applied Generic and Design Patterns (C++ in Depth)

by Andrei Alexandrescu
4.8 out of 5 stars (6)  £17.46
C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond (C++ in Depth Series)

C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond (C++ in Depth Series)

by David Abrahams
4.0 out of 5 stars (3)  £18.13
Code Generation in Action

Code Generation in Action

by Jack Herrington
£21.34
More Exceptional C++: 40 More Engineering Puzzles, Programming Problems, and Solutions (AW C++ in Depth)

More Exceptional C++: 40 More Engineering Puzzles, Programming Problems, and Solutions (AW C++ in Depth)

by Herb Sutter
5.0 out of 5 stars (4)  £13.49
Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems and Solutions (C++ in Depth Series)

Exceptional C++ Style: 40 New Engineering Puzzles, Programming Problems and Solutions (C++ in Depth Series)

by Herb Sutter
4.0 out of 5 stars (1)  £17.58
Explore similar items

Product details

  • Paperback: 864 pages
  • Publisher: Addison Wesley (14 Jun 2000)
  • Language English
  • ISBN-10: 0201309777
  • ISBN-13: 978-0201309775
  • Product Dimensions: 23.6 x 19 x 4.6 cm
  • Average Customer Review: 4.4 out of 5 stars  See all reviews (5 customer reviews)
  • Amazon.co.uk Sales Rank: 362,756 in Books (See Bestsellers in Books)
  • See Complete Table of Contents

Customers Viewing This Page May Be Interested in These Sponsored Links

  (What is this?)
   CodeSmith Code Generator opens new browser window
www.codesmithtools.com  -  Template-driven. Easy to use. Your code. Your way. Faster! 
   Pgm Transformation Tools opens new browser window
www.semanticdesigns.com  -  Analyze/Change big software sources C, C++, Java, COBOL, XML, SQL, more 
  
 

Product Description

Product Description

Generative Programming (GP) offers the promise of moving from "one-of-a-kind" software systems to the semi-automated manufacture of wide varieties of software -- essentially, an assembly line for software systems. GP's goal is to model software system families and build software modules such that, given particular requirements specs, highly customized and optimized intermediate or end products can be constructed on demand. This is the first book to cover Generative Programming in depth. The authors, leaders in their field, introduce the two-stage GP development cycle: one stage for designing and implementing a generative domain model, and another for using the model to build concrete systems. They review key differences between generative modeling and processes used for "one-of-a-kind" systems. Next, they introduce key GP concepts such as feature models, and demonstrate "generic programming" techniques for creating components which lend themselves to easy combination and reuse. The book also introduces Aspect Oriented Programming, which allows developers to solve key recurring problems in traditional O-O development; and presents metaprogramming techniques for building powerful program generators. Three detailed case studies demonstrate the entire generative development cycle, from analysis to implementation.



From the Back Cover

Praise for Generative Programming

“The book develops strong themes around unifying principles that tie the pieces together, most notably domain engineering and metaprogramming. It’s crucial to understand that this book is not just some refreshing diversionn or just an exposition of some noteworthy niche techniques. It is a harbinger of a broader enlightenment that opens the door to a new age.”

—from the foreword by JAMES COPLIEN, a Distinguished Member of Technical Staff at Lucent Technologies' Bell Laboratories, Naperville, IL

“Generative Programming offers a well-written and comprehensive discussion that integrates object technology and domain engineering. The authors’ approach to software systems generation provides very clear insights into practices essential for systematic reuse and software product lines.”

SHOLOM COHEN, a Senior Member of the Technical Staff of the Software Engineering Institute (SEI), Pittsburgh, PA, and a co-developer of the Feature Oriented Domain Analysis (FODA) method

“If you believe that the systems you develop today will share concepts with the systems you will develop tomorrow, then the practical techniques presented in this book will reduce your time to market, decrease your engineering costs, and improve your software quality. These techniques are essential for both practitioners and researchers concerned with modern system development.”

JAMES NEIGHBORS, President of Bayfront Technologies, Inc., Newport Beach, CA, and the author of the Draco approach

“The authors present a grand tour of Generative Programming which is bound to become a classic. They properly focus on the generally unappreciated connection between Domain Specific Languages and Generative Programming as a motivation for future development. The wide-ranging and practical methods for Domain Analysis and Domain Engineering describe the first steps that developers can take right now. They are valuable both when existing systems are used or in preparation for emerging new generative technologies.”


CHARLES SIMONYI, Chief Architect at Microsoft Research, Redmond, WA, and the inventor of Intentional Programming

Generative Programming (GP) offers great promise to application developers. It makes the idea of moving from Ione of a kindO software systems to the semi-automated manufacture of wide varieties of software quite real. In short, GP is about recognizing the benefits of automation in software development. Generative Programming covers methods and tools that will help you design and implement the IrightO components for a system family and automate component assembly. The methods presented here are applicable for all commercial development--from "programming in the small," at the level of classes and procedures--to "programming in the large," or developing families of large systems.

Generative Programming is your complete guide and reference to this emerging discipline. It provides in-depth treatment of critical technologies and topics including:

  • Domain Engineering
  • Feature Modeling
  • Generic Programming
  • Aspect-Oriented Programming
  • Template Metaprogramming in C++
  • Generators
  • Microsoft's Intentional Programming

Using this book you will learn how these techniques fit together and, more importantly, how to apply them in practice. The text contains three comprehensive case studies in three different domains: programming domain (container data structures), business domain (banking), and scientific computing (matrix computations).




Inside This Book (Learn More)
Browse Sample Pages
Front Cover | Table of Contents | Excerpt | Index | Back Cover
Search inside this book:

Suggested Tags from Similar Products

 (What's this?)
Be the first one to add a relevant tag (keyword that's strongly related to this product)
 
programming
generic
todo
software engineering
software development
generic programming
generative programming
design patterns
cplusplus
compilers

Your tags: Add your first tag
 

What Do Customers Ultimately Buy After Viewing This Item?

Generative Programming: Methods, Techniques and Applications
89% buy the item featured on this page:
Generative Programming: Methods, Techniques and Applications 4.4 out of 5 stars (5)
£22.79
Code Generation in Action
5% buy
Code Generation in Action
£21.34
Modern C++ Design: Applied Generic and Design Patterns (C++ in Depth)
2% buy
Modern C++ Design: Applied Generic and Design Patterns (C++ in Depth) 4.8 out of 5 stars (6)
£17.46
Working Effectively with Legacy Code (Robert C Martin)
2% buy
Working Effectively with Legacy Code (Robert C Martin) 4.5 out of 5 stars (4)
£17.96

 

Customer Reviews

5 Reviews
5 star:
 (2)
4 star:
 (3)
3 star:    (0)
2 star:    (0)
1 star:    (0)
 
 
 
 
 
Average Customer Review
4.4 out of 5 stars (5 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

 
5 of 5 people found the following review helpful:
4.0 out of 5 stars wide-ranging in scope, but heavy on C++ templates, 2 Mar 2007
This book does cover lots of techniques that fall under the rubric of generative programming, but be warned that there is a strong emphasis on C++ template metaprogramming. If you don't know C++, or are a bit fuzzy on template syntax, you'll be missing a lot. Consider this a C++ template metaprogramming book, with some bonus chapters to put it all in context.

The opening chapters are a bit dull, containing a plethora of acronyms and jargon about various design methodologies, none of which seem to have made any particular impact in the last few years. I tentatively diagnose a mixture of thesis-itis and maybe translation-itis. If it's the former, I wouldn't be surprised to find that this made up part of the introduction or literature review chapter. However, the concept of feature diagrams is quite interesting, as it allows a graphical representation of a design specifying features and other properties (such as whether they're optional), without requiring any implementation (e.g. inheritance or parametric polymorphism), which is not possible with UML. How revelatory this is may depend on how seriously you take UML as a modelling tool, versus a convenient set of boxes and lines for representing class design.

There are also chapters on Aspect Oriented Programming, which is a pretty good survey of the field, and which provides useful motivation beyond logging. Additionally, there's a chapter on generators, which provide a convenient Domain Specific Language for specifying behaviour and performance of software components (list containers is the example in the book).

There's also a rather vacuous chapter on intentional programming, the brainchild of Charles Simonyi. It's an interesting enough idea, sitting somewhere between MDA, the Smalltalk class browser, and a souped-up IDE, but there's been absolutely no progress on it since the book was published, because Microsoft didn't release it, and Simonyi wasn't allowed to take any of the code with him when he left to set up Intentional Software. This chapter is ok on the big idea, albeit a bit breathless given it's not been shown to produce any useful software, but the worked example has all the allure of an Eclipse plugin tutorial.

The above material is sporadically interesting, but often a little pedestrian. However, the real action of the book takes place in the chapters on template metaprogramming in C++, which demonstrates how to generate related families of classes at compile time, using template instantiation and careful use of inlining to avoid inefficient virtual calls and indirection. It's very impressive. There are several examples, including a class hierarchy for a banking domain, and an in depth treatment of a matrix library, which successfully unifies all the types (sparse, full, banded etc.) under one library, while maintaining performance competitive with Fortran.

These C++ chapters demonstrate the ideas of the book in practice most clearly, although it also underlines the need for new tools and language features, given the outrageous ugliness of the compiler/template-abuse that is metaprogramming. On the other other hand, it is kind of cool to see colons, angle brackets and other bits of C++ coalesce into a strange new dialect using the compiler as an interpreter. If you're going to get anything at all out of these chapters, you do need to be comfortable with C++ templates. It would probably also help to have read something like Barton and Nackman's book, 'Scientific and Engineering C++', their unorthodox template designs providing a good warm up for what's in this book.

If you don't program in C++, or don't care for template metaprogramming, you may not find huge value for money in the other chapters. And admittedly, the writing style hardly sets the pulse racing. But if you're looking to do some intellectual stretching before taking on Andrei Alexandrescu's Modern C++ Design (and that's probably a very good idea), step right up!
Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)



 
1 of 1 people found the following review helpful:
4.0 out of 5 stars Great book, 8 Sep 2002
I really liked this book. Very interesting ideias. The first part can be a little hard to read, as it's a little bit too much theory for me to handle at one time, but when we reach the second part, and especially the third (the examples), it becames quite interesting and enthusiastic. I only think it could have been better if the authors didn't separate the chapters so well, it turnded it a little more boring to read. In spite of this, it's still very worth buying.
Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)



 
5 of 10 people found the following review helpful:
5.0 out of 5 stars A must-read for software developers, 24 Jan 2001
This is a truly excellent book. If you're involved in software development, you _really_ need to read this. It covers some very complex concepts in a clear, easy-to-read manner (although you may find yourself having to read some sections two or three times - in fact, if you don't, you probably didn't read it properly the first time through! :-) I really can't recommend this book highly enough. (And why can I only give it five stars...)
Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)


Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews

5.0 out of 5 stars A difficult, but in the end probably the more rewarding IT book I have ever read.
This is a fantastic book. No IT book has ever made such an impression on me as this book. But at the same time it has been one of the hardest IT books I have ever read... Read more
Published 20 months ago by A. A. Moolenaar

4.0 out of 5 stars The Classic Book
This seems to be The Classic Book on generative programming. It is divided in 3 parts: domain engineering, implementation technology and examples. Read more
Published on 11 Mar 2003

Only search this product's reviews



Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 

   


Listmania!


Look for similar items by category


Look for similar items by subject


Feedback

Ad

Your Recent History

 (What's this?)

After viewing product detail pages or search results, look here to find an easy way to navigate back to pages you are interested in.