D Programming Language
Jump to navigation
Jump to search
A D Programming Language is an object-oriented, imperative, multi-paradigm system programming language.
- Context:
- It is most related to C++.
- …
- Counter-Example(s):
- See: Object-Oriented Programming, Imperative Programming, System Programming.
References
2014
- (Wikipedia, 2014) ⇒ http://en.wikipedia.org/wiki/D_(programming_language) Retrieved:2014-12-10.
- The D programming language is an object-oriented, imperative, multi-paradigm system programming language created by Walter Bright of Digital Mars and Andrei Alexandrescu. Though it originated as a re-engineering of C++, D is a distinct language, having redesigned some core C++ features while also taking inspiration from other languages, notably Java, Python, Ruby, C#, and Eiffel.
D's design goals attempt to combine the performance and safety of compiled languages with the expressive power of modern dynamic languages. Idiomatic D code is commonly as fast as equivalent C++ code, while being shorter and memory-safe. [1] Type inference, automatic memory management and syntactic sugar for common types allow faster development, while bounds checking, design by contract features and a concurrency-aware type system help reduce the occurrence of bugs.
- The D programming language is an object-oriented, imperative, multi-paradigm system programming language created by Walter Bright of Digital Mars and Andrei Alexandrescu. Though it originated as a re-engineering of C++, D is a distinct language, having redesigned some core C++ features while also taking inspiration from other languages, notably Java, Python, Ruby, C#, and Eiffel.
- ↑ Memory Safety has an entire chapter, with recipes. It's a major theme of the language. Failures to reach this standard are defects.
- http://dlang.org/
- Convenience
- D allows writing large code fragments without redundantly specifying types, like dynamic languages do. On the other hand, static inference deduces types and other code properties, giving the best of both the static and the dynamic worlds.
- Automatic memory management makes for safe, simple, and robust code. D also supports scoped resource management (aka the RAII idiom) and scope statements for deterministic transactional code that is easy to write and read.
- Built-in linear and associative arrays, slices, and ranges make daily programming simple and pleasant for tasks, both small and large.
- Power
- The best paradigm is to not impose something at the expense of others. D offers classic polymorphism, value semantics, functional style, generics, generative programming, contract programming, and more — all harmoniously integrated.
- D offers an innovative approach to concurrency, featuring true immutable data, message passing, no sharing by default, and controlled mutable sharing across threads. Read more.
- From simple scripts to large projects, D has the breadth to scale with any application's needs: unit testing, information hiding, refined modularity, fast compilation, precise interfaces. Read more.
- Efficiency
- D compiles naturally to efficient native code.
- D is designed such that most "obvious" code is fast and safe. On occasion a function might need to escape the confines of type safety for ultimate speed and control. For such rare cases D offers native pointers, type casts, access to any C function without any intervening translation, and even inline assembly code.
- The @safe, @trusted, and @system function attributes allow the programmer to best decide the safety-efficiency tradeoffs of an application, and have the compiler check for consistency.
- Convenience