Introduction
A compiler is a software system that converts a program written in an advanced language into an equivalent object code or machine language program that can be executed on a computer. Advanced languages are easy to read and write, and machine language programs can be directly run. The main workflow of a modern compiler includes preprocessing, compiling and linking.
Currently, the main open source compilers include GNU Compiler Collection (GCC) and Low Level Virtual Machine (LLVM). GCC is a programming language compiler developed by GNU. It is a standard compiler for most Unix-like operating systems. LLVM is a framework for building compilers. It is an open source project compiled using C++. Because the architecture is decoupled and easy to integrate, more and more commercial compilers are using LLVM.