oder
Loggen Sie sich ein, um 1-Click® einzuschalten.
Jetzt eintauschen
und EUR 3,38 Gutschein erhalten
Eintausch
Alle Angebote
Möchten Sie verkaufen? Hier verkaufen
Der Artikel ist in folgender Variante leider nicht verfügbar
Keine Abbildung vorhanden für
Farbe:
Keine Abbildung vorhanden

 
Den Verlag informieren!
Ich möchte dieses Buch auf dem Kindle lesen.

Sie haben keinen Kindle? Hier kaufen oder eine gratis Kindle Lese-App herunterladen.

Generative Programming: Methods, Tools, and Applications: Methods, Techniques and Applications [Englisch] [Taschenbuch]

Krzysztof Czarnecki , Krysztof Czarnecki , Ulrich Eisenecker
4.8 von 5 Sternen  Alle Rezensionen anzeigen (4 Kundenrezensionen)
Preis: EUR 34,43 kostenlose Lieferung. Siehe Details.
  Alle Preisangaben inkl. MwSt.
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
Lieferbar ab dem 30. September 2014.
Bestellen Sie jetzt.
Verkauf und Versand durch Amazon. Geschenkverpackung verfügbar.

Kurzbeschreibung

6. Juni 2000
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.


Produktinformation

  • Taschenbuch: 864 Seiten
  • Verlag: Addison Wesley Pub Co Inc; Auflage: New. (6. Juni 2000)
  • Sprache: Englisch
  • ISBN-10: 0201309777
  • ISBN-13: 978-0201309775
  • Größe und/oder Gewicht: 23,5 x 18,9 x 4,3 cm
  • Durchschnittliche Kundenbewertung: 4.8 von 5 Sternen  Alle Rezensionen anzeigen (4 Kundenrezensionen)
  • Amazon Bestseller-Rang: Nr. 68.134 in Fremdsprachige Bücher (Siehe Top 100 in Fremdsprachige Bücher)
  • Komplettes Inhaltsverzeichnis ansehen

Mehr über den Autor

Entdecken Sie Bücher, lesen Sie über Autoren und mehr

Produktbeschreibungen

Synopsis

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.

Buchrückseite

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).




Welche anderen Artikel kaufen Kunden, nachdem sie diesen Artikel angesehen haben?


Eine digitale Version dieses Buchs im Kindle-Shop verkaufen

Wenn Sie ein Verleger oder Autor sind und die digitalen Rechte an einem Buch haben, können Sie die digitale Version des Buchs in unserem Kindle-Shop verkaufen. Weitere Informationen

Kundenrezensionen

3 Sterne
0
2 Sterne
0
1 Sterne
0
4.8 von 5 Sternen
4.8 von 5 Sternen
Die hilfreichsten Kundenrezensionen
5 von 6 Kunden fanden die folgende Rezension hilfreich
4.0 von 5 Sternen What's next in Software-Engineering 12. Juli 2000
Von Ein Kunde
Format:Taschenbuch
Generative programming addresses all those magic new buzz-words following Object-orientation like Feature Modelling, Aspect-Oriented Programming and Intentional Programming. This book draws a detailed map of state-of-the-art in this area and links all things together. The direct access of the authors to some of the fathers of these concepts ensures that the original ideas are clearly addressed. It gives me an in-depth-overview of what will/may happen in Software-Engineering in the next future. Although it makes the complex ideas clear to someone who is not a stranger to Software-Engineering it's not as easy readable as a goodnite story, I (old guy of those COBOL days) needed some concentration to understand all the concepts. I got help by a lot of examples which made things easier for me.
War diese Rezension für Sie hilfreich?
1 von 1 Kunden fanden die folgende Rezension hilfreich
5.0 von 5 Sternen a MUST HAVE for C++ Programmers 23. Januar 2009
Format:Taschenbuch|Verifizierter Kauf
If you tried the book "C++ Template Metaprogramming" (from the "C++ in-depth" series) and would just like to have another way to get the point, then use this book. Chapter 10 "Static Metaprogramming in C++" is really helpful. But this book has much more (e.g. aspect-oriented programming). I also like the lots of cross-references to other useful books and publications. It's within my top-five books for programming.
War diese Rezension für Sie hilfreich?
2 von 3 Kunden fanden die folgende Rezension hilfreich
5.0 von 5 Sternen A major book 12. Juli 2000
Format:Taschenbuch
This is a major book, bound to influence the future direction of programming. The scope is wide; "big picture" discussions, reviews of existing systems, explicit "how-to-do-it" instructions, and case studies. Should be read by anyone designing reusable systems, particularly those with lots of variability. Interesting to intermediate and advanced programmers and designers. Not of much interest to beginners.
War diese Rezension für Sie hilfreich?
1 von 3 Kunden fanden die folgende Rezension hilfreich
5.0 von 5 Sternen A valuable and detailed book, rich in content 31. Juli 2000
Format:Taschenbuch
The intention of this book is software re-use on different abtraction levels and within application families as well as automatisms in the software development process at the basis of components and by configuration knowledge. This book is particularly valuable because of the practical experiences of the authors. Many examples support the good comprehensibility and legibility. This book contains recommendations for the future which should you use already today. It is equally important for software designers as also for teachers at universities.
War diese Rezension für Sie hilfreich?
Die hilfreichsten Kundenrezensionen auf Amazon.com (beta)
Amazon.com: 4.0 von 5 Sternen  22 Rezensionen
102 von 104 Kunden fanden die folgende Rezension hilfreich
5.0 von 5 Sternen 5 Stars with caveats....... 10. Oktober 2000
Von ZippyFuzzy - Veröffentlicht auf Amazon.com
Format:Taschenbuch
Its hard to tell from the title of this book who will benefit from reading it but from a practical standpoint, C++ library designers and those with an interest in the "bleeding edge" of software engineering should find it very enlightening. The primary focus of this book is speeding up the lifecycle of program design by utilizing "Generative Programming". GP is a fancy name for programming using domain specific notations and generating highly optimized code without burdening the application programmer with low level details of domain libraries.
Chapter 1 "What is this book about?" - The authors describe GP. Short and sweet.....
Chapter 2 "Domain Engineering" - A rather dry, pedantic review of current Domain Engineering methods. This chapter reads like a PHD lit review. Boring....
Chapter 3 "Domain Engineering and OO Analysis and Design" - Why OO Analysis isn't appropriate for designing reusable libraries and analysis methods that are more suitable for the task. Quick and painless....
Chapter 4 "Feature Modeling" - One of the high points of the book. For those of you who have been stymied by the inflexibility of UML, the authors introduce the technique of "feature diagrams" which allow library designers to defer decisions like inheritance vs. aggregation until later in the design. Potentially very useful.
Chapter 5 "The Process of GP" - Describes how GP should work in an ideal world (which unfortunately doesn't exist yet). A bit too abstract.....
Chapter 6 "Generic Programming" - Describes type based programming (i.e. C++ templates) and various languages support for Generic Programming. Java programmers won't like this one!
Chapter 7 "Component-Oriented Template-Based C++ Programming Techniques" - The title pretty much says it all. Good introduction to C++ templates.
Chapter 8 "Aspect-Oriented Programming" - Aspects are portions of code that have little to do with the actual intent of the code. Examples are synchronization and error handling. This chapter describes how messy aspects can make code and how to separate aspects from core functionality. Good stuff....
Chapter 9 "Generators" - Describes how ideal code Generators should work. Good introduction to the topic.
Chapter 10 "Static Metaprogramming in C++" - For me this is the high point of the book. Compile time control structures such as IF<>, SWITCH<>, DO<> and WHILE<> are introduced. These can be used to generate configurable types as shown in later chapters. These structures are difficult to debug but if used conservatively are very powerful!
Chapter 11 "Intentional Programming" - A description of Microsoft's Intentional Programming environment. IP is the ideal GP development environment that allows library designers to enhance the main IDE with domain specific libraries. Developers interact directly with the source parse trees that are rendered to the IDE in a domain specific manner. The description is interesting but the IP Software is potential Vaporware and I'm kinda sick of reading about MS development tools that will change the world (C# anyone????)
Chapter 12-14 - The final chapters describe how to build template class generators that allow the application programming to specify functionality as a template parameter and the generator will build the type. It's as close to GP as we can get today. A list container class, bank account class and a highly optimized matrix library are designed using the GP methodology. It's nice to see the authors actually practicing what they preach.
Aside from the overly academic feel to the book and touting Microsoft fantasy-ware (which may become available... who knows?) this book offers much food for thought for system designers and C++ library implementers. The template tricks described are difficult to debug but with a little luck future compilers will provide better support for this style of compile time design. I look forward to the 2nd or 3rd edition of this book when this stuff matures.
36 von 41 Kunden fanden die folgende Rezension hilfreich
4.0 von 5 Sternen Interesting for C++ template programmers 31. August 2000
Von G. Powell - Veröffentlicht auf Amazon.com
Format:Taschenbuch
Czarnecki & Eisenecker are the authors of the the famed IF<> template used in many template libraries (Blitz++, GGCL, FAST, VTL and Lambda) They also discuss creation of a linked list, binary tree, SWITCH, FOR, WHILE templates. These are compile time constructs for generating code, not the resulting executable code. All cool stuff. There have been some advances in this realm of coding since this book has been published, but for the most part this is a good reference text. (Its an area of programming that is moving fast.)
The complaint about this book for JAVA programmers is legit, JAVA without templates or some other meta language is an inappropriate tool to do Generative Programming. That's not a slam on JAVA its just the way it is. Screws and nails, the right tool for the job at hand.
The discussions on design methodologies is pretty dry. If I'm having trouble sleeping, reading a chapter on it will do the trick. However there is a great chapter on "Feature Diagrams". These are a great addition to any design document as it can show what things are missing. After applying one to the VTL library we realized that we are missing a shared reference base.
The best part of this book is that each chapter starts out with a paragraph of why you should read that chapter. Would all technical books do this, I would be forever grateful. There is also a summary of the important points in the margin. Feels like I'm reading an annotated text, again a great writing style.
C++ code design is hard, mostly because the problems we are trying to solve are difficult. The real world is messy. (Witness the Zebra, looks like a horse but isn't.) The formalism this book brings to the table will help create better designs.
Recommended for Advanced C++ program designers, and anyone writing generic libraries.
15 von 17 Kunden fanden die folgende Rezension hilfreich
5.0 von 5 Sternen A peek at the next level of abstraction. 24. Januar 2001
Von Peter D. Barnhart - Veröffentlicht auf Amazon.com
Format:Taschenbuch
If we think of OOP as a level of abstraction beyond procedural programming, we can ask the question "what's the next level of abstraction beyond OOP?" Application of OOP allows us to design and create programs of far greater complexity than traditional procedural approaches. Similarly, another level of abstraction should lead to a quantum leap in our abilities, both conceptually and practically.
The question addressed by this book is how can we go about designing programs that generate programs? How might we specify families of programs to cover whole domains of problems, in the same sense that a modern auto design specifies a near infinity of specific autos with varying sets of options? How might we implement such designs - and what tools are currently available, or under construction, for doing so? How do we go about thinking about such questions?
This book doesn't have all the answers, but certainly the ideas of feature modelling and domain-specific languages must be parts of the answer. If we stuck to those sections of the book (chapters 1-5), it would be important enough, but unsatisfying without any means of implementing something - and probably too short for a PhD thesis!
The majority of the book looks at a variety of implementation approaches - a few briefly, one (intentional programming) in somewhat more depth, and focuses on C++ template metaprogramming as the one most of us can do something concrete with today. Even there - as the MS Visual C++ compiler doesn't support partial template specialization - it's difficult to experiment. Too, the quote at the beginning of chapter 10 says it all: "I always knew C++ templates were the work of the Devil, and now I'm sure." (Cliff Click).
But that's not the point. More effective tools will come, but only after we think hard about what kind of tools we need - just as C++ was the culmination of a lot of people thinking hard about object oriented programming. This book opens the door - and our eyes - to what might someday be. At that level, it's breathtaking.
If you agree with the quote opening chapter 9: "I would rather write programs to help me write programs than write programs" (Dick Sites), then this book is for you. If you think that's nonsense, you'll get little or nothing out of it.
8 von 8 Kunden fanden die folgende Rezension hilfreich
3.0 von 5 Sternen A+ in content, C- in execution 8. Februar 2006
Von Fernando Berzal Galiano - Veröffentlicht auf Amazon.com
Format:Taschenbuch
As it is said in another review, this is a solid (and rather academic) book on the theory behind code generation. Unfortunately, I find it somewhat dated and too focused on C++ templates.

The first part of the book includes a nice introduction to domain engineering (a must for anyone interested in the development of product lines). Here, feature diagrams are introduced to represent variation points without implying a particular variation mechanism (such as inheritance or parametrization in OO languages).

The core of this book deals with different implementation technologies. You will find interesting discussions on generic programming, polymorphism, C++ templates, and aspect-oriented programming. In my opinion, the chapter on AOP is probably the best, since it provides a good survey of different approaches (subject-oriented programming, composition filters, and adaptive [structure-shy] programming) and shows some examples in AspectJ Cool (a precursor of the current version of AspectJ [the Java aspect-oriented extension]) and Dynamic Cool (for Smalltalk).

The chapters on generators elaborate on the transformational model of software development, where software development is seen as series of transformations performed on various representations of a system (i.e. creating and evolving specifications of systems and implementing them). Unfortunately, the authors focus too much on C++ template metaprogramming, which is not too practical (at least for me, mainly a Java/.Net developer). The application examples in the final part of the book also follow this approach despite its limitations regarding debugging and code readability. This limitations are not present in intentional programming, which is also covered in its own chapter. Ideally, IP would enable software source code to reflect the intention that programmers had in mind when developing it, thus simplifying maintenance and allowing programmers to keep a good high-level picture of their programs as a whole. Vapor-ware? Fantasy-ware? Maybe

If you are looking for practical ideas on code generation, this book is probably not for you. It is worth its price, however, if you just want to broaden your perspective on computer programming and are not afraid of hefty academic volumes.
4 von 4 Kunden fanden die folgende Rezension hilfreich
4.0 von 5 Sternen Generative programming 21. Februar 2009
Von Yuanchyuan Sheu - Veröffentlicht auf Amazon.com
Format:Taschenbuch
Out of the three programming books (the other two are: "Modern C++ design" by Alexandrescu and "C++ templates" by Vandevoorde and Josuttis) that I have read about C++ template or generic programming, this is the best one.

I have not just glided through the book but have actually taken the time following the book to implement some experiments of my own.

The other two books are excellent books on this topic but this is the only one that offers the philosophy and big picture of what generic (actually this volume is about generative, which the authors claim to be more than just generic) programming is all about.

It is a fun read, especially after one has some generic programming experience.
Waren diese Rezensionen hilfreich?   Wir wollen von Ihnen hören.
Kundenrezensionen suchen
Nur in den Rezensionen zu diesem Produkt suchen

Kunden diskutieren

Das Forum zu diesem Produkt
Diskussion Antworten Jüngster Beitrag
Noch keine Diskussionen

Fragen stellen, Meinungen austauschen, Einblicke gewinnen
Neue Diskussion starten
Thema:
Erster Beitrag:
Eingabe des Log-ins
 

Kundendiskussionen durchsuchen
Alle Amazon-Diskussionen durchsuchen
   


Ähnliche Artikel finden


Ihr Kommentar