Home > Store

D Programming Language, Rough Cuts, The

Rough Cuts

  • Available to Safari Subscribers
  • About Rough Cuts
  • Rough Cuts are manuscripts that are developed but not yet published, available through Safari. Rough Cuts provide you access to the very latest information on a given topic and offer you the opportunity to interact with the author to influence the final publication.

Not for Sale

Also available in other formats.

Description

  • Copyright 2009
  • Dimensions: 7 X 9-1/8
  • Pages: 456
  • Edition: 1st
  • Rough Cuts
  • ISBN-10: 0-321-65935-X
  • ISBN-13: 978-0-321-65935-4

This is the Rough Cut version of the printed book.

“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. Reflecting the author’s signature style, the writing is casual and conversational, but never at the expense of focus and preߣision. 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.

Inside the book you will find

  • In-depth explanations, with idiomatic examples, for all language features
  • How feature groups support major programming paradigms
  • 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 D

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

Sample Content

Table of Contents

Foreword by Walter Bright xv

Foreword by Scott Meyers xix

Preface xxiii

Chapter 1: “D”iving In 1

1.1 Numbers and Expressions 3

1.2 Statements 5

1.3 Function Basics 6

1.4 Arrays and Associative Arrays 7

1.5 Basic Data Structures 14

1.6 Interfaces and Classes 20

1.7 Values versus References 25

1.8 Summary 27

Chapter 2: Basic Types. Expressions 29

2.1 Symbols 30

2.2 Literals 32

2.3 Operators 42

2.4 Summary and Quick Reference 61

Chapter 3: Statements 65

3.1 The Expression Statement 65

3.2 The Compound Statement 66

3.3 The if Statement 67

3.4 The static if Statement 68

3.5 The switch Statement 71

3.6 The final switch Statement 72

3.7 Looping Statements 73

3.8 The goto Statement 78

3.9 The with Statement 80

3.10 The return Statement 81

3.11 The throw and try Statements 81

3.12 The mixin Statement 82

3.13 The scope Statement 84

3.14 The synchronized Statement 88

3.15 The asm Statement 89

3.16 Summary and Quick Reference 89

Chapter 4: Arrays, Associative Arrays, and Strings 93

4.1 Dynamic Arrays 93

4.2 Fixed-Size Arrays 107

4.3 Multidimensional Arrays 111

4.4 Associative Arrays 114

4.5 Strings 118

4.6 Arrays’ Maverick Cousin: The Pointer 124

4.7 Summary and Quick Reference 126

Chapter 5: Data and Functions. Functional Style 131

5.1 Writing and unittesting a Simple Function 131

5.2 Passing Conventions and Storage Classes 134

5.3 Type Parameters 138

5.4 Signature Constraints 140

5.5 Overloading 142

5.6 Higher-Order Functions. Function Literals 148

5.7 Nested Functions 150

5.8 Closures 152

5.9 Beyond Arrays. Ranges. Pseudo Members 154

5.10 Variadic Functions 159

5.11 Function Attributes 165

5.12 Compile-Time Evaluation 169

Chapter 6: Classes. Object-Oriented Style 175

6.1 Classes 175

6.2 Object Names Are References 177

6.3 It’s an Object’s Life 181

6.4 Methods and Inheritance 190

6.5 Class-Level Encapsulation with static Members 196

6.6 Curbing Extensibility with final Methods 197

6.7 Encapsulation 199

Updates

Submit Errata

More Information