版权归原作者所有,如有侵权,请联系我们

[科普中国]-COBOL语言编译器

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

COBOL语言,是一种面向过程的高级程序设计语言,主要用于数据处理,是国际上应用最广泛的一种高级语言。COBOL是英文Common Business-Oriented Language的缩写,原意是面向商业的通用语言。COBOL语言编译器是指将COBOL源代码编译转换成机器代码的编译器。编译器首先检查是否有任何语法错误,然后将其转换为机器语言。编译器创建一个称为加载模块输出文件。此输出文件包含0和1形式的可执行代码。

简介COBOL语言编译器是指将COBOL语言编译转换成机器代码的编译器,如cobol85编译器,GNU gfortran95编译器,以及GnuCOBOL编译器,称之为 OpenCOBOL,是 COBOL 编译器。GnuCOBOL编译器有如下特征:完全实现 COBOL无缝集成C;通过了超过 9700 NIST COBOL 85 测试套件和超过500个内部检测;可以直接访问所有C库,甚至是C++ 基础库编译器构建GNU Autotools,甚至是 LLVM clang支持 CGI capable 和 desktop代码集成 Ada, Guile, Lua, Rexx, Javascript, Python 等等

EXEC SQL 预处理器支持 PostgreSQL, Firebird, ODBC, DB2;REPORT SECTION, SCREEN SECTION, FUNCTION-ID 支持;ASCII, EBCDIC, little endian, big endian. A build published for z/OS OMVS/USS编译器信息翻译支持:英语,西班牙语,日语等等完全支持 COBOL 2014 Compiler Directing Facility 特性集。

COBOL语言COBOL语言,其名称来自于通用商业语言(英语:Common Business Oriented Language,又译为面向常规业务型语言/常规商业信息处理语言)的缩写,是最早的高阶编程语言、以及是世界上最早实施标准化的计算机语言之一1。属于编译语言。1959年5月,五角大厦委托葛丽丝·霍普博士领导一个委员会,制定了COBOL语言的标准,并于1961年由美国数据系统语言协会公布。正式发布于1960年4月,称为Cobol-60,最新的版本是Cobol-2002。COBOL最早是以葛丽丝·霍普开发的FLOW-MATIC语言为范本。值得注意的是,葛丽丝·霍普并不是发明COBOL的六人组成员之一。1959 年,在纽约曼哈顿的雪梨荷兰酒店,Jean E. Sammet 和其他 5 位程序员封闭两周,几乎是无昼夜地开发,完成了 COBOL 的大部分设计。1963年,美国国家标准学会进行了标准化,但是ANSI标准很少被遵循;因此,COBOL程序只是部分可移植的。COBOL是一种面向数据处理的、面向文件的、面向过程(POL)的高级编程语言,是一种功能很强而又极为冗长的语言。COBOL适合于具有循环处理周期的环境(例如打印工资支票)以及数据操纵量相当大的环境。COBOL主要应用于商业数据处理领域,对各种类型的数据进行 收集、存储、传送、分类、排序、计算及打印报表、输出图像是它的强项。COBOL语法与英文很接近,即使不懂电脑的人也能看懂程序。强大的文件处理功能,大量的数据通常以文件的形式存储在磁盘上。仅提供了加、减、乘、除及乘方这五种简单的算术运算,因而不适于进行科学计算。未来的COBOL将支持XML等Web时代的新技术。

编译程序编译程序将高级语言书写的程序翻译成等价的机器语言程序或汇编语言程序的处理系统。编译程序以高级语言书写的程序作为输入,称之为源程序;而以机器语言或汇编语言表示的程序作为输出, 称之为目标程序;其最终任务是产生一个可在具体计算机上执行的目标程序。执行目标程序将会按照用户在源程序中所规定的意图,加工初始数据,算出所需的结果,完成所希望的加工任务。源程序中的每个语句与目标程序中的指令通常是一多对应关系,所以编译程序的实现算法较为复杂,但它可以产生高效运行的目标程序,因此编译程序更适合于翻译那些规模较大、结构较复杂、运行时间较长的大型应用程序。编译程序必须分析源程序, 然后综合成目标程序为此,编译程序要在分析阶段建立符号表、 常数表和中间语言程序等数据结构,以便在分析和综合时引用和加工。源程序的分析是经过词法分析、语法分析和语义分析三个步骤完成的,目的是检查源程序的语法和语义的正确性,并把源程序分解成一系列的基本组成成分目标程序的综合通常包括存储分配、代码优化、代码生成等几个步骤, 目的是为源程序的常数、变量、数组等数据结构分配存储空间,重新组织分析阶段产生的基本组成成分,将其综合成高效运行的可执行目标程序。编译程序在逻辑上由分析和综合两大部分组成,并可进一步细分为词法分析、语法分析、语义分析、存储分配、代码优化和代码生成6个相继的逻辑步骤。具体设计和实现编译程序时,通常是按照从头到尾扫视源程序 (或其等价的中间语言程序) 的遍数来规划编译程序的结构,安排相关逻辑步骤的工作。每一遍可以按顺序执行方式或并行调用方式,完成一个或相连几个逻辑步骤的工作。例如,可以把词法分析作为第一遍;语法分析和语义分析作为二遍;存储分配和代码优化作为第三遍;代码生成作为第四遍。反之,为了适应较小的内存空间或提高目标程序质量,也可以把一个逻辑步骤的工作分为几遍去完成。例如,代码优化可划分为代码优化准备和实际代码优化两遍来完成。编译程序采用多少遍的编译结构,应根据机器的规模、程序语言的繁简、编译程序的功能、目标程序的质量、设计人员的多少等具体情况而定。一遍编译程序是一种极端的情况,整个编译程序同时驻留在内存,彼此之间采用调用转接方式连接在一起工作。当语法分

析程序需要新符号时,它就调用词法分析程序;当它识别出某一语法结构时,它就调用语义分析程序。语义分析程序对识别出的结构进行语义检查,并调用“存储分配”和“代码生成”程序生成相应的目标语言的指令序列。

本词条内容贡献者为:

王慧维 - 副研究员 - 西南大学