The New C Standard Explored
C11 specifies many security features that require minimal changes to existing code. They greatly reduce unexpected behavior and prevent many kinds of common attacks.
View ArticleExtracting Function Parameter and Return Types in C++
Using the metaprogramming capabilities of C++ and generic programming, it's possible to create an elegant parser of parameter types. Command-line interpreters, parsers, and syntax checkers are among...
View ArticleThe Design of LLVM
In the last five years, LLVM has evolved from an academic project to the universal back-end of C, C++, and Objective C compilers. The key to its success is its performance and adaptability, both of...
View ArticleC's New Ease of Use and How the Language Compares with C++
C11 adds useful, handy features that match some of the additions to C++. However, key divergences mean that a few C11 features have no counterparts in C++.
View ArticleEasy GPU Parallelism with OpenACC
An emerging standard uses pragmas to move parallel computations in C/C++ and Fortran to the GPU
View ArticleScope Regions in C++
Many programmers have difficulty distinguishing the concepts of scope, storage allocation, and linkage in C++ due to similarities of the concepts in C. Dan begins the process of sorting them all out.
View ArticleAnatomy of a Stack Smashing Attack and How GCC Prevents It
The use of special prologues and epilogues around functions can easily detect attacks that rely on stack overflows. Here is how "stack smashing" is actually performed and how its occurrence is detected.
View ArticleWriting a Bi-Endian Compiler
The techniques for writing a Bi-Endian compiler for porting byte order-sensitive applications. Plus, a look at its application and benchmarks for its performance.
View ArticleThe Best of the First Half
The most popular articles on Dr. Dobb's for the first half of the year, sprinkled with editors' choices of particularly meritorious pieces. Enjoy!
View ArticleInterview with Alan Kay
The pioneer of object-orientation, co-designer of Smalltalk, and UI luminary opines on programming, browsers, objects, the illusion of patterns, and how Socrates could still make it to heaven.
View ArticleFixing the enum in C#
A small reusable superclass adds handy methods that make enums far more useful and flexible
View ArticleImproving Futures and Callbacks in C++ To Avoid Synching by Waiting
In C++, futures are a great way of decomposing a program into concurrent parts, but a poor way of composing those parts into a responsive and scalable program. Microsoft's Parallel Pattern Library...
View ArticleDeploying Static Analysis
Static analysis is a cheap and easy way to find bugs, but it offers important challenges that tend to be more political than technical.
View ArticleGo Tutorial: Object Orientation and Go's Special Data Types
In this second installment of our five-week course on the Go language, we explore Go's unusual approach to object orientation, its special built-in object types, the syntax for multiple return values,...
View ArticleThe Comparative Productivity of Programming Languages
A database comparing 6,000 projects shows that the choice of programming language has a significant impact on project schedule.
View ArticleSaying No To Properties
Properties are rarely necessary and, in many cases, they make your classes hard to extend and difficult to debug. And they make code much larger and more complex than it needs to be.
View ArticleGo Introduction: How Go Handles Objects
Go's unique approach to OO steps around many problems found in other languages by preferring composition to inheritance.
View ArticleLonging For Code Correctness
The longer I write code, the more I yearn for code correctness. Despite the work this extra step presents, commercial ventures, especially Wall Street, would do well to embrace it.
View ArticleThe OpenACC Execution Model
In this second part of the introduction to OpenACC the OpenMP-style library for GPU programming the execution model is explained and samples are benchmarked against straight, OpenMP parallelism.
View ArticleQt 5 Beta: A Developer's Tour
The just-released Qt5 beta shows the library and toolkit thriving and continuing to add capabilities, while simplifying development even more.
View Article