---
title: 编译器简介
description: "编译器是一个将高级语言编写的程序转换成能在一台计算机上执行的等价目标代码或机器语言程序的软件系统。高级语言便于人阅读和编写，机器语言程序能够直接被机器编译运行。一个现代编译器的主要工作流程包括预处理、编译和链接三个部分。"
url: https://www.hikunpeng.com/document/detail/zh/perftuning/progtuneg/kunpengprogramming_05_0030.html
sourcePath: /source/zh/perftuning/progtuneg/kunpengprogramming_05_0030.html
indexId: 22d23d40fe2e328e2b108e3d106bae0451ade121110dce428c6b23c05331f43b63
---
# 编译器简介

编译器是一个将高级语言编写的程序转换成能在一台计算机上执行的等价目标代码或机器语言程序的软件系统。高级语言便于人阅读和编写，机器语言程序能够直接被机器编译运行。一个现代编译器的主要工作流程包括预处理、编译和链接三个部分。

图1 编译工作流程

目前主要的开源编译器有GCC（GNU Compiler Collection）和LLVM（Low Level Virtual Machine）。GCC是一套由GNU开发的编程语言编译器，是目前大多数类Unix操作系统的标准编译器。LLVM是一种构建编译器的框架，以C++编写而成的开源项目，由于其架构解耦方便集成，越来越多的商业编译器底座改为LLVM。
