Now you have compiler fundamentals down pat, let's move on to some of the techniques you can use to improve the parser's design and performance.
Kenny Kerr continues his series about compiler fundamentals by introducing the syntax analysis, grammars, and the act of parsing or interpreting source code.
Kenny Kerr continues his series about compiler fundamentals by considering how the original source code may be converted into a stream of tokens.
Kenny Kerr starts his new series about compiler basics by looking at how to use memory-mapped files to read the original source code.
Learn about SQLite database engine internals so you can simplify your code and improve the performance of your applications.
SQLite is a tremendously useful database for C++ developers. In this follow-up, Kenny Kerr shows various techniques for improving performance even further.
Incorporate the free database library with these easy, step-by-step directions.
Do you hate the 259-character filename limit in some Windows file systems? So does Kenny. Here's a way to eliminate it and free your application and users from the restriction.
Want to iterate through a sequence with C++11? If so, the easiest way will be to use the range-for statement – Kenny Kerr shows you how.
Yes, sometimes you need sophisticated libraries that handle HTTP requests asynchronously, but in other situations that can be overkill. An old Internet Explorer API may have a solution.
The use of constructor/destructor pairs for resource management is the most important feature that distinguishes C++ from its predecessor.
Learn how to add spell checking to your applications.
C++ has several methods -- including the <type_traits> header and runtime type information -- to help your application make type-based decisions.
Documenting your code is a critical part of development, but too many developers pay too little attention to proper commenting. C++ devs have a tool that can help.
Unit testing is a fine-grained technique for finding bugs. Here's how to apply it to C++ projects.
A survey of the emerging mobile landscape, and how C++ fits in.
A meta-program is "executed" as the result of template instantiation (therefore, before compiled code is produced). Meta-program results are then compiled and merged into object code, including any back-end optimization.
Diego Dagum provides an overview of C++ templates, and how its generics differ from C# and Java.
.NET and Java developers are perplexed about the indiscreet way C++ discloses private class details. Pimpl (pointer-to-implementation) solves this problem by keeping secrets hidden from peepers.
In both .NET and Java, the garbage collector is smart enough to detect and release circular references. Dealing with circular references in C++ isn't as simple.