首页  »  云计算知识  »  什么是编译器

什么是编译器?

编译器是计算机语言的翻译软件,它的主要作用是将高级语言翻译为低级语言。例如,将 Pascal、C、C++、C#、Java 等高阶语言翻译成计算机或虚拟机能够运行的机器代码。编译器同样可用于不同计算机语言之间的翻译。

新用户享受中国区域 12 个月免费套餐

什么是编译器?

首页  »  云计算知识  »  什么是编译器

什么是Kubernetes

什么是编译器?

编译器是计算机语言的翻译软件,它的主要作用是将高级语言翻译为低级语言。例如,将 Pascal、C、C++、C#、Java 等高阶语言翻译成计算机或虚拟机能够运行的机器代码。编译器同样可用于不同计算机语言之间的翻译。

新用户享受中国区域 12 个月免费套餐

编译器原理

编译器原理

编译器的工作流程为解析、转化和生成。编译器前端负责进行源代码分析和解析工作,通过词法分析、语法分析、语义检查将输入的源代码生成树形的数据结构(AST)。编译器后端也是编译器的代码生成器,对生成 AST 进行深度遍历节点,根据抽象语法树上每个节点的类型和属性递归调用从而生成对应的字符串代码。通过中间代码生成、优化,最终生成相应的机器代码。编译器的工作有函数内和函数间两种形式,其中函数间分析优化质量更高,但所需时间更长。

C 语言编译器

C 语言编译器可以将 C 语言代码翻译成计算机支持运行的二进制命令,分为 C 和 C++ 两大类,均具有向下兼容性,适用于不同平台,常见的 C 语言编译器有 Visual C++、GCC 以及 LLVM Clang 等。
C语言编译器_ Visual C++

 Visual C++

Visual C++,简称 MSVC,是微软开发的基于 Windows 操作系统的 C 语言编译器,也是基于 Windows 操作系统的可视化集成开发环境,集成了 Windows API、DirectX API,Microsoft .NET 框架,具有语法高亮、高级出错、自动完成等功能。
C语言编译器_ GCC

GCC

GCC 是由 GNU 开发的 C 语言开源编译器,支持 C、C++、Object C、Java、Fortran、Pascal 等多种语言,同时是一个交叉平台编译器,能够适用多种目标体系结构,尤其适用 Linux 嵌入式领域的开发和编译,是使用较为广泛的 C 语言编译器。
C语言编译器_ LLVM Clang

LLVM Clang

LLVM Clang 是一个轻量级编译器,支持 C 语言、C++、Objective-C 语言,采用基于库的模块化设计,易用于 IDE 集成。LLVM Clang 可以满足代码重构、动态分析、代码生成等多样的编译需求,具有编译速度快,占用内存小,诊断信息可读性强,可兼容 GCC 等特点。

C 语言编译器

C 语言编译器可以将 C 语言代码翻译成计算机支持运行的二进制命令,分为 C 和 C++ 两大类,均具有向下兼容性,适用于不同平台,常见的 C 语言编译器有 Visual C++、GCC 以及 LLVM Clang 等。

C语言编译器_ Visual C++

 Visual C++

Visual C++,简称 MSVC,是微软开发的基于 Windows 操作系统的 C 语言编译器,也是基于 Windows 操作系统的可视化集成开发环境,集成了 Windows API、DirectX API,Microsoft .NET 框架,具有语法高亮、高级出错、自动完成等功能。
C语言编译器_ GCC

GCC

GCC 是由 GNU 开发的 C 语言开源编译器,支持 C、C++、Object C、Java、Fortran、Pascal 等多种语言,同时是一个交叉平台编译器,能够适用多种目标体系结构,尤其适用 Linux 嵌入式领域的开发和编译,是使用较为广泛的 C 语言编译器。
C语言编译器_ LLVM Clang

LLVM Clang

LLVM Clang 是一个轻量级编译器,支持 C 语言、C++、Objective-C 语言,采用基于库的模块化设计,易用于 IDE 集成。LLVM Clang 可以满足代码重构、动态分析、代码生成等多样的编译需求,具有编译速度快,占用内存小,诊断信息可读性强,可兼容 GCC 等特点。

pyton 编译器

pyton 编译器

常见的 pyton 编译器有 CPython、JPython、IPython、PyPy、IronPython。其中,Cpython 是由官方提供的,使用 C 语言编写的 pyton 编译器,是 pyton 的默认编译器,也是应用最广泛的。新的编程语言先通过 Cpython 进行实现,基本涵盖了全部第三方库支持。Cpython 的优点是能够提供代码的编译并进行解释,可以直接将 C 语言翻译为计算机可识别的二进制机器码;Cpython 的缺点是多线程表现差,不支持实时编译。

在线编译器

在线编译器

在线编译器适用于轻量级代码的创造、实验、分享和协同,不用安装、无需进行复杂配置,具有方便、跨平台、易集成的特点。在线编译器可以实现无需安装复杂环境即进行自由访问,甚至通过直接代码拷贝可进行小型的测试验证。大部分在线编译器都能够满足基本的编译需求,可以支持多种编程语言,能够满足用户对于语法高亮、代码自动补全、代码重构等功能的需求。在没有任何硬件限制的情况下,在线编译器可以提高程序员的工作效率,降低开发成本。

编译器的堆空间不足

编译器的堆空间不足

编译器的堆空间不足常见原因是,编译器定义了过多的静态全局数组或加载了过大的资源文件,使得工作进程中编译器使用的内存超过了程序可访问的范围。例如,一些大型文件的编译过程所需的内存大于 4G,但 32 位 cl.exe 最大可访问内存只有 3.5G,这时编译器会显示堆空间不足。确认方法是通过调用任务管理器,找到 "Microsoft C/C++ Compiler Driver",查看是否存在内存在接近 4G 时进程报错退出;解决办法是需要将工程文件的配置更改为 64。

亚马逊云科技热门云产品

亚马逊云科技热门云产品

Amazon CodeDeploy

Amazon CodeDeploy


自动化代码部署

Amazon CodeBuild

Amazon CodeBuild


通过持续扩展构建和测试代码

Amazon CodeCommit

Amazon CodeCommit


安全地托管高度可扩展的私有 Git 存储库,进行代码协作。

Amazon Lambda

Amazon Lambda


运行代码,无需顾虑服务器

欢迎加入亚马逊云科技培训中心

从 0 到 1 轻松上手云服务,获取更多官方开发资源及培训教程

准备好体验亚马逊云科技提供的云服务了吗?

新用户享受中国区域 12 个月免费套餐

开始使用亚马逊云科技免费构建

开始使用亚马逊云科技免费构建

关闭
热线

热线

1010 0766
由光环新网运营的
北京区域
1010 0966
由西云数据运营的
宁夏区域