高级语言编译过程
- 格式:docx
- 大小:11.06 KB
- 文档页数:1
编译是什么意思
编译是一种将计算机语言转换成计算机可以接受的指令的程序化过程。
它是一种将程序翻译成机器可以执行的指令的过程,可以把程序从高级语言转换成可执行文件的过程。
简单来说,就是编译是一个代码编写和可执行二进制文件之间一中必经的处理过程。
当程序员写好了程序之后,就会使用到编译,这个时候编译器就是秘钥。
编译器会将源代码转换成目标代码,之后计算机就可以照着机器语言(二进制)运行程序了。
编译其实并不是一件很难的事情,本质上并不需要太多的技术。
但是,如果我们好好研究一下,还是可以学到很多关于编译的知识的,例如关于语法分析、语义分析等等,只要用心学习,就能深入了解编译的原理了。
总的来说,编译是一种把高级语言转换成机器可以识别的指令的过程,它在计算机语言编程中占据者至关重要的地位,是可以编写程序的基础。
当我们把编程当做一种生活娱乐的时候,学会了编译,你就能在兴趣当中拓宽自己的知识内容,能够丰富日常生活。
编译原理简单知识总结(⼀)---编译程序和解释程序⼀、什么是编译程序 ⼀个编译程序就是⼀个语⾔翻译程序。
语⾔翻译程序把⼀种语⾔(称作源语⾔)书写的程序翻译成另⼀种语⾔(称作⽬标程序)的等价程序。
⾼级语⾔程序 ------> 编译程序 -------> 低级语⾔程序(⽬标程序)⾼级语⾔程序的处理过程 需预处理的源程序-------->预处理程序(⽂件合并、⽂件包含、宏处理、条件编译)----->编译程序---->⽬标汇编代码-->汇编程序-->可再装配的机器代码------>可在装配的⽬标⽂件(装配/链接-编译程序)--->绝对的机器代码⼆、编译过程和编译程序的结构 编译过程可划分为词法分析、语法分析、语义分析、中间代码⽣成、代码优化和⽬标代码⽣成六个阶段。
1.词法分析 词法分析是编译过程的第⼀个阶段。
这个阶段的任务是从左到右⼀个字符⼀个字符的读⼊源程序,对构成源程序的字符流进⾏扫描和分解,从⽽识别出⼀个个单词(也称单词符号或符号)。
这⾥所谓的单词是指逻辑上紧密相连的⼀组字符,这些字符具有集体含义。
⽐如标识符是由字母字符开头,后跟字母、数字字符的字符序列组成⼀种单词。
保留字(关键字或基本字)是⼀种单词,此外还有算符、界符等。
源程序------>单词特别序列,把注释、换⾏等直接忽略2.语法分析 语法分析是编译过程的第⼆个阶段,语法分析的任务是在词法分析的基础上讲单词序列分解成各类语法短语,如“”“程序”“”“语句”“”“表达式”等。
⼀般这种语法短语,也称为语法单位,可表⽰成语法树。
单词序列---->语法短语(语法树) 语法分析所依据的是语⾔的语法规则,即描述程序结构的规则,通过语法分析确定整个输⼊串是否构成⼀个语法上正确的程序。
程序的机构通常由递归规则表⽰的。
可⽤以下规则来定义表达式: (1)任何标识符都是表达式。
(2)任何常数(整常数、实常数)是表达式。
C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。
编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。
链接是把目标文件、操作系统的启动代码和用到的库文件进行组织,形成最终生成可执行代码的过程。
过程图解如下:从图上可以看到,整个代码的编译过程分为编译和链接两个过程,编译对应图中的大括号括起的部分,其余则为链接过程。
1.编译过程编译过程又可以分成两个阶段:编译和汇编。
1.1. 编译编译是读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,源文件的编译过程包含两个主要阶段:1.1.1.编译预处理读取c源程序,对其中的伪指令(以# 开头的指令)和特殊符号进行处理。
伪指令主要包括以下四个方面:1)宏定义指令,如# define Name TokenString,# undef等。
对于前一个伪指令,预编译所要做的是将程序中的所有Name用TokenString替换,但作为字符串常量的Name则不被替换。
对于后者,则将取消对某个宏的定义,使以后该串的出现不再被替换。
2)条件编译指令,如# ifdef,# ifndef,# else,# elif,# endif等。
这些伪指令的引入使得程序员可以通过定义不同的宏来决定编译程序对哪些代码进行处理。
预编译程序将根据有关的文件,将那些不必要的代码过滤掉。
3)头文件包含指令,如# include "FileName" 或者# include < FileName> 等。
在头文件中一般用伪指令# define定义了大量的宏(最常见的是字符常量),同时包含有各种外部符号的声明。
采用头文件的目的主要是为了使某些定义可以供多个不同的C源程序使用。
因为在需要用到这些定义的C源程序中,只需加上一条# include语句即可,而不必再在此文件中将这些定义重复一遍。
计算机语言中的编译与解释在计算机科学领域中,编译与解释是两种不同的语言处理方式,它们对计算机语言的理解和执行有着不同的方式和过程。
本文将从编译与解释的定义、原理和应用等方面进行探讨,以帮助读者更好地理解计算机语言的编译与解释。
一、编译与解释的定义1.编译编译是将源代码转换成目标代码的过程。
编译器根据程序员编写的源代码,通过词法分析、语法分析和语义分析等步骤生成目标代码,然后由计算机直接执行目标代码。
编译的过程只需进行一次,生成的目标代码可以反复执行,提高了程序的执行效率。
2.解释解释是将源代码逐行转换成机器码并执行的过程。
解释器将源代码逐行解释为机器码,再通过计算机对机器码一行一行地解释执行。
解释器对源代码的解释和执行是同时进行的,每次执行时都需要将源代码转换成机器码,导致了解释执行的速度较慢。
二、编译与解释的原理1.编译的原理编译的过程包括词法分析、语法分析、语义分析、中间代码生成和代码优化等多个步骤。
- 词法分析:将源代码分解为一个个的词法单元。
- 语法分析:根据语法规则对词法单元进行组合,生成语法分析树。
- 语义分析:对语法分析树进行语义检查,确保程序的合法性。
- 中间代码生成:将高级语言转换为机器无关的中间表示形式。
- 代码优化:对中间代码进行优化,提高程序的执行效率。
- 目标代码生成:将中间代码转换为机器代码,生成目标文件。
2.解释的原理解释的过程包括词法分析、语法分析和执行三个主要步骤。
- 词法分析:将源代码分解为一个个的词法单元。
- 语法分析:根据语法规则对词法单元进行组合,生成语法分析树。
- 执行:解释器逐行解释语法分析树,将源代码直接转换成机器码并执行。
三、编译与解释的应用场景1.编译的应用编译器广泛应用于高级语言编程中,如C、C++、Java等。
编译器将程序员编写的源代码转换成目标代码,并生成可执行文件。
运行程序时只需要执行目标代码,提高了程序的运行效率。
2.解释的应用解释器常见于一些脚本语言的解释执行中,如Python、Perl、Ruby 等。
编译与解释的名词解释编译与解释是计算机科学中两个重要的概念,它们分别指的是两种不同的程序语言执行方式。
编译和解释在计算机领域中扮演着不可或缺的角色,它们分别为不同的编程需求提供了解决方案。
本文将对编译与解释进行名词解释,从而帮助读者更好地理解这两个概念。
一、编译编译是将高级程序语言翻译为机器语言的过程。
在编译过程中,程序员编写的高级语言代码经过编译器的处理,生成对应的机器码。
编译器是一种专门的软件工具,它能够将源代码转变为可执行的二进制文件。
编译的过程实际上分为多个步骤。
首先,编译器对源代码进行词法分析,将代码拆分为一个个的词法单元。
接着,进行语法分析,将词法单元按照程序语法规则进行组织和语义解析。
在这个过程中,编译器会检查代码是否符合语法规范,并进行错误检测,以确保代码的正确性。
接下来,编译器将生成抽象语法树(Abstract Syntax Tree,简称AST),它用于表达源代码中的控制流结构。
最后,编译器将AST转化为机器码,并生成可执行文件。
相较于解释,编译的主要优势在于执行效率。
由于编译器在编译过程中已经将代码转换为机器码,因此执行速度更快。
此外,编译过程将所有的错误检测和优化都在编译阶段完成,从而减少了运行时的错误和负担。
二、解释解释是指在运行过程中逐行地解读程序代码,并逐行执行的过程。
解释器扮演着解释的角色,它将高级语言代码逐行翻译并执行。
与编译不同,解释过程不会生成可执行的二进制文件,而是在运行时进行。
解释的过程相对简单,它直接逐行解析源代码并执行。
解释器通过解析器将源代码转换为中间表示形式,然后进行解释执行。
解释器将逐行解释和执行代码,并在执行过程中实时解析下一行代码。
对于解释执行的语言,代码的修改可以立即生效,而无需重新编译。
相较于编译,解释的主要优势在于开发和调试的便利性。
由于解释器直接执行源代码,程序员可以更容易地进行调试和修改,而无需重新编译整个程序。
此外,解释执行还具有平台无关性,同一份源代码可以在不同的操作系统和硬件平台上运行。
C语言编译过程详解C语言的编译链接过程是要把我们编写的一个C程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。
编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。
链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可执行代码的过程。
过程图解如下:从图上可以看到,整个代码的编译过程分为编译和链接两个过程,编译对应图中的大括号括起的部分,其余则为链接过程。
一、编译过程编译过程又可以分成两个阶段:编译和汇编。
1、编译编译是读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,源文件的编译过程包含两个主要阶段:第一个阶段是预处理阶段,在正式的编译阶段之前进行。
预处理阶段将根据已放置在文件中的预处理指令来修改源文件的内容。
如#include指令就是一个预处理指令,它把头文件的内容添加到.cpp文件中。
这个在编译之前修改源文件的方式提供了很大的灵活性,以适应不同的计算机和操作系统环境的限制。
一个环境需要的代码跟另一个环境所需的代码可能有所不同,因为可用的硬件或操作系统是不同的。
在许多情况下,可以把用于不同环境的代码放在同一个文件中,再在预处理阶段修改代码,使之适应当前的环境。
主要是以下几方面的处理:(1)宏定义指令,如#define a b。
对于这种伪指令,预编译所要做的是将程序中的所有a用b替换,但作为字符串常量的a则不被替换。
还有#undef,则将取消对某个宏的定义,使以后该串的出现不再被替换。
(2)条件编译指令,如#ifdef,#ifndef,#else,#elif,#endif等。
这些伪指令的引入使得程序员可以通过定义不同的宏来决定编译程序对哪些代码进行处理。
预编译程序将根据有关的文件,将那些不必要的代码过滤掉(3) 头文件包含指令,如#include "FileName"或者#include <FileName>等。
c语言运行流程C语言运行流程一、概述C语言是一种通用的高级编程语言,被广泛应用于系统软件开发、嵌入式系统以及科学计算等领域。
了解C语言的运行流程对于学习和使用C语言非常重要。
本文将介绍C语言程序的运行流程,包括编写、编译、链接和执行四个主要阶段。
二、编写在编写C语言程序之前,我们首先需要选择一个合适的集成开发环境(IDE)或者文本编辑器来编写代码。
常用的C语言开发工具有Visual Studio、Code::Blocks、Dev-C++等。
在编写程序时,我们需要使用C语言的语法规则来描述程序逻辑,包括变量、函数、控制结构等。
三、编译编写完C语言程序后,我们需要将其编译为机器语言,使计算机能够理解并执行程序。
编译器是将C语言代码转换为机器语言的工具。
常用的C语言编译器有GCC、Clang等。
编译过程主要包括以下几个步骤:1. 词法分析:将源代码分解为一个个词法单元,如关键字、标识符、运算符等。
2. 语法分析:根据语法规则检查词法单元是否符合语法要求,生成语法树。
3. 语义分析:对语法树进行类型检查和语义规则检查,生成中间代码。
4. 代码优化:对中间代码进行优化,提高程序执行效率。
5. 代码生成:将优化后的中间代码转换为目标机器代码。
四、链接在编译完成后,我们得到了目标机器代码。
然而,大型程序通常由多个源文件组成,这些源文件之间可能会有函数调用和变量引用的关系。
链接器负责将多个目标文件合并成一个可执行文件。
链接过程主要包括以下几个步骤:1. 符号解析:将函数和变量引用与其定义进行关联。
2. 地址重定位:将目标文件中的地址转换为最终的运行地址。
3. 符号决议:解决不同目标文件中相同符号的定义冲突。
4. 生成可执行文件:将链接后的目标代码生成可执行文件。
五、执行链接完成后,我们得到了一个可执行文件。
在运行程序时,操作系统加载可执行文件到内存中,并按照程序的入口点开始执行。
C语言程序的执行过程可以分为以下几个阶段:1. 初始化:为全局变量分配内存并进行初始化。
高级语言源程序执行步骤高级语言源程序是一种用于描述计算机任务的计算机程序。
它是由程序员用高级语言编写的源代码,通常通过编译器转换成计算机可以识别的机器码。
高级语言源程序的执行步骤主要分为源程序编写、编译、链接和执行。
一、源程序编写源程序编写通常是使用一种高级语言(如C++、Java、Python等)来编写程序代码。
编写源程序需要程序员具备一定的计算机编程知识,能够有效地使用编程语言的语法和语言结构。
编写源程序的目的是定义程序的逻辑行为,从而实现特定的计算机任务。
二、编译编译是指将源程序转换成可以在计算机上执行的机器码。
编译器是用于执行这个任务的软件,它的任务是将源程序翻译成对应的机器语言。
编译过程通常分为预处理、编译、汇编和链接。
下面是每个阶段的主要任务:1.预处理阶段预处理阶段用于处理程序中的预处理器指令,如#include和#define指令,以及将所有源文件合并成一个文件。
预处理的结果是一个有经过修改的源代码文件集合。
这个集合包含了应用程序中的所以库文件和头文件。
2.编译阶段编译阶段将源代码(包括预处理的结果)转换成汇编语言,即低级语言,在这个阶段,将源代码翻译为汇编语言的过程被称为编译。
编译的结果是可以在计算机上执行的可执行文件。
这个过程的结果通常被称为目标文件。
3.汇编阶段汇编阶段将汇编代码翻译成二进制指令,然后将这些指令组织成可执行代码,并将这些代码保存在目标文件中。
总的来说,这个阶段的任务是将汇编代码翻译成可执行文件。
4.链接阶段链接阶段将各个目标文件和库文件组合成一个单一的可执行文件。
在这个阶段,一些符号(例如函数、变量和常量)被解析,这些符号可能定义在程序中,也可能在库文件中定义。
链接的结果是一个可在计算机上执行的可执行文件。
三、执行执行是指在计算机上运行程序的过程。
当计算机启动程序时,它会加载程序到内存中,并将程序执行指针设置为程序的入口点。
程序会按照预定义的流程进行执行,直到最后结束。
编译原理文字总结编译原理文字总结1.高级程序设计语言的翻译主要有两种方式:编译和解释。
2.编译过程概述:(1)词法分析:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词(亦称单词符号或符号)如基本字,标识符,常数,算符和界符。
(2)语法分析:在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单位(语法范畴),如短语,子句,句子,程序段和程序等(3)语义分析与中间代码产生:对语法分析所识别出的各类语法范畴,分析其含义,并进行初步翻译(产生中间代码)。
包括静态语义检查和中间代码的翻译。
(4)优化:对前段产生的中间代码进行加工变换,以期在最后阶段能产生出更为高效(省时间和空间)的目标代码。
(5)目标代码生成:把中间代码(或经优化处理之后)变换成特定机器上的低级语言代码。
编译程序结构框图3.文法是表述语言的语法结构的形式规则。
4.所谓上下文无关文法是这样一种文法,它所定义的语法范畴(或语法单位)是完全独立于这种范畴可能出现的环境的。
一个上下文无关文法G包括四个组成部分:一组终结符号,一组非终结符号,一个开始符号,以及一组产生式。
5.形式上说,一个上下文无关文法G是一个四元式(VT,VN,S,&)其中VT是一个非空有限集,它的每个元素称为终结符号;VN是一个非空有限集,它的每个元素称为非终结符号,VT∩VN=;S是一个非终结符号,称为开始符号;&是一个产生式集合,每个产生式的形式是P→a,其中P属于VN,a属于(VT∪VN)*。
开始符号S至少必须在某个产生式的左部出现一次。
6.推导每前进一步总是引用一条规则(产生式)。
7.假定G是一个文法,S是它的开始符号。
如果Sa,则称a是一个句型(0步或若干步)。
仅含终结符号的句型是一个句子。
文法G所产生的句子的全体是一个语言,将它记为L(G)。
L(G)={a|Sa&a∈VT*}例如终结符号串(i*i+i)是文法(2.1)的一个句子。
编译程序的介绍编译程序属于采用生成性实现途径实现的翻译程序。
它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。
编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。
编译程序词组可以有两种认识。
一、编译程序是一种动作,是根据编译原理技术,由高级程序设计语言编译器翻译成机器语言二进制代码行为。
二、编译程序是动名词,特指生成编译器的软件程序。
编译程序的实现算法较为复杂。
这是因为它所翻译的语句与目标语言的指令不是一一对应关系,而是一多对应关系;同时也因为它要处理递归调用、动态存储分配、多种数据类型,以及语句间的紧密依赖关系。
但是,由于高级程序设计语言书写的程序具有易读、易移植和表达能力强等特点,编译程序广泛地用于翻译规模较大、复杂性较高、且需要高效运行的高级语言书写的源程序。
编译程序的功能编译程序的基本功能是把源程序(高级语言)翻译成目标程序。
但是,作为一个具有实际应用价值的编译系统,除了基本功能之外,还应具备语法检查、调试措施、修改手段、覆盖处理、目标程序优化、不同语言合用以及人-机联系等重要功能。
①语法检查:检查源程序是否合乎语法。
如果不符合语法,编译程序要指出语法错误的部位、性质和有关信息。
编译程序应使用户一次上机,能够尽可能多地查出错误。
②调试措施:检查源程序是否合乎设计者的意图。
为此,要求编译程序在编译出的目标程序中安置一些输出指令,以便在目标程序运行时能输出程序动态执行情况的信息,如变量值的更改、程序执行时所经历的线路等。
这些信息有助于用户核实和验证源程序是否表达了算法要求。
③修改手段:为用户提供简便的修改源程序的手段。
编译程序通常要提供批量修改手段(用于修改数量较大或临时不易修改的错误)和现场修改手段(用于运行时修改数量较少、临时易改的错误)。
④覆盖处理:主要是为处理程序长、数据量大的大型问题程序而设置的。
编译和解释的区别
计算机语⾔发展
(⾼级语⾔分很多种类,在此只写这两种)
计算机不能直接理解⾼级语⾔,⽐如C,Java,JavaScript,只能理解机器语⾔,所以要把⾼级语⾔翻译为机器语⾔。
翻译的⽅式有两种:编译和解释
1.编译
编译程序:将源程序转换为⽬标代码,再让计算机执⾏这个⽬标代码
编译器:将某种编程语⾔写成的源代码(⼀般为⾼级语⾔C,Java等),转换成另⼀种编程语⾔(多为汇编语⾔或机器代码)
编译器⼯作流程:源代码-预处理器-编译器-汇编程序-⽬标代码-连接器-可执⾏⽂件
2.解释
解释程序:直接执⾏源程序,翻译⼀句,执⾏⼀句,不产⽣⽬标代码。
不需要编译,可以直接使⽤,由解释器来负责解释
解释器:把⾼级编程语⾔⼀⾏⼀⾏直接转译运⾏
⼀点基础知识:
汇编语⾔:⽤于单⽚机,微处理器或其他可编程器件的低级语⾔,在不同的设备中,汇编语⾔对应着不同的机器语⾔指令集。
⼀种汇编语⾔只能⽤于⼀种计算机系统结构,可移植性差。
汇编过程:使⽤汇编语⾔编写的源代码,需要通过使⽤相应的汇编程序将他们转换成可执⾏的机器代码,这⼀过程被称为汇编过程。
汇编程序:将汇编语⾔的程序转换为机器语⾔的⽬标程序。
编译程序基本原理随着计算机技术的不断发展,计算机编程也变得越来越重要。
编程语言层出不穷,其中C语言作为一种经典的编程语言,具有广泛的应用。
而编译程序则是将高级语言翻译成机器语言的关键工具。
本文将从编译程序的基本原理入手,从语法分析、语义分析、中间代码生成、代码优化和目标代码生成等方面进行介绍。
一、语法分析语法分析是编译程序的第一步,它的主要任务是将源程序转化成分析树或语法树。
在这个过程中,编译程序需要对输入的字符序列进行词法分析,将其分解成单词,然后对单词进行语法分析,生成语法树。
语法树是一种树形结构,它描述了源程序的语法结构,有助于后续的语义分析。
二、语义分析语义分析是编译程序的第二步,它的主要任务是对语法树进行分析,检查源程序是否符合语义规范。
这个过程包括类型检查、作用域分析和语义错误检查等。
例如,对于一个赋值语句,编译程序需要检查左式和右式的类型是否一致,以及变量是否已经声明过等。
三、中间代码生成中间代码生成是编译程序的第三步,它的主要任务是将源程序转化成中间代码。
中间代码是一种抽象的形式,它将源程序转化成一种类似于汇编语言的形式,但比汇编语言更易于理解。
中间代码生成的好处是可以将源程序与目标机器的硬件细节分离开来,方便后续的代码优化和目标代码生成。
四、代码优化代码优化是编译程序的第四步,它的主要任务是对中间代码进行优化,使得生成的目标代码更加高效。
代码优化的目标是通过改变代码结构、删除无用的代码、重组代码块等方式,使得程序的执行效率更高,同时保持程序的正确性。
五、目标代码生成目标代码生成是编译程序的最后一步,它的主要任务是将中间代码转化成目标机器的机器语言代码。
这个过程中需要考虑到目标机器的指令集和寻址方式等细节。
目标代码生成的结果是可执行的目标代码,可以被计算机直接执行。
编译程序是将高级语言翻译成机器语言的重要工具。
它的基本原理包括语法分析、语义分析、中间代码生成、代码优化和目标代码生成等步骤。
高级语言编译过程
高级语言是为了简化人类对计算机进行指令输入的语言。
然而,计算机无法识别这些
高级语言。
因此,高级语言需要通过编译器进行编译成机器语言,以便计算机能够读取和
执行程序。
该过程详细介绍如下。
高级语言编译过程的第一步是编写高级语言程序。
编写高级语言程序是编程过程的首
要任务。
在编写程序时,程序员将使用高级语言构建程序,该程序然后将被编译成计算
机语言。
这个过程中有几个步骤:
1. 分析语言:程序员使用高级语言来写程序。
语言本身具有规则、标准,需要被程
序员遵循。
2. 解析(Parsing): 在完成解析之后,高级语言程序就成为了计算机可读的中间代码。
解析器将程序作为输入,并且以一种类似树形的结构存储该程序的结构及其内容。
3. 语法检查:语法检查器检查代码的有效性和规则性。
5. 代码生成:将所写的高级语言代码翻译为低级的代码,可以通过链接器生成可执
行文件。
6. 优化:编译过程还可以进行性能调优,以提高代码的效率。
在接下来的编译过程中,编译器会对程序进行编译,调试和优化,以生成可执行程序,使程序能够被计算机解释和执行。
编译器自动完成以下的工作:
1. 词法分析:将源代码转换为一个单词序列。
3. 代码生成:将分析树转化为目标代码。
4. 目标代码生成:生成可执行文件。
在编译过程中,编译器会检查代码的语义错误,包括类型错误、作用域错误和语义不
一致等,以确保程序能够正确执行。
编译器还可以通过执行代码优化来提高程序的性能。
总的来说,编译器是将高级语言转换为计算机语言的工具。
编译过程包括了词法分析,语法分析,语法检查,语义检查,代码生成和代码优化等不同阶段。
通过这些步骤,高级
语言代码被编译成可执行文件,可以被计算机执行。