
software engineering
Get flash to fully experience Pearltrees
The Architecture of Open Source Applications: LLVM
This chapter discusses some of the design decisions that shaped LLVM, an umbrella project that hosts and develops a set of close-knit low-level toolchain components (e.g., assemblers, compilers, debuggers, etc.), which are designed to be compatible with existing tools typically used on Unix systems. The name "LLVM" was once an acronym, but is now just a brand for the umbrella project. While LLVM provides some unique capabilities, and is known for some of its great tools (e.g., the Clang compiler, a C/C++/Objective-C compiler which provides a number of benefits over the GCC compiler), the main thing that sets LLVM apart from other compilers is its internal architecture. From its beginning in December 2000, LLVM was designed as a set of reusable libraries with well-defined interfaces [ LA04 ]. At the time, open source programming language implementations were designed as special-purpose tools which usually had monolithic executables.8 Essential Developer Apps for Multiple Platforms
programming languages
architecture and design
development tools
processes and methodologies
books

