Buy The D Programming Language by Andrei Alexandrescu
Book 1
Book 2
Book 3
Book 1
Book 2
Book 3
Book 1
Book 2
Book 3
Book 1
Book 2
Book 3
Home > Computing and Information Technology > Computer programming / software engineering > Programming and scripting languages: general > The D Programming Language
The D Programming Language

The D Programming Language


     0     
5
4
3
2
1



International Edition


X
About the 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­cision. 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.



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

6.8 One Root to Rule Them All 203

6.9 Interfaces 212

6.10 Abstract Classes 218

6.11 Nested Classes 222

6.12 Multiple Inheritance 226

6.13 Multiple Subtyping 230

6.14 Parameterized Classes and Interfaces 233

6.15 Summary 237

Chapter 7: Other User-Defined Types 239

7.1 structs 240

7.2 unions 270

7.3 Enumerated Values 272

7.4 alias 276

7.5 Parameterized Scopes with template 278

7.6 Injecting Code with mixin templates 282

7.7 Summary and Reference 285

Chapter 8: Type Qualifiers 287

8.1 The immutable Qualifier 288

8.2 Composing with immutable 291

8.3 immutable Parameters and Methods 292

8.4 immutable Constructors 293

8.5 Conversions involving immutable 295

8.6 The const Qualifier 297

8.7 Interaction between const and immutable 298

8.8 Propagating a Qualifier from Parameter to Result 299

8.9 Summary 300

Chapter 9: Error Handling 301

9.1 throwing and catching 301

9.2 Types 302

9.3 finally clauses 306

9.4 nothrow Functions and the Special Nature of Throwable 307

9.5 Collateral Exceptions 307

9.6 Stack Unwinding and Exception-Safe Code 309

9.7 Uncaught Exceptions 312

Chapter 10: Contract Programming 313

10.1 Contracts 314

10.2 Assertions 316

10.3 Preconditions 317

10.4 Postconditions 319

10.5 Invariants 321

10.6 Skipping Contract Checks. Release Builds 324

10.7 Contracts: Not for Scrubbing Input 327

10.8 Contracts and Inheritance 329

10.9 Contracts in Interfaces 334

Chapter 11: Scaling Up 337

11.1 Packages and Modules 337

11.2 Safety 353

11.3 Module Constructors and Destructors 356

11.4 Documentation Comments 358

11.5 Interfacing with C and C++ 359

11.6 deprecated 359

11.7 version Declarations 360

11.8 debug Declarations 361

11.9 D’s Standard Library 361

Chapter 12: Operator Overloading 365

12.1 Overloading Operators 366

12.2 Overloading Unary Operators 367

12.3 Overloading Binary Operators 371

12.4 Overloading Comparison Operators 375

12.5 Overloading Assignment Operators 376

12.6 Overloading Indexing Operators 377

12.7 Overloading Slicing Operators 379

12.8 The $ Operator 379

12.9 Overloading foreach 380

12.10 Defining Overloaded Operators in Classes 383

12.11 And Now for Something Completely Different: opDispatch 384

12.12 Summary and Quick Reference 388

Chapter 13: Concurrency 391

13.1 Concurrentgate 392

13.2 A Brief History of Data Sharing 394

13.3 Look, Ma, No (Default) Sharing 397

13.4 Starting a Thread 399

13.5 Exchanging Messages between Threads 401

13.6 Pattern Matching with receive 403

13.7 File Copying—with a Twist 406

13.8 Thread Termination 407

13.9 Out-of-Band Communication 409

13.10 Mailbox Crowding 410

13.11 The shared Type Qualifier 411

13.12 Operations with shared Data and Their Effects 413

13.13 Lock-Based Synchronization with synchronized classes 414

13.14 Field Typing in synchronized classes 419

13.15 Deadlocks and the synchronized Statement 424

13.16 Lock-Free Coding with shared classes 426

13.17 Summary 431

Bibliography 433

Index 439



About the Author :

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.


Best Sellers


Product Details
  • ISBN-13: 9780321635365
  • Publisher: Pearson Education (US)
  • Publisher Imprint: Addison-Wesley Educational Publishers Inc
  • Height: 231 mm
  • No of Pages: 496
  • Spine Width: 30 mm
  • Width: 181 mm
  • ISBN-10: 0321635361
  • Publisher Date: 17 Jun 2010
  • Binding: Paperback
  • Language: English
  • Returnable: Y
  • Weight: 838 gr


Similar Products

Add Photo
Add Photo

Customer Reviews

REVIEWS      0     
Click Here To Be The First to Review this Product
The D Programming Language
Pearson Education (US) -
The D Programming Language
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

The D Programming Language

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept


    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!