Skip to content
Free planNo credit card requiredStart writing

Search 250 million research papers

Read the abstract, see who wrote it and who cites it, and get the citation in APA, MLA, Chicago or Harvard.

About 2,310 papers for “D programming language”

D Programming Language

Roiser, Stefan · 2023

Atila Neves presents the October edition of the Compute Accelerator Forum on the D language, entitled "Why D? An opinionated talk on why you should pick D for your next project"<br> <br> Indico Link: https://indico.cern.ch/event/1264301/<br>

Cited by 0Open access

Origins of the D programming language

Walter Bright, Andrei T. Alexandrescu, Michael Parker · Proceedings of the ACM on Programming Languages · 2020

As its name suggests, the initial motivation for the D programming language was to improve on C and C++ while keeping their spirit. The D language was to preserve those languages' efficiency, low-level access, and Algol-style syntax. The areas D set out to improve focused initially on rapid development, convenience, and simplifying the syntax without hampering expressiveness. The genesis of D has its peculiarities, as is the case with many other languages. Walter Bright, D's creator, is a mechanical engineer by education who started out working for Boeing designing gearboxes for the 757. He was programming games on the side, and in trying to make his game Empire run faster, became interested in compilers. Despite having no experience, Bright set out in 1982 to implement a compiler that produced better code than those on the market at the time. This interest materialized into a C compiler, followed by compilers for C++, Java, and JavaScript. Best known of these would be the Zortech C++ compiler, the first (and to date only) C++-to-native compiler developed by a single person. The D programming language began in 1999 as an effort to pull the best features of these languages into a new one. Fittingly, D would use the by that time mature C/C++ back end (optimizer and code generator) that had been under continued development and maintenance since 1982. Between 1999 and 2006, Bright worked alone on the D language definition and its implementation, although a steadily increasing volume of patches from users was incorporated. The new language would be based on the past successes of the languages he'd used and implemented, but would be clearly looking to the future. D started with choices that are obvious today but were less clear winners back in the 1990s: full support for Unicode, IEEE floating point, 2s complement arithmetic, and flat memory addressing (memory is treated as a linear address space with no segmentation). It would do away with certain compromises from past languages imposed by shortages of memory (for example, forward declarations would not be required). It would primarily appeal to C and C++ users, as expertise with those languages would be readily transferrable. The interface with C was designed to be zero cost. The language design was begun in late 1999. An alpha version appeared in 2001 and the initial language was completed, somewhat arbitrarily, at version 1.0 in January 2007. During that time, the language evolved considerably, both in capability and in the accretion of a substantial worldwide community that became increasingly involved with contributing. The front end was open-sourced in April 2002, and the back end was donated by Symantec to the open source community in 2017. Meanwhile, two additional open-source back ends became mature in the 2010s: `gdc` (using the same back end as the GNU C++ compiler) and `ldc` (using the LLVM back end). The increasing use of the D language in the 2010s created an impetus for formalization and development management. To that end, the D Language Foundation was created in September 2015 as a nonprofit corporation overseeing work on D's definition and implementation, publications, conferences, and collaborations with universities.

Cited by 12Open access

An Analysis of the D Programming Language

Sumanth Yenduri, Louise Perkins, MD Sarder · Journal of international technology and information management · 2007

The C language and its derivatives have been some of the dominant higher-level languages used, and the maturity has stemmed several newer languages that, while still relatively young, possess the strength of decades of trials and experimentation with programming concepts. While C++ was a major step in the advancement from procedural to object-oriented programming (with a backbone of C), several problems existed that prompted the development of new languages. This paper focuses on one such language: D. D was designed as a potential successor to C++, supporting most features of C++’s class design and modifications intended to ease common program development obstacles. This paper compares and contrasts the features of D against C and some of its derivatives.

Cited by 1Open access

D.3.3 Programming Languages: Language Constructs and Features–

Manish Vachharajani, Neil Vachharajani, Sharad Malik et al. · 2008

High-level hardware modeling is an essential, yet time-consuming, part of system design. However, effective component-based reuse in hardware modeling languages can reduce model construction time and enable the exploration of more design alternatives, leading to better designs. While component overloading and parametric polymorphism are critical for effective component-base reuse, no existing modeling language supports both. The lack of these features creates overhead for designers that discourages reuse, negating any benefits of reuse. This paper presents a type system which supports both component overloading and parametric polymorphism. It proves that performing type inference for any such system is NP-complete and presents a heuristic that works efficiently in practice. The result is a type system and type inference algorithm that can encourage reuse, reduce design specification time, and lead to better designs. Categories and Subject Descriptors:

Cited by 0

Categories and Subject Descriptors D.3.3 [Programming Languages]:Language

Umut A. Acar · 2013

Many big data computations involve processing data that changes incrementallyordynamicallyovertime.Usingexistingtechniques, suchcomputationsquicklybecomeimpractical.Forexample,computing the frequency of words in the first ten thousand paragraphs of a publicly available Wikipedia data set in a streaming fashion using MapReduce can take as much as a full day. In this paper, we propose an approach based on self-adjusting computation that can dramatically improve the efficiency of such computations. As an example, we can perform the aforementioned streaming computationinjustacouple ofminutes.

Cited by 0

Safer Linux Kernel Modules Using the D Programming Language

Constantin-Eduard Stăniloiu, Alexandru Militaru, Răzvan Nitu et al. · IEEE Access · 2022

Since its creation, the Linux kernel has gained international recognition and has been employed on a large range of devices: servers, supercomputers, smart devices and embedded systems. Given its popularity, the security of the kernel has become a critical research topic. As a consequence, a wide range of third party tools were created to detect bugs in its implementation. However, new vulnerabilities are discovered and exploited every year. The explanation for this phenomenon lies in the fact that the programming language that is used for the kernel implementation, C, is designed to allow unsafe memory operations. In this paper, we show that it is possible to incrementally transition the kernel code from C to a memory safe programming language, D, by porting and integrating a device driver. In addition, we propose a series of code transformations that allow the D compiler to reason about the safety of certain memory operations. Our implementation increases the security guarantees of the kernel without incurring any performance penalties.

Cited by 0Open access

The Bayes Linear Programming Language<b>[B/D]</b>

David Wooff, Michael Goldstein · Journal of Statistical Software · 2000

Bayes linear methodology provides a quantitative structure for expressing our beliefs and systematic methods for revising these beliefs given observational data. Particular emphasis is placed upon interpretation of and diagnostics for the specification. The approach is similar in spirit to the standard Bayes analysis, but is constructed so as to avoid much of the burden of specification and computation of the full Bayes case. This report is the first of a series describing Bayes linear methods. In this document, we introduce some of the basic machinery of the theory. Examples, computational issues, detailed derivations of results and approaches to belief elicitation will be addressed in related reports.

Cited by 4Open access

Parallelizing power system contingency analysis using D programming language

Siddhartha Kumar Khaitan, James D. McCalley · 2013

To ensure security, analyzing a large number of contingencies is important, which requires use of parallel computing resources. In this paper, we present an approach for parallelization and load balancing of contingency analysis (CA) in power systems using D programming language. We parallelize CA using a multicore processor and and propose and employ work-stealing based efficient scheduling to achieve load-balancing. We evaluate the features of D which are important for parallelization of CA and obtaining large performance gains. Our approach promotes legacy code reuse and hence is suitable for modern control centers which cannot afford porting their legacy code to other high-performance computing (HPC) platforms. We have conducted time domain simulation using a large 13029-bus test system with hundreds of contingencies and parallelized CA over 2, 4, 8, 12 and 16 cores. The results have confirmed that our approach outperforms a conventional scheduling technique and also offers large computational savings over serial execution.

Cited by 5

D++: development of a visual object oriented language for DSP programming

Antonio Heronaldo de Sousa, Valdivino Alexandre de Santiago Júnior, Marcos Vinicius Linhares · 2003

This paper introduces the development of a programming environment, called D++, that increases the software development productivity for digital signal processors (DSP). D++, focuses in reducing the development time of new projects by using the concepts of visual programming and object oriented programming, trying to be an alternative to the existing programming tools.

Cited by 0

A Code Analysis Base Regression Test Selection Technique for D Programming Language

Nitesh Chouhan, Maitreyee Dutta, Mayank Singh · 2014

D is a new programming language. This is an object-oriented, imperative, multi-paradigm system programming language. Regression testing on D programming language still untouched by researchers. Our research attempts to bridge this gap by introducing a techniques to revalidate D programs. A framework is proposed which automates both the regression test selection and regression testing processes for D programming language. As part of this approach, special consideration is given to the analysis of the source code of D language. In our approach system dependence graph representation will be used for regression test selection for analyzing and comparing the code changes of original and modified program. First we construct a system dependence graph of the original program from the source code. When some modification is executed in a program, the constructed graph is updated to reflect the changes. Our approach in addition to capturing control and data dependencies represents the dependencies arising from object-relations. The test cases that exercise the affected model elements in the program model are selected for regression testing. Empirical studies carried out by us show that our technique selects on an average of 26.36. % more fault-revealing test cases compared to a UML based technique while incurring about 37.34% increase in regression test suite size.

Cited by 1

Implementation of a Compressible-Flow Simulation Code in the D Programming Language

Peter A. Jacobs, Rowan Gollan · Applied Mechanics and Materials · 2016

We describe the formulation and implementation of the Eilmer4 compressible-flow solver as well as discuss the features of the D programming language that we have found useful for writing scientific software. An example of use is provided to show the features of the user-input scripting and the performance of the main simulation code when run in parallel with block-marching.

Cited by 40

interfaces; D.2.4 [Software Engineering] Software/Program Verification — Assertion checkers, formal methods, programming by contract; D.3.2 [Programming Languages] Language Classifications — Objectoriented

Carlos E. Rubio-medrano, Yoonsik Cheon, Carlos E. Rubio-medrano et al. · 2010

Abstract—Application-level security has become an issue in recent years; for example, errors, discrepancies and omissions in the specification of access control constraints of security-sensitive software components are recognized as an important source for security vulnerabilities. We propose to formally specify access control assumptions or constraints of a program module and enforce them at run-time. We call such specifications access control contracts. To realize access control contracts, we extended the JML language, a formal interface specification language for Java, and developed a prototype support tool that translates access control contracts to runtime checks. The access control contract reduces the vulnerability that a security-sensitive module be exploited to compromise the overall security of a software system. It also facilitates practicing the principle of “security by design ” by

Cited by 0

ToQ.jl: A high-level programming language for D-Wave machines based on Julia

Daniel O’Malley, Velimir V. Vesselinov · 2016

Quantum computers are becoming more widely available, so it is important to develop tools that enable people to easily program these computers to solve complex problems. To address this issue, we present the design and two applications of ToQ.jl, a high-level programming language for D-Wave quantum annealing machines. ToQ.jl leverages the metaprogramming facilities in Julia (a high-level, high-performance programming language for technical computing) and uses D-Wave's ToQ programming language as an intermediate representation. This makes it possible for a programmer to leverage all the capabilities of Julia, and the D-Wave machine is used as a co-processor. We demonstrate ToQ.jl via two applications: (1) a pedagogical example based on a map-coloring problem and (2) a linear least squares problem. We also discuss our experience using ToQ.jl with a D-Wave 2X, particularly with respect to a linear least squares problem which is of broad interest to the scientific computing community.

Cited by 38