COBOL语言编译器


COBOL语言编译器

文章插图
COBOL语言编译器【COBOL语言编译器】COBOL语言,是一种面向过程的高级程式设计语言,主要用于数据处理,是国际上套用最广泛的一种高级语言 。COBOL是英文Common Business-Oriented Language的缩写,原意是面向商业的通用语言 。COBOL语言编译器是指将COBOL原始码编译转换成机器代码的编译器 。编译器首先检查是否有任何语法错误,然后将其转换为机器语言 。编译器创建一个称为载入模组输出档案 。此输出档案包含0和1形式的可执行代码 。
基本介绍中文名:COBOL语言编译器
外文名:COBOL language compiler
学科:计算机
领域:程式语言
作用:COBOL原始码编译转换成机器代码
有关术语:编译器
简介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,又译为面向常规业务型语言/常规商业信息处理语言)的缩写,是最早的高阶程式语言、以及是世界上最早实施标準化的计算机语言之一 。属于编译语言 。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个相继的逻辑步骤 。具体设计和实现编译程式时,通常是按照从头到尾扫视源程式 (或其等价的中间语言程式) 的遍数来规划编译程式的结构,安排相关逻辑步骤的工作 。每一遍可以按顺序执行方式或并行调用方式,完成一个或相连几个逻辑步骤的工作 。例如,可以把词法分析作为第一遍;语法分析和语义分析作为二遍;存储分配和代码最佳化作为第三遍;代码生成作为第四遍 。反之,为了适应较小的记忆体空间或提高目标程式质量,也可以把一个逻辑步骤的工作分为几遍去完成 。例如,代码最佳化可划分为代码最佳化準备和实际代码最佳化两遍来完成 。编译程式採用多少遍的编译结构,应根据机器的规模、程式语言的繁简、编译程式的功能、目标程式的质量、设计人员的多少等具体情况而定 。一遍编译程式是一种极端的情况,整个编译程式同时驻留在记忆体,彼此之间採用调用转接方式连线在一起工作 。当语法分析程式需要新符号时,它就调用词法分析程式;当它识别出某一语法结构时,它就调用语义分析程式 。语义分析程式对识别出的结构进行语义检查,并调用“存储分配”和“代码生成”程式生成相应的目标语言的指令序列 。