The D Programming Language

The D Programming Language

Einband:
Kartonierter Einband
EAN:
9780321635365
Untertitel:
Englisch
Genre:
Programmiersprachen
Autor:
Andrei Alexandrescu
Herausgeber:
Pearson Academic
Auflage:
1. Auflage
Anzahl Seiten:
496
Erscheinungsdatum:
02.06.2010
ISBN:
978-0-321-63536-5

Autorentext
Andrei Alexandrescu, Ph.D., is the author of the award-winning books Modern C++ Design (Addison-Wesley, 2001) and, with Herb Sutter, C++ Coding Standards (Addison-Wesley, 2005). Through his work, Andrei has garnered a solid reputation as a leading innovator in programming languages and methods. Since 2006, he has collaborated closely with Walter Bright—the original designer and implementer of D—on designing and implementing the language and its standard library.

Klappentext
"To the best of my knowledge, D offers an unprecedentedly adroit integration of several powerful programming paradigms: imperative, object-oriented, functional, and meta."-From the foreword by Walter Bright "This is a book by a skilled author describing an interesting programming language. I'm sure you'll find the read rewarding."-From the foreword by Scott Meyers D is a programming language built to help programmers address the challenges of modern software development. It does so by fostering modules interconnected through precise interfaces, a federation of tightly integrated programming paradigms, language-enforced thread isolation, modular type safety, an efficient memory model, and more. The D Programming Language is an authoritative and comprehensive introduction to D. It covers all aspects of the language (such as expressions, statements, types, functions, contracts, and modules), but it is much more than an enumeration of features. Reflecting the author's signature style, the writing is casual and conversational, but never at the expense of focus and precision. Inside the book you will find In-depth explanations, with idiomatic examples, for all language features How feature groups support major programming paradigms The rationale and best-use advice for each major feature Discussion of cross-cutting issues, such as error handling, contract programming, and concurrency Tables, figures, and "cheat sheets" that serve as a handy quick reference for day-to-day problem solving with DWritten for the working programmer, The D Programming Language not only introduces the D language-it presents a compendium of good practices and idioms to help both your coding with D and your coding in general.

Inhalt
Foreword by Walter Bright xvForeword by Scott Meyers xixPreface xxiiiChapter 1: “D”iving In 11.1 Numbers and Expressions 31.2 Statements 51.3 Function Basics 61.4 Arrays and Associative Arrays 71.5 Basic Data Structures 141.6 Interfaces and Classes 201.7 Values versus References 251.8 Summary 27Chapter 2: Basic Types. Expressions 292.1 Symbols 302.2 Literals 322.3 Operators 422.4 Summary and Quick Reference 61Chapter 3: Statements 653.1 The Expression Statement 653.2 The Compound Statement 663.3 The if Statement 673.4 The static if Statement 683.5 The switch Statement 713.6 The final switch Statement 723.7 Looping Statements 733.8 The goto Statement 783.9 The with Statement 803.10 The return Statement 813.11 The throw and try Statements 813.12 The mixin Statement 823.13 The scope Statement 843.14 The synchronized Statement 883.15 The asm Statement 893.16 Summary and Quick Reference 89Chapter 4: Arrays, Associative Arrays, and Strings 934.1 Dynamic Arrays 934.2 Fixed-Size Arrays 1074.3 Multidimensional Arrays 1114.4 Associative Arrays 1144.5 Strings 1184.6 Arrays’ Maverick Cousin: The Pointer 1244.7 Summary and Quick Reference 126Chapter 5: Data and Functions. Functional Style 1315.1 Writing and unittesting a Simple Function 1315.2 Passing Conventions and Storage Classes 1345.3 Type Parameters 1385.4 Signature Constraints 1405.5 Overloading 1425.6 Higher-Order Functions. Function Literals 1485.7 Nested Functions 1505.8 Closures 1525.9 Beyond Arrays. Ranges. Pseudo Members 1545.10 Variadic Functions 1595.11 Function Attributes 1655.12 Compile-Time Evaluation 169Chapter 6: Classes. Object-Oriented Style 1756.1 Classes 1756.2 Object Names Are References 1776.3 It’s an Object’s Life 1816.4 Methods and Inheritance 1906.5 Class-Level Encapsulation with static Members 1966.6 Curbing Extensibility with final Methods 1976.7 Encapsulation 1996.8 One Root to Rule Them All 2036.9 Interfaces 2126.10 Abstract Classes 2186.11 Nested Classes 2226.12 Multiple Inheritance 2266.13 Multiple Subtyping 2306.14 Parameterized Classes and Interfaces 2336.15 Summary 237Chapter 7: Other User-Defined Types 2397.1 structs 2407.2 unions 2707.3 Enumerated Values 2727.4 alias 2767.5 Parameterized Scopes with template 2787.6 Injecting Code with mixin templates 2827.7 Summary and Reference 285Chapter 8: Type Qualifiers 2878.1 The immutable Qualifier 2888.2 Composing with immutable 2918.3 immutable Parameters and Methods 2928.4 immutable Constructors 2938.5 Conversions involving immutable 2958.6 The const Qualifier 2978.7 Interaction between const and immutable 2988.8 Propagating a Qualifier from Parameter to Result 2998.9 Summary 300Chapter 9: Error Handling 3019.1 throwing and catching 3019.2 Types 3029.3 finally clauses 3069.4 nothrow Functions and the Special Nature of Throwable 3079.5 Collateral Exceptions 3079.6 Stack Unwinding and Exception-Safe Code 3099.7 Uncaught Exceptions 312Chapter 10: Contract Programming 31310.1 Contracts 31410.2 Assertions 31610.3 Preconditions 31710.4 Postconditions 31910.5 Invariants 32110.6 Skipping Contract Checks. Release Builds 32410.7 Contracts: Not for Scrubbing Input 32710.8 Contracts and Inheritance 32910.9 Contracts in Interfaces 334Chapter 11: Scaling Up 33711.1 Packages and Modules 33711.2 Safety 35311.3 Module Constructors and Destructors 35611.4 Documentation Comments 35811.5 Interfacing with C and C++ 35911.6 deprecated 35911.7 version Declarations 36011.8 debug Declarations 36111.9 D’s Standard Library 361Chapter 12: Operator Overloading 36512.1 Overloading Operators 36612.2 Overloading Unary Operators 36712.3 Overloading Binary Operators 37112.4 Overloading Comparison Operators 37512.5 Overloading Assignment Operators 37612.6 Overloading Indexing Operators 37712.7 Overloading Slicing Operators 37912.8 The $ Operator 37912.9 Overloading foreach 38012.10 Defining Overloaded Operators in Classes 38312.11 And Now for Something Completely Different: opDispatch 38412.12 Summary and Quick Reference 388Chapter 13: Concurrency 39113.1 Concurrentgate 39213.2 A Brief History of Data Sharing 39413.3 Look, Ma, No (Default) Sharing 39713.4 Starting a Thread 39913.5 Exchanging Messages between Threads 40113.6 Pattern Matching with receive 40313.7 File Copying—with a Twist 40613.8 Thread Te…


billigbuch.ch sucht jetzt für Sie die besten Angebote ...

Loading...

Die aktuellen Verkaufspreise von 5 Onlineshops werden in Realtime abgefragt.

Sie können das gewünschte Produkt anschliessend direkt beim Anbieter Ihrer Wahl bestellen.


Feedback