精华内容
下载资源
问答
  • 编译程序分类

    2013-04-17 18:04:16
    如同存在粉形形色色的程序设计语言一样,也存在着各种各样的编译程序。根据不同的川途和侧峨面.编译程序可以分成如下儿类。  1.诊断型编译程序  这类编译程序专门用于帮助程序的开发和调试,它们系统地分析程序...
        如同存在粉形形色色的程序设计语言一样,也存在着各种各样的编译程序。根据不同的川途和侧峨面.编译程序可以分成如下儿类。
    
        1.诊断型编译程序
        这类编译程序专门用于帮助程序的开发和调试,它们系统地分析程序,发现程序中的错误.钾能地校正一些错误,如关键字拼写错误、匹配括号的遗瀚。有些诊断型编泽程序可以
    模拟程序的运行.发现目标程序运行时可能产生的错误。由于诊断型编译需要占用计算机的存储和计算资茸.故通常只用在程序开发的初始阶段。
        2.优化型绷译程序
        这类编译程序粉重于提高月标代码的时空效率,使得产生的目标代码既占用较少的存储空间.又运行得快。然而.这些月标住住是相互矛质的。一般情况下.要程序运行得快就要占用较多的存储空间.反之亦然。例如,对使用倾率较高的变t.可以把它们放在寄存器中以减少存取时间,但是在过程或的数两用时又需要保护和恢复这些寄存器.倾外需要更多的时间,因此,对目标程序的优化是一个折中的过程。很多优化型编译程序提供参数设置.允许用户选择不同的目标.以合理的代价获得期望的优化效果。
        3.交叉型幼译程序
        运行目标程序的计算机通常和运行编译程序的计算机的里号相同。但是.例如鑫宇宙、手机、汽车等设备L运行的嵌人式应用软件.飞船、手机、汽车等设备L运行暇发,经过编译、运行和侧试之后.一般是在另外类型的计算机上设计和开友,毅过编泽、运行和侧试之后,再经过一次编译产生出在上述设备上可以运行的目标代码这类编译程序称为交X型编译粗序.
    4.可变目标理编译程序
      一个编译程序通常是为一个特定的程序设计语言和一类特定的目标计算机而设计的.生成的日标代码只能在特定类必的计算机上运行。同一种编程语言在其他不同类型的计算机l:运行时,盅要或新开发编译程序。利川编译前端和后端的技术,可以设汁与目标机无关的编译程序.利用编译后端就叮以改变n标计算机,这样编译方便移杭.这类编译程序称为可变目标硕编译程序。
    展开全文
  • 自己去年上模式识别课程的时候,对SVM分类器很感兴趣,遂使openCV的SVM分类器以及libSVM公开库提供的工具,只做了一个SVM应用程序程序可自由选取一副图像,自己从中采集样本点,然后一键给出分类结果。分类结果...
  • 编译程序总体结构

    千次阅读 2019-10-25 23:53:30
    文章目录编译程序总体结构1、词法分析2、语法分析3、语义分析4、中间代码生成4、中间代码生成5、代码优化与机器无关的优化与机器有关的优化6、目标代码生成7、表格管理8、错误处理9、模块分类 1、词法分析 词法...

    编译程序总体结构

    在这里插入图片描述

    1、词法分析

    在这里插入图片描述
    词法分析由词法分析器(Lexical Analyzer)完 成,词法分析器又称为扫描器(Scanner)
    词法分析器从左到右扫描组成源程序的字符 串,并将其转换成单词(记号—token)串;同 时要:查词法错误,进行标识符登记——符 号表管理。
    输入:字符串
    输出:(种别码,属性值)——序对

    • 属性值——token的机内表示

    2、语法分析

    语法分析由语法分析器(Syntax Analyzer)完成,语 法分析器又叫Parser。

    功能:

    • Parser实现“组词成句” :将词组成各类语法成分:表达式、因子、项,语句,子程序…
    • 构造分析树
    • 指出语法错误
    • 指导翻译

    输入:token序列
    输出:语法成分

    在这里插入图片描述

    3、语义分析

    语义分析(semantic analysis)一般和语法 分析同时进行,称为语法制导翻译 (syntax-directed translation)

    功能:分析由语法分析器识别出来的语 法成分的语义

    • 获取标识符的属性:类型、作用域等
    • 语义检查:运算的合法性、取值范围等
    • 子程序的静态绑定:代码的相对地址
    • 变量的静态绑定:数据的相对地址

    4、中间代码生成

    中间代码(intermediate Code)

    波兰表示问题——Lukasiewicz1929年发明

    1. 中缀表示(Infix notation):(a+①b)*(-c+②d)+③e/f
    2. 波兰表示(Polish / Prefix / Parenthesis-free / Lukasiewicznotation)
      • ——也就是前缀表示 +③*+①a b+②@cd/ef
    3. 逆波兰表示(Reverse Polish / Suffix / Postfix notation)
      • ——也就是后缀表示 a b +①c@ d +②*ef/+ ③运算顺序从左向右

    中间代码的特点:

    • 简单规范
    • 与机器无关
    • 易于优化与转换

    5、代码优化

    代码优化(optimization)是指对中间代码进 行优化处理,使程序运行能够尽量节省存 储空间,更有效地利用机器资源,使得程 序的运行速度更快,效率更高。当然这种 优化变换必须是等价的。

    • 与机器无关的优化
    • 与机器有关的优化

    与机器无关的优化

    局部优化 :

    • 常量合并:常数运算在编译期间完成,如8+9*4
    • 公共子表达式的提取:在基本块内进行的

    循环优化:

    • 强度削减 ==>用较快的操作代替较慢的操作
    • 代码外提 ==>将循环不变计算移出循环

    与机器有关的优化

    寄存器的利用

    • 将常用量放入寄存器,以减少访问内存的次数

    体系结构

    • MIMD、SIMD、SPMD、向量机、流水机

    存储策略

    • 根据算法访存的要求安排:Cache、并行存储体 系——减少访问冲突

    任务划分

    • 按运行的算法及体系结构,划分子任务(MPMD)

    6、目标代码生成

    将中间代码转换成目标机上的机器指令代码 或汇编代码

    • 确定源语言的各种语法成分的目标代码结构 (机器指令组/汇编语句组)
    • 制定从中间代码到目标代码的翻译策略或算法

    目标代码的形式

    • 具有绝对地址的机器指令
    • 汇编语言形式的目标程序
    • 模块结构的机器指令(需要链接程序)

    7、表格管理

    管理各种符号表(常数、标号、变量、过程、 结构……),查、填(登记、查找)源程序 中出现的符号和编译程序生成的符号,为 编译的各个阶段提供信息。

    • 辅助语法检查、语义检查
    • 完成静态绑定、管理编译过程

    Hash表、链表等各种表的查、填技术

    “数据结构与算法”课程的应用

    8、错误处理

    进行各种错误的检查、报告、纠正,以及相 应的续编译处理(如:错误的定位与局部化)
    词法:拼写……
    语法:语句结构、表达式结构……
    语义:类型不匹配、参数不匹配……

    9、模块分类

    分析:词法分析、语法分析、语义分析
    综合:中间代码生成、代码优化、目标 代码生成
    辅助:符号表管理、出错处理
    8项功能对应8个模块

    展开全文
  • 其理论基础坚实,其形式化系统不仅用于编译程序,还大量用于人工智能、多媒体技术、数据库等领域。 程序设计语言 低级程序语言 特定的计算机系统所固有的语言 即:机器语言、汇编语言 特点:执行效率高、编制效率...
    编译原理的地位
    • 是软件技术的基础
    • 是计算机专业的基础课程,是专业必修课
    编译原理的作用
    • 编译原理是介绍如何将高级语言程序变换成低级语言程序的方法。
    • 其理论基础坚实,其形式化系统不仅用于编译程序,还大量用于人工智能、多媒体技术、数据库等领域。
    程序设计语言
    低级程序语言
    • 特定的计算机系统所固有的语言
    • 即:机器语言、汇编语言
    • 特点:执行效率高、编制效率低
    高级程序语言
    • 与自然语言比较接近的语言
    • 过程式语言:C, Pascal, Fortran,
    • ADA 对象式语言:Java, C++ 等
    • 函数式语言:LISP
    • 逻辑式语言:Prolog
    • 特点:执行效率低、编制效率高

    1.1 什么是编译程序

    一、编译程序(又称“编译器”)
    • 是语言的翻译器
    • 功能:高级语言的源程序低级语言的目标程序
    • 重要性:使编程者不必考虑与机器有关的细节
    • 本课程主要研究:顺序过程式语言的编译原理和技术
    二、高级语言程序的处理过程

    在这里插入图片描述

    三、编译程序的分类
    • 一趟编译
    • 多趟编译
    • 具有调试、优化功能的编译

    都使用相同的基本编译技术!!

    四、编译程序的历史和发展
    1. 20世纪50年代早期:将计算公式翻译成机器码
    2. 20世纪50年代中期:出现了FORTRAN等一批高级语言
      (也就出现了相应的编译程序)
    3. 20世纪50年代后期:出现了编译程序的编译程序
      (即编译程序的自动生成工具,如:LEX、YACC)
    4. 20世纪60年代:用自展技术构造编译程序
      (用被编译语言书写其自身的编译程序,1971年PASCAL的成功)
    5. 并行技术与并行语言的发展:——发展方向
      并行语言的并行编译
      自动并行编译技术(将串行程序转换成并行程序)

    1.2 编译过程和编译程序的结构

    一、编译过程

    在这里插入图片描述

    1 词法分析

    任务:
    从左到右读入源程序的每个字符,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(也叫单词符号符号)。
    单词是具有独立意义的最小语法单位。
    如:标识符保留字(关键字或基本字)、算符界符常数等。

    例. 某源程序片断如下:

    begin
        var  sum , first , count : real ;
        sum := first + count * 10
    end.
    
    • 保留字 begin
    • 保留字 var
    • 标识符 sum
    • 逗号 ,
    • 标识符 first
    • 逗号 ,
    • 标识符 count
    • 冒号 :
    • 保留字 real
    • 分号 ;
    • 标识符 sum
    • 赋值号 :=
    • 标识符 first
    • 加号 +
    • 标识符 count
    • 乘号 *
    • 整数 10
    • 保留字 end
    • 界符 .
    2 语法分析

    任务:

    • 依据语言的语法规则,确定源程序的输入串是否构成一个语法上正确的程序。
    • 最终将单词序列分解成各类语法短语(也叫语法单位),如“程序”、“语句”、“表达式”等。

    语法:由程序语言基本符号组成程序中各个语法成分的一组规则。

    • 一般语法规则 :由单词符号构成语法成分的规则;
    • 词法规则 :由基本符号构成的符号书写规则。
      在这里插入图片描述
      在这里插入图片描述
    程序结构的递归表示

    表达式的表示
    1)任何标识符是表达式。
    2)任何常数(整常数、实常数)是表达式。
    3)若表达式1和表达式2都是表达式,那么
    表达式1+表达式2
    表达式1*表达式2
    (表达式1)

    都是表达式。
    语句的表示:
    1)标识符:=表达式 是语句
    2)while (表达式) do 语句 是语句
    3)if(表达式) then 语句 else 语句 是语句

    3 语义分析

    任务:审查源程序有无语义错误,为代码生成阶段收集类型信息
    主要功能:类型检查、报语义错误、类型转换等

    语义:是程序设计语言中按语法规则构成的各个语法成分的意义。

    • 静态语义:编译时刻即可确定的语法成分含义。
    • 动态语义:运行时刻才能确定的语法成分含义。

    在这里插入图片描述

    4 中间代码生成

    任务:
    在语法和语义分析之后,将源程序变成一种“内部表示形式”。
    中间代码:一种结构简单、含义明确的记号系统。
    特征:
    1)结构简单、含义明确
    2)复杂性介于源语言和机器语言之间
    3)容易生成;
    4)容易将它翻译成目标代码。
    四元式:
    (运算符,运算对象1,运算对象2,结果)
    四元式例子

    5 代码优化

    任务:对中间代码进行变换或改造,使之更为高效(时间、空间)。
    代码优化

    6 目标代码生成

    任务:
    把中间代码变换成特定机器上的绝对指令代码或可重定位的机器指令代码汇编指令代码
    特点:
    1)与硬件系统结构和指令含义有关,涉及到硬件系统功能部件的运用、机器指令的选择、各种数据类型变量的存储空间分配以及寄存器和后缓寄存器的调度等。
    2)高级语言低级语言转换是基于语义的等价变换,不是结构上的变换。
    在这里插入图片描述

    表格管理

    任务:用于保存源程序的各种信息。因为上述各阶段工作均需要查找、更新、构造表格。

    出错处理

    任务:报告源程序中错误的性质、地点,将错误所造成的影响限制在尽可能小的范围。有些编译程序还可以自动纠错。
    一个程序是正确的,包括两层含义:
    1)书写正确(合乎语法规则)
    2)含义正确(合乎语义规则)

    注意
    多数实用的编译程序都采用以上几个阶段的工作过程。
    有些编译程序没有“中间代码生成”和“代码优化”

    二、编译程序的结构

    在这里插入图片描述

    三、编译阶段的组合

    前端:主要依赖于源语言而与目标机器无关的编译阶段。如:词法分析、语法分析、语义分析、中间代码生成、部分代码优化、与前端有关的出错处理工作和表格管理工作。

    后端:依赖于目标机而一般不依赖于源语言,只与中间代码有关的编译阶段。如:目标代码生成,以及相关出错处理和表格处理。

    遍(趟):对源程序或其等价的中间语言程序从头到尾扫视并完成规定任务的过程。每一遍扫视可完成编译的一个阶段或多个阶段工作。

    • 多遍编译:占内存少,逻辑结构清晰,耗时长
    • 一遍编译:占内存多,逻辑结构不清晰,耗时短

    1.3 解释程序和一些软件工具

    一、解释程序

    接受高级语言程序,并立即运行这个源程序。
    例如:BASIC语言解释程序,LISP解释程序,SQL解释程序,Java语言中的BYTECODE解释程序
    在这里插入图片描述

    二、解释程序与编译程序的比较

    在这里插入图片描述
    编译与解释的根本区别是否生成目标代码

    三、解释程序的优、缺点

    优点:可移植性较好。
    缺点:(1)速度慢
    (2)空间开销大

    有些语言既有编译程序,又有解释程序。如java

    四、处理源程序的软件工具

    1 语言的结构化编辑器
    正文编辑、修改
    对源程序正文进行分析(检查用户输入是否正确、自动提供关键字、检查括号的匹配情况)

    2 语言程序的调试工具
    了解程序执行的结果与编程人员的意图是否一致
    允许用户一行一行跟踪程序,查看变量值的变化

    3 程序格式化工具
    分析源程序,并使程序结构变得清晰可读(如缩排)

    4 语言程序测试工具
    静态分析器:不运行源程序,就可以发现其中潜藏的错误或异常。
    动态分析器:对源程序进行分析,把记录和显示程序执行轨迹的语句或函数插入源程序,将运行结果与期望结果进行比较和分析。

    5 程序理解工具
    对程序进行分析,确定模块间的调用关系,并画出控制流程图。

    6 高级语言之间的转换工具
    将一种高级语言程序转换成另一种高级语言程序

    1.4 程序设计语言范型

    一、强制式语言(过程式语言、命令式语言)

    由一系列的语句组成,每个语句的执行引起若干存储单元中值的改变。
    如:C,Fortran,Pascal

    二、函数式语言(应用式语言)

    从前面已有的函数出发构造出更复杂的函数。
    Function n(…Function 2(Function 1(data))…)
    如:ML,LISP

    三、基于规则的语言(基于逻辑的语言)

    检查一定的使能条件,当它满足时,则执行适当的动作。
    条件---->动作
    如:PROLOG

    四、面向对象语言

    提供抽象数据类型,支持封装性、继承性和多态性。
    如:Ada,C++,Java

    练习

    在这里插入图片描述
    答案:ACAC
    在这里插入图片描述
    答案:BD
    在这里插入图片描述
    答案:BDAC
    在这里插入图片描述
    答案:
    (1)词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成。
    (2)表格管理
    (3)出错处理
    在这里插入图片描述
    答案:CB
    在这里插入图片描述
    答案:BCE
    在这里插入图片描述
    答案:(1)表格处理和出错处理
    (2)中间代码生成(3) 代码优化
    (4)单词 (5)语法错误
    在这里插入图片描述
    答案:ABD
    在这里插入图片描述
    答案:ABCF
    因为代码优化是为了提高目标程序的质量,不是必须的,没有优化源程序一样能够转化为目标代码。而中间代码生成是为代码优化服务的,没有代码优化的编译器可以直接生成目标代码。
    在这里插入图片描述
    答案:BCD
    在这里插入图片描述
    答案:(1)B E (2) D (3) B

    12、判断:“含有代码优化的编译器的执行效率高”。

    答案:错。含有代码优化的编译器,其优化是指对生成的目标代码进行了优化,而不是编译器本身得到了优化,所以,它提高的是目标代码的执行效率,而不是编译器本身的执行效率。

    13. 判断:“解释方式与编译方式的区别在于解释程序对源程序没有真正进行翻译”。
    答案:错。编译方式和解释方式实际上都进行的翻译,只是编译相当于笔译,而解释相当于口译。 解释方式下,不将于源程序彻底翻译成目标代码,而是每读入一条语句,将其翻译成中间代码,解释其含义并执行,然后再读入下一条语句,再翻译执行。 编译方式和解释方式的根本区别在于“是否生成了目标代码”

    展开全文
  • 解释程序和编译程序的区别

    万次阅读 2014-11-06 10:28:16
    解释程序和编译程序的区别  2011-09-12 20:53:31| 分类: 笔试面试 | 标签:解释程序 编译程序  |举报 |字号 订阅 以下部分转载自:...

    解释程序和编译程序的区别  

    2011-09-12 20:53:31|  分类: 笔试面试 |  标签:解释程序  编译程序   |举报 |字号 订阅


    解释程序也称为解释器,它或者直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再加以执行;

    编译程序(编译器)则是将源程序翻译成目标语言程序,然后在计算机上运行目标程序。

    两种语言处理程序的根本区别是:在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程,而在解释方式下,解释程序和源程序(或某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。

    解释器翻译源程序时不生成独立的目标程序,而编译器则将源程序翻译成独立的目标程序。


    以下的内容转载自:

    http://zhidao.baidu.com/question/76340280

    首先,汇编语言是一种语言,一种低级语言,和C,C++,VB......是一样的,和编译、解释不是一个概念;  关于解释程序 和编译程序的解释和关系如下:  A、解释程序   所谓解释程序是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。这种工作方式非常适合于人通过终端设备与计算机会话,如在终端上打一条命令或语句,解释程序就立即将此语句解释成一条或几条指令并提交硬件立即执行且将执行结果反映到终端,从终端把命令打入后,就能立即得到计算结果。这的确是很方便的,很适合于一些小型机的计算问题。但解释程序执行速度很慢,例如源程序中出现循环,则解释程序也重复地解释并提交执行这一组语句,这就造成很大浪费。   B、编译程序   这是一类很重要的语言处理程序,它把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机去执行这个目标程序,得到计算结果。   编译程序工作时,先分析,后综合,从而得到目标程序。所谓分析,是指词法分析和语法分析;所谓综合是指代码优化,存储分配和代码生成。为了完成这些分析综合任务,编译程序采用对源程序进行多次扫描的办法,每次扫描集中完成一项或几项任务,也有一项任务分散到几次扫描去完成的。下面举一个四遍扫描的例子:第一遍扫描做词法分析;第二遍扫描做语法分析;第三遍扫描做代码优化和存储分配;第四遍扫描做代码生成。   值得一提的是,大多数的编译程序直接产生机器语言的目标代码,形成可执行的目标文件,但也有的编译程序则先产生汇编语言一级的符号代码文件,然后再调用汇编程序进行翻译加工处理,最后产生可执行的机器语言目标文件。   在实际应用中,对于需要经常使用的有大量计算的大型题目,采用招待速度较快的编译型的高级语言较好,虽然编译过程本身较为复杂,但一旦形成目标文件,以后可多次使用。相反,对于小型题目或计算简单不太费机时的题目,则多选用解释型的会话式高级语言,如BASIC,这样可以大大缩短编程及调试的时间。
    展开全文
  • 词法分析程序又称词法分析器或扫描器,是编译程序的基本子过程之一。 3.1 词法分析程序的功能及实现方案 词法分析程序的功能是:扫描源程序字符,按语言的词法规则识别出各类单词符号(Token),并将有关字符组合...
  • 图1 编译程序的逻辑结构
  • 第一步,用一个编译程序把高级语言翻译成机器语言程序; 第二步,运行所得的机器语言程序求得计算结果。 1.几种基本的翻译程序 1.1翻译程序 通常所说的翻译程序是指这样的一个程序,它能够把某一种语言程序(称为源...
  • 编译程序和操作系统

    千次阅读 2011-08-24 10:46:13
    和很多程序员一样,编译器到目前为止对我还存在一些让我迷惑的地方。比如编译器与操作系统的关系,编译器与CPU的关系,动态链接器从哪查找共享库...第二是编译过程变得越来越复杂[注],一支编译器支持多种程序语言、支
  • 编译程序与操作系统的关系

    千次阅读 2018-11-28 14:39:09
    和很多程序员一样,编译器到目前为止对我还存在一些让我迷惑的地方。比如编译器与操作系统的关系,编译器与CPU的...让人困惑的原因有几,第一是编译器的功能角色特殊,编译器是生成程序程序;第二是编译过程变...
  • VC++编译程序时未加载PDB文件

    千次阅读 2018-09-30 11:31:22
    个人分类: 嵌入式 点菜单栏上【调试】,选择【选项和设置】;右边勾上 【启用源服务器支持】;选择左边点【 符号】,将右侧【把Microsoft符号服务器】打勾;并且点击【加载所有符号】;重新编译工程文件,就会从...
  • 上篇我们介绍了什么是编译程序,简单提到了这个“工厂”工作的六个阶段。本篇介绍一下这六个阶段。 “工厂”导航图(翻译工作的过程):
  • 1.疑问: 编译程序和操作系统到底是什么关系??? 编译程序与操作系统的关系 作者: keminlau 发布时间: 2010-08-31 16:49 阅读: 3086 次 推荐: 1 原文链接 [收藏]  和很多程序员一样,编译器到...
  • 编译原理》笔记整理

    千次阅读 多人点赞 2021-03-16 09:53:58
    编译原理 笔记整理 1.1 《编译原理》引论 基本概念——发展 机器语言 汇编语言 ...编译程序分类: 诊断编译程序&优化编译程序 交叉编译程序&可变目标编译程序运行 基本概念——解释程序
  • Java编译分类:前端编译和后端编译

    千次阅读 2018-01-06 12:13:59
    Java程序代码需要编译后才能在虚拟机中运行,编译涉及到非常多的知识层面:编译原理、语言规范、虚拟机规范、本地机器码优化等;了解编译过程有利于了解整个Java运行机制,不仅可以使得我们编写出更优秀的代码,而且...
  • C语言常见编译错误分类及其解决方案

    千次阅读 多人点赞 2019-10-19 22:31:39
    分析:程序错误地调用或引用结构体、共用体、类的成员 error C2041: illegal digit ‘x’ for base ‘n’ 中文对照:(编译错误)对于n进制来说数字x非法 分析:一般是八进制或十六进制数表示错误,例如“int ...
  • 行业分类-设备装置-自动改进程序编译中的并行处理的方法及其系统
  • 在上一篇博客中,笔者提到了对caffe分类程序的工程化,那么本篇博客笔者就来实践一下对caffe分类的工程化。  首先进行一下需求分析:在工程中,往往是用一张图片作为输入,并返回该输入图片的分类结果,也就是说,...
  • 行业分类-作业装置-一种基于多异构执行体控制器的多变体用户程序编译方法.7z
  • ARM交叉编译工具链分类说明

    万次阅读 多人点赞 2018-09-03 15:52:25
    交叉编译通俗地讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程序,比如在PC平台(X86 CPU)上编译出能运行在以ARM为内核的CPU平台上的程序编译得到的程序在X86 CPU平台上是不能运行的,必须放到...
  • 编译概述与引论

    千次阅读 2016-07-20 20:02:08
    本博文中,介绍编译程序的基本概念,概述编译过程和编译程序结构,编译程序和程序设计环境以及编译程序的生成过程和构造工具知识。什么叫编译程序通常,我们所说的翻译程序是指这样的一个程序,它能够把某一种语言...
  • 最近几天搞 wxWidgets,由于要同时编译应用程序的 Windows 版本,又懒得在虚拟机里面编译程序,于是想到用交叉编译的方式在 Linux 上编译好 Windows 版本的程序,再用 Wine 或者虚拟机来执行。试了一下,这种方法很...
  • 程序语言可分为5类 1、web page script languages 就是网页代码,比如Html、javascript、Css、Asp、Php、Xml都应该属于此类(照蔡的意思,Html不应该属于anguages的,可能他觉得太简单了吧,不过我觉得Html也应该算...
  • 编译原理——词法分析程序

    万次阅读 2018-03-20 20:32:21
    前言:这是我学习编译原理,课程实验的内容,课程早已结束,现整理发表。 一、实验任务 阅读已有编译器的经典词法分析源程序; 用C或JAVA语言编写一门语言的词法分析器。 二、实验内容 阅读已有编译器...
  • 编译原理-文法的定义与分类

    千次阅读 2020-12-21 19:45:21
    编译原理-文法的定义与分类前言一、文法的定义二、文法的分类0.短语结构语言(PSL)1.上下文有关文法(CSG)2.上下文无关文法(CFG)3.正规文法(RG)三、判断以下文法的类别 前言 语言是一定的群体用来信息交流的工具 ,而...
  • 编译原理】编译原理简单介绍

    万次阅读 多人点赞 2017-05-07 13:27:20
    什么叫编译程序 翻译程序 编译程序 翻译和编译的区别 编译的过程 词法分析 语法分析 语义分析和中间代码的产生 优化 目标代码生成 编译程序的结构 编译程序总框 表格与表格的管理 出错处理 遍 编译的前端与后端 编译...
  • 这是编译原理实验之词法分析程序的代码,实现了从控制台输入程序字符串,预处理字符串并保存到文件以及从文件读取并将单词分类显示。具体请参见我的博客:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 186,568
精华内容 74,627
关键字:

编译程序分类