发布网友 发布时间:2022-05-18 19:54
共1个回答
热心网友 时间:2023-08-18 00:14
程序设计语言处理系统主要包括正文编辑程序、宏加工程序、编译程序、汇编程序、解释程序、连接编辑程序、装入程序、编译程序的编译程序、自编译程序、交叉编译程序和并行编译程序等。
正文编辑程序用于创建和修改源程序正文文件。一个源程序正文可以编辑成一个文件,也可以分成多个模块编辑成若干个文件。用户可以使用各种编辑命令通过键盘、鼠标器等输入设备输入要编辑的元素或选择要编辑的文件,正文编辑程序根据用户的编辑命令来创建正文文件,或对文件进行各种删除、修改、移动、复制及打印等操作。
宏加工程序把源程序中的宏指令扩展成等价的预先定义的指令序列。对源程序进行编译之前应先对源程序进行宏加工。
编译程序把用高级语言书写的程序翻译成等价的机器语言程序或汇编语言程序。变异过程可分为分析和综合两个部分。分析部分包括词法分析、语法分析和语义分析三步。分析的目的是检察源程序的语法和语义的正确定,并建立符号表、常数表和中间语言程序等数据对象。综合的目的是为源程序中的常数、变量、数组等各种数据对象分配存储空间,并将分析的结果综合成可高效运行的目标程序。汇编程序把用汇编语言书写的程序翻译成等价的机器语言程序。
解释程序按源程序中语句的动态执行顺序,从头开始,翻译一句执行一句,再翻译一句再执行一句,直至程序执行终止。和编译方法根本不同的是,解释方法是边翻译边执行,翻译和执行是交叉在一起的,而编译方法却把翻译和执行截然分开,先把源程序翻译成等价的机器语言程序,这段时间称为编译时刻,然后再执行翻译成的目标程序,这段时间称为运行时刻。正因为解释程序是边翻译边执行,所以要把源程序及其所处理的数据一起交给解释程序进行处理。
编译方法和解释方法各有优缺点。编译方法的最大优点是执行效率高,缺点是运行时不能与用户进行交互,因此比较适用于些规模较大或运行时间较长或要求运行效率较高的程序的语言,更适用于写机器或系统软件和支撑软件的语言。解释方法的优点是解释执行时能方便的实现与用户进行交互,缺点是执行效率低,因此比较适用于交互式语言。
连接编辑程序将多个分别编译或汇编过的目标程序段组合成一个完整的目标程序。组合成的目标程序可以是能直接执行的二进制程序,也可以是要再定位的二进制程序。
装入程序将保存在外存介质上的目标程序以适于执行的形式装入内存并启动执行。
编译程序的编译程序是产生编译程序的编译程序。他接受用某种适当的表示体系描述的某一语言类中任意语言A的词法规则、语法规则、语义规则和(或)代码生规则,并从这些描述产生出用目标语言B写的关于语言A的全部或部分编译程序。这样便可显著提高编译程序的开发效率。
自编译程序是用被编译的语言即源语言自身来书写的编译程序。利用自变异技术,可以从一具有自编译能力的语言L的一个足够小的子集L0的编译程序出发,逐步构造出L的编译程序,也可从L的未优化的编译程序出发,构造优化的编译程序。
交叉编译程序是一种编译程序,它自身在甲机器上运行,生成的目标代码是乙机器的代码。
并行编译程序是并行语言的编译程序,或是将串行语言程序并行化的编译程序,后者又称为自动并行编译程序。
一个程序特别是中、大规模的程序难免没有错误。发现并排除源程序中的错误是语言处理系统的任务之一。通常源程序的语法错误和静态语义错误都是由编译程序或解释程序来发现的。排错能力的大小是评价编译程序和解释程序优劣的重要标志之一。源程序中的动态语义错误通常要借助于在语言中加入某些排错设施如跟踪、截断来发现和排除。处理排错设施的程序是排错程序。