
D Programming Language This Document is a unofficial snapshot of the official online documents at http://digitalmars.com/d/index.html and was created and posted with permission of Walter Bright. We hope that it will be useful for offline reading, even if there is no guarantee that this document is always up-to-date. Revision history: April 15, 2003: First compilation by Alexander Klinsky Corrections and suggestions to: news://news.digitalmars.com/D © Digital Mars, 2003 created April 18, 2003, corresponding to DMD 0.61 The D Programming Language "It seems to me that most of the "new" programming languages fall into one of two categories: Those from academia with radical new paradigms and those from large corporations with a focus on RAD and the web. Maybe its time for a new language born out of practical experience implementing compilers." -- Michael "Great, just what I need.. another D in programming." -- Segfault This is the reference document for the D programming language. D was conceived in December 1999 by myself as a successor to C and C++, and has grown and evolved with helpful suggestions and critiques by my friends and colleagues. I've been told the usual, that there's no chance for a new programming language, that who do I think I am designing a language, etc. Take a look at the document and decide for yourself! The D newsgroup in news.digitalmars.com server is where discussions of this should go. Suggestions, criticism, kudos, flames, etc., are all welcome there. Note: all D users agree that by downloading and using D, or reading the D specs, they will explicitly identify any claims to intellectual property rights with a copyright or patent notice in any posted or emailed feedback sent to Digital Mars. -Walter 2 The D Programming Language Table of Content What is D?............................................................................................................................ 11 Why D? ................................................................................................................................ 11 Features To Keep From C/C++........................................................................................ 12 Features To Drop.............................................................................................................. 13 Who D is For.................................................................................................................... 14 Who D is Not For............................................................................................................. 14 Major Features of D ............................................................................................................. 15 Object Oriented Programming ......................................................................................... 15 Productivity ...................................................................................................................... 15 Functions .......................................................................................................................... 17 Arrays ............................................................................................................................... 17 Resource Management ..................................................................................................... 18 Performance ..................................................................................................................... 18 Reliability......................................................................................................................... 19 Compatibility.................................................................................................................... 20 Project Management......................................................................................................... 21 Sample D Program (sieve.d) ................................................................................................ 21 Lexical...................................................................................................................................... 23 Phases of Compilation...................................................................................................... 23 Source Text ...................................................................................................................... 23 End of File........................................................................................................................ 24 End of Line....................................................................................................................... 24 White Space...................................................................................................................... 24 Comments......................................................................................................................... 24 Identifiers ......................................................................................................................... 25 String Literals................................................................................................................... 25 Integer Literals ................................................................................................................. 27 Floating Literals ............................................................................................................... 28 Keywords ......................................................................................................................... 29 Tokens .............................................................................................................................. 30 Pragmas ............................................................................................................................ 31 Modules.................................................................................................................................... 33 Module Declaration.......................................................................................................... 33 Import Declaration ........................................................................................................... 34 Scope and Modules .......................................................................................................... 34 Static Construction and Destruction..................................................................................... 35 Order of Static Construction ............................................................................................ 35 Order of Static Construction within a Module................................................................. 35 Order of Static Destruction .............................................................................................. 35 Declarations.............................................................................................................................. 36 Declaration Syntax ........................................................................................................... 36 Type Defining .................................................................................................................. 37 Type Aliasing ................................................................................................................... 37 Alias Declarations ............................................................................................................ 37 Types ........................................................................................................................................ 39 Basic Data Types.................................................................................................................. 39 Derived Data Types.............................................................................................................. 39 User Defined Types.............................................................................................................. 40 Pointer Conversions ............................................................................................................. 40 3 The D Programming Language Implicit Conversions ............................................................................................................ 40 Integer Promotions ........................................................................................................... 40 Usual Arithmetic Conversions ......................................................................................... 40 Delegates .............................................................................................................................. 41 Properties.................................................................................................................................. 42 Properties for Integral Data Types ....................................................................................... 42 Properties for Floating Point Types ..................................................................................... 42 .init Property......................................................................................................................... 42 Attributes.................................................................................................................................. 44 Linkage Attribute ................................................................................................................
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages228 Page
-
File Size-