当前位置:首页 » 编程软件 » 编译程序中必须具有的功能模块

编译程序中必须具有的功能模块

发布时间: 2024-04-21 04:08:00

‘壹’ 编译程序的功能

编译程序的基本功能是把源程序(高级语言)翻译成目标程序。但是,作为一个具有实际应用价值的编译系统,除了基本功能之外,还应具备语法检查、调试措施、修改手段、覆盖处理、目标程序优化、不同语言合用以及人-机联系等重要功能。①语法检查:检查源程序是否合乎语法。如果不符合语法,编译程序要指出语法错误的部位、性质和有关信息。编译程序应使用户一次上机,能够尽可能多地查出错误。②调试措施:检查源程序是否合乎设计者的意图。为此,要求编译程序在编译出的目标程序中安置一些输出指令,以便在目标程序运行时能输出程序动态执行情况的信息,如变量值的更改、程序执行时所经历的线路等。这些信息有助于用户核实和验证源程序是否表达了算法要求。③修改手段:为用户提供简便的修改源程序的手段。编译程序通常要提供批量修改手段(用于修改数量较大或临时不易修改的错误)和现场修改手段(用于运行时修改数量较少、临时易改的错误)。④覆盖处理:主要是为处理程序长、数据量大的大型问题程序而设置的。基本思想是让一些程序段和数据公用某些存储区,其中只存放当前要用的程序或数据;其余暂时不用的程序和数据,先存放在磁盘等辅助存储器中,待需要时动态地调入。⑤目标程序优化:提高目标程序的质量,即占用的存储空间少,程序的运行时间短。依据优化目标的不同,编译程序可选择实现表达式优化、循环优化或程序全局优化。目标程序优化有的在源程序级上进行,有的在目标程序级上进行。⑥不同语言合用:其功能有助于用户利用多种程序设计语言编写应用程序或套用已有的不同语言书写的程序模块。最为常见的是高级语言和汇编语言的合用。这不但可以弥补高级语言难于表达某些非数值加工操作或直接控制、访问外围设备和硬件寄存器之不足,而且还有利于用汇编语言编写核心部分程序,以提高运行效率。⑦人-机联系:确定编译程序实现方案时达到精心设计的功能。目的是便于用户在编译和运行阶段及时了解内部工作情况,有效地监督、控制系统的运行。早期编译程序的实现方案,是把上述各项功能完全收纳在编译程序之中。然而,习惯做法是在操作系统的支持下,配置调试程序、编辑程序和连接装配程序,用以协助实现程序的调试、修改、覆盖处理,以及不同语言合用功能。但在设计编译程序时,仍须精心考虑如何与这些子系统衔接等问题。

‘贰’ PLC有几种编程语言以及它们的特点, 我至今还是弄不明白

plc的编程语言有以下几种:1、梯形图(LD)2、功能块图(FBD)3、顺序功能图(SFC)4、结构化文本(ST)5、指令表(IL)语言类型PLC的用户程序,是设计人员根据控制系统的工艺控制要求,通过PLC编程语言的编制规范,按照实际需要使用的功能来设计的。只要用户能够掌握某种标准编程语言,就能够使用PLC在控制系统中,实现各种自动化控制功能。根据国际电工委员会制定的工业控制编程语言标准(IEC1131-3),PLC有五种标准编程语言:梯形图语言(LD)、指令表语言(IL)、功能模块语言(FBD)、顺序功能流程图语言(SFC)、结构文本化语言(ST)。这五标准编程语言,十分简单易学。梯形图语言梯形图语言是PLC程序设计中最常用的编程语言。它是与继电器线路类似的一种编程语言。由于电气设计人员对继电器控制较为熟悉,因此,梯形图编程语言得到了广泛的欢迎和应用。梯形图编程语言的特点是:与电气操作原理图相对应,具有直观性和对应性;与原有继电器控制相一致,电气设计人员易于掌握。梯形图编程语言与原有的继电器控制的不同点是,梯形图中的能流不是实际意义的电流,内部的继电器也不是实际存在的继电器,应用时,需要与原有继电器控制的概念区别对待。指令表语言指令表编程语言是与汇编语言类似的一种助记符编程语言,和汇编语言一样由操作码和操作数组成。在无计算机的情况下,适合采用PLC手持编程器对用户程序进行编制。同时,指令表编程语言与梯形图编程语言图一一对应,在PLC编程软件下可以相互转换。图3就是与图2PLC梯形图对应的指令表。指令表编程语言的特点是:采用助记符来表示操作功能,具有容易记忆,便于掌握;在手持编程器的键盘上采用助记符表示,便于操作,可在无计算机的场合进行编程设计;与梯形图有一一对应关系。其特点与梯形图语言基本一致。功能模块图语言功能模块图语言是与数字逻辑电路类似的一种PLC编程语言。采用功能模块图的形式来表示模块所具有的功能,不同的功能模块有不同的功能。功能模块图编程语言的特点:功能模块图程序设计语言的特点是:以功能模块为单位,分析理解控制方案简单容易;功能模块是用图形的形式表达功能,直观性强,对于具有数字逻辑电路基础的设计人员很容易掌握的编程;对规模大、控制逻辑关系复杂的控制系统,由于功能模块图能够清楚表达功能关系,使编程调试时间大大减少。顺序功能流程图语言顺序功能流程图语言是为了满足顺序逻辑控制而设计的编程语言。编程时将顺序流程动作的过程分成步和转换条件,根据转移条件对控制系统的功能流程顺序进行分配,一步一步的按照顺序动作。每一步代表一个控制功能任务,用方框表示。在方框内含有用于完成相应控制功能任务的梯形图逻辑。这种编程语言使程序结构清晰,易于阅读及维护,大大减轻编程的工作量,缩短编程和调试时间。用于系统的规模校大,程序关系较复杂的场合。顺序功能流程图编程语言的特点:以功能为主线,按照功能流程的顺序分配,条理清楚,便于对用户程序理解;避免梯形图或其他语言不能顺序动作的缺陷,同时也避免了用梯形图语言对顺序动作编程时,由于机械互锁造成用户程序结构复杂、难以理解的缺陷;用户程序扫描时间也大大缩短。结构化文本语言结构化文本语言是用结构化的描述文本来描述程序的一种编程语言。它是类似于高级语言的一种编程语言。在大中型的PLC系统中,常采用结构化文本来描述控制系统中各个变量的关系。主要用于其他编程语言较难实现的用户程序编制。结构化文本编程语言采用计算机的描述方式来描述系统中各种变量之间的各种运算关系,完成所需的功能或操作。大多数PLC制造商采用的结构化文本编程语言与BASIC语言、PASCAL语言或C语言等高级语言相类似,但为了应用方便,在语句的表达方法及语句的种类等方面都进行了简化。结构化文本编程语言的特点:采用高级语言进行编程,可以完成较复杂的控制运算;需要有一定的计算机高级语言的知识和编程技巧,对工程设计人员要求较高。直观性和操作性较差。

‘叁’ 模块的定义是什么

一、模块的定义:
(一)在程序设计中,为完成某一桐禅敬功能所需的一段程序或子程序;或指能由编译程序、装配程序等处理的独立程序单位;或指大型软件系统的一部分。
模块有各种类型,如单元操作模块(换热器、精馏塔、压缩机等)、计算方法模块(加速收敛算法、最优化算法等)、物理化学性质模块(汽液相平衡计算、热焓计算等)等。
(二)可以组合和变换的标准单元硬件。
模块,又称构件,是能够单独命名并独立地完成一定功能的程序语句的集合(即程序代码和数据结构的集合体)。它具有两个基本的特征:外部特征和内部特征。外部特征是指模块跟外部环境联系的接口(即其他模块或程序调用该模块的方式,包括有输入输出参数、引用的全局变量)和模块的功能;内部特征是指模块的内部环境具有的特点(即该模块的局部数据和程序代码)。
(三)电路中将分立元件组成的电路重新塑封称为模块,如电源模块.他和IC本质上没什么区别.只是一般模块适用于大功率电路,是半集成电路而且内面可能含有IC,而IC刚好是全集成电路.
(四) 在韦氏英文的词典里,“模块”一词的第1条解释是“家具或建筑物里的一个可重用的标准单元”!
(五)在易语言中文编程软件中的一种文件组织形式,主要是将使用频率袭搏较高的代码组织到一起,编译后形成模块文件(扩展名为ec),其他程序编写中可以导入并且调用现成模块中的子程序,节约开发时间,减少重复代码,便于协作开发。

二、相关延展

(一)优点:
1、使得内核更加紧凑灵活.
2、修改内核时, 不必重新编译整个内核.
3、模块可以不依赖于某个固定的硬件平台,即使它依赖于某系统特殊的硬件特点
4、模块的目标代码一旦被链接到内核,它的作用和静态链接的内核目标代码完全等价.所以当调用模块函数时,无须显式的消息传递.
5、截获系统调用.
(二)、缺点:模块机制带来安全上的隐患
1、修改输出符号表.
2、通过修改系统调用,使模块自己隐性.
3、重定向文件操作.
4、修改文件属主.
5、隐藏局慎进程.
6、重定向可执行文件
7、通过修改系统调用sys_socketcall,使得系统在收到指定数据包后打开后门
8、TTY劫持.
9、病毒.
模块也可以叫隔离器,是在自动化控制系统中对各种工业信号进行变送、转换、隔离、传输、运算的一种仪表,可以和各种工业传感器配合,取回参数信号,隔离变送传输,满足企业本地监冖远程数据采集。

‘肆’ PLC是什么

PLC控制系统,全称Programmable Logic Controller,可编程逻辑控制器,是一种专门为在工业环境下应用而设计的数字运算操作的电子装置,其采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算,顺序控制、定时、计数与算术操作等面向用户的指令,并通过数字或模拟式输入及输出控制各种类型的机械或生产过程。是工业控制的核心部分。PLC及其有关的外围设备都应该按易于与工业控制系统形成一个整体,易于扩展其功能的原则而设计。达内教育
想学好PLC编程不是特别容易,必须要经过系统的培训,现在达内培训机构在国内做的比好好,课程设计引进北美先进技术,贴近中国软件企业的实际需求,同时线上有免费的公开课可以进行学习,如果对PLC编程感兴趣可以参加达内的免费公开课进行系统的学习一下。
自上世纪六十年代美国推出PLC控制系统取代继电器控制装置以来,PLC飞速发展,广泛应用于世界各地。 免费试听报名入口随着时代的发展,PLC的功能也不断的发展完善。加之计算机技术、控制技术、网络技术的不断进步和用户需求的不断上升,PLC也相应地在开关量处理基础上添加了模拟量处理及运动控制等多个功能。

‘伍’ 计算机程序开发中都哪些常用的模块呢

包管理库提供了从 L ua 中加载模块的基础库。只有一个导出函数直接放在全局环境中: require。 所有其它的部分都导出在表 package 中。

1.加载一个模块。 这个函数首先查找 package.loaded 表, 检测 modname 是否被加载过。 如果被加载过,require 返回 package.loaded[modname] 中保存的值。 否则,它试着为模块寻找 加载器 。

2.require 遵循 package.searchers 序列的指引来查找加载器。如果改变这个序列,我们可以改变 require 如何查找一个模块。 下列说明基于 package.searchers 的默认配置。
首先 require 查找 package.preload[modname] 。 如果这里有一个值,这个值(必须是一个函数)就是那个加载器。 否则 require 使用 Lua 加载器去查找 package.path 的路径。 如果查找失败,接着使用 C 加载器去查找 package.cpath 的路径。 如果都失败了,再尝试 一体化 加载器 )。
3.每次找到一个加载器,require 都用两个参数调用加载器:modname 和一个在获取加载器过程中得到的参数。 (如果通过查找文件得到的加载器,这个额外参数是文件名。) 如果加载器返回非空值, require 将这个值赋给 package.loaded[modname]。 如果加载器没能返回一个非空值用于赋给 package.loaded[modname], require 会在那里设入 true 。 无论是什么情况,require 都会返回 package.loaded[modname] 的最终值。
4.如果在加载或运行模块时有错误, 或是无法为模块找到加载器,require 都会抛出错误。
一个描述有一些为包管理准备的编译期配置信息的串。 这个字符串由一系列行构成:
第一行是目录分割串。 对于 Windows 默认是 '' ,对于其它系统是 '/' 。
第二行是用于路径中的分割符。默认值是 ';' 。
第三行是用于标记模板替换点的字符串。 默认是 '?' 。
5.第四行是在 Windows 中将被替换成执行程序所在目录的路径的字符串。默认是 '!' 。
第五行是一个记号,该记号之后的所有文本将在构建 luaopen_ 函数名时被忽略掉。 默认是 '-'。
这个路径被 require 在 C 加载器中做搜索时用到。
用于 require 控制哪些模块已经被加载的表。 当你请求一个 modname 模块,且 package.loaded[modname] 不为假时, require 简单返回储存在内的值。
这个变量仅仅是对真正那张表的引用; 改变这个值并不会改变 require 使用
让宿主程序动态链接 C 库 libname 。
5.当 funcname 为 "*", 它仅仅连接该库,让库中的符号都导出给其它动态链接库使用。 否则,它查找库中的函数 funcname ,以 C 函数的形式返回这个函数。 因此,funcname 必须遵循原型 lua_CFunction (参见 lua_CFunction)。
6.这是一个低阶函数。 它完全绕过了包模块系统。和 require 不同, 它不会做任何路径查询,也不会自动加扩展名。 libname 必须是一个 C 库需要的完整的文件名,如果有必要,需要提供路径和扩展名。 funcname 必须是 C 库需要的准确名字 (这取决于使用的 C 编译器和链接器)。
这个函数在标准 C 中不支持。 因此,它只在部分平台有效 ( Windows ,Linux ,Mac OS X, Solaris, BSD, 加上支持 dlfcn 标准的 Unix 系统)。

‘陆’ 编译程序有哪些主要构成成分它们各自的主要功能是什么

编译过程分为分析和综合两个部分,并进一步划分为词法分析、语法分析、语义分析、代码优化、存储分配和代码生成等六个相继的逻辑步骤。这六个步骤只表示编译程序各部分之间的逻辑联系,而不是时间关系。

编译过程既可以按照这六个逻辑步骤顺序地执行,也可以按照平行互锁方式去执行。在确定编译程序的具体结构时,常常分若干遍实现。对于源程序或中间语言程序,从头到尾扫视一次并实现所规定的工作称作一遍。每一遍可以完成一个或相连几个逻辑步骤的工作。

例如,可以把词法分析作为第一遍;语法分析和语义分析作为第二遍;代码优化和存储分配作为第三遍;代码生成作为第四遍。

反之,为了适应较小的存储空间或提高目标程序质量,也可以把一个逻辑步骤的工作分为几遍去执行。例如,代码优化可划分为代码优化准备工作和实际代码优化两遍进行。

(6)编译程序中必须具有的功能模块扩展阅读

从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。执行词法分析的程序称为词法分析程序或扫描器。

源程序中的单词符号经扫描器分析,一般产生二元式:单词种别;单词自身的值。单词种别通常用整数编码,如果一个种别只含一个单词符号,那么对这个单词符号,种别编码就完全代表它自身的值了。若一个种别含有许多个单词符号,那么,对于它的每个单词符号,除了给出种别编码以外,还应给出自身的值。

词法分析器一般来说有两种方法构造:手工构造和自动生成。手工构造可使用状态图进行工作,自动生成使用确定的有限自动机来实现。

编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单位。编译程序的语法规则可用上下文无关文法来刻画。

热点内容
比较图片算法 发布:2024-11-09 10:01:40 浏览:544
车数控编程 发布:2024-11-09 09:53:30 浏览:575
安卓在哪里设置允许广告追踪 发布:2024-11-09 09:51:37 浏览:166
山立压缩机 发布:2024-11-09 09:51:32 浏览:766
海南dns服务器ip 发布:2024-11-09 09:51:30 浏览:425
电脑连线路由器用户名密码多少 发布:2024-11-09 09:46:33 浏览:953
安卓机怎么用语音助手 发布:2024-11-09 09:37:27 浏览:140
hibernate类缓存 发布:2024-11-09 09:37:26 浏览:720
android获得mac 发布:2024-11-09 09:18:11 浏览:504
python读取字符串 发布:2024-11-09 08:43:15 浏览:332