• Home
  • Andrei Alexandrescu
Andrei Alexandrescu

Andrei Alexandrescu
  • Ph.D.
  • Founder at D Language Foundation

About

33
Publications
15,064
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
749
Citations
Current institution
D Language Foundation
Current position
  • Founder
Additional affiliations
January 2005 - July 2009
University of Washington
Position
  • PhD Student
Education
October 2001 - July 2009
University of Washington
Field of study
  • Computer Science and Engineering
September 1989 - July 1994

Publications

Publications (33)
Article
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 witho...
Conference Paper
Full-text available
The Median of Medians (also known as BFPRT) algorithm, although a landmark theoretical achievement, is seldom used in practice because it and its variants are slower than simple approaches based on sampling. The main contribution of this paper is a fast linear-time deterministic selection algorithm QuickselectAdaptive based on a refined definition...
Preprint
The Median of Medians (also known as BFPRT) algorithm, although a landmark theoretical achievement, is seldom used in practice because it and its variants are slower than simple approaches based on sampling. The main contribution of this paper is a fast linear-time deterministic selection algorithm QuickselectAdaptive based on a refined definition...
Patent
Full-text available
Particular embodiments of a social-networking system maintain one or more data stores storing a social graph comprising user nodes, concept nodes, and edges connecting the nodes. Particular embodiments may determine a confidence score with respect to a user node and a concept node, wherein the confidence score is based at least in part on affinity...
Article
Full-text available
One of the nice perks of doing hard work for next to no money, activity also known as being a graduate student, is that you get to rub shoulders with researchers working on interesting problems. I’ve had the pleasure of meeting in person Emery Berger and also Kathryn McKinley, two of the authors (with Benjamin Zorn) of “Composing High-Performance M...
Book
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 Program...
Article
Full-text available
Current phrase-based statistical machine translation systems process each test sentence in isolation and do not enforce global consis- tency constraints, even though the test data is often internally consistent with respect to topic or style. We propose a new consistency model for machine translation in the form of a graph-based semi-supervised lea...
Conference Paper
Full-text available
We introduce graph-based learning for acoustic-phonetic classification. In graph-based learning, training and test data points are jointly represented in a weighted undirected graph characterized by a weight matrix indicating similarities between different samples. Classification of test samples is achieved by label propagation over the entire grap...
Conference Paper
Full-text available
Graph-based semi-supervised learning has recently emerged as a promising approach to data-sparse learning problems in natu- ral language processing. All graph-based algorithms rely on a graph that jointly rep- resents labeled and unlabeled data points. The problem of how to best construct this graph remains largely unsolved. In this paper we introd...
Article
Full-text available
Conference Paper
Full-text available
We present a new type of neural proba- bilistic language model that learns a map- ping from both words and explicit word features into a continuous space that is then used for word prediction. Addi- tionally, we investigate several ways of deriving continuous word representations for unknown words from those of known words. The resulting model sign...
Article
Full-text available
we will abstract the thusly discovered points of cus- tomization into policies, and we’ll assemble a generic Observer framework from those policies. 1 Mailcontainer
Article
Full-text available
The C++ Standard defines single-threaded program execution. Fun-damentally, multithreaded execution requires a much more refined mem-ory and execution model. C++ threading libraries are in the awkward sit-uation of specifying (implicitly or explicitly) an extended memory model for C++ in order to specify program execution. We propose integrating a...
Article
Full-text available
The C++ Standard defines single-threaded program execution. Fun- damentally, multithreaded execution requires a much more refined mem- ory and execution model. C++ threading libraries are in the awkward sit- uation of specifying (implicitly or explicitly) an extended memory model for C++ in order to specify program execution. We propose integrating...
Article
Full-text available
Well, I’ll tell you what it is. A lot of embarrassment, that’s what it is—particularly if the name happens to be a poorly chosen symbol name. If you’re thinking of some foul word left in my source code and found by a scrutinizing colleague months later, you’re mistaken. (I always use Romanian interjections when I need a “variable name that’s imposs...
Book
Consistent, high-quality coding standards improve software quality, reduce time-to-market, promote teamwork, eliminate time wasted on inconsequential matters, and simplify maintenance. Now, two of the world's most respected C++ experts distill the rich collective experience of the global C++ community into a set of coding standards that every devel...
Article
Full-text available
The C++ and the risks of Double-Checked Locking Pattern (DCLP) are discussed. DCLP is designed to add efficient thread safety to initialization of a shared resource but it is not reliable and can fail for different reasons on uniprocessor and multiprocessor architectures. The relationships among statement ordering in source code, sequence points, c...
Article
Full-text available
Last month I’ve been to the Software Development Conference in Santa Clara, CA. If anything I’ve seen there is illustrative for the general mood, C++ is in very good shape. The C++ track has been the strongest of the conference and the main culprit for the unexpectedly high attendance (in the 800s). Old and new projects that use C++ galore, and the...
Article
Full-text available
This paper describes an implementation of generic discriminated unions in C++ that combines the following features: (1) the ability to specify the set of possible types accepted, (2) transparency among built-in and user-defined types, (3) "total decoherence" mode in which the user is required to treat all possible types of a discriminated union, an...
Article
Full-text available
Article
Full-text available
A number of us (, and others) have been working on the semantics of multithreaded pro-grams in C++. We feel that many of the same issues apply to the C language, and that it is important to keep the solutions as similar as possible. Although we would like to concentrate our effort on one language at a time, we would like to be made aware of any C-s...
Article
Full-text available
Analyzing a tool intended to make large projects more manageable and increase programmer productivity is a daunting task. Not only applying transformations to a large body of code and analyzing its evolution over time is a large, time-consuming effort, but also even in the presence of the appropriate logistics, measuring and quantifying the re- sul...
Article
Full-text available
By maneuvering carefully between thread-private and thread-shared data, it is possible to devise a lock-free algorithm that gives strong and satisfactory speed and memory consumption guarantees.
Article
Full-text available
Make no mistake: patterns have to be tailored to each problem by the sweat of one's brow and the firing of one's neurons. Customization is a big part of the pattern concept, and it has a big say in a pattern's effec- tiveness. It also makes patterns different from conventional tools of the programming trade—a difference that's lost on many folks. T...

Network

Cited By