COBOL语法和文法

COBOL短训总结 文章源自网络,版权归原作者所有.CHAPTER   1 COBOL 概述COBOL 是Common Business Oriented Language 的缩写。它不仅是商业数据处理的理想语言, 而且广泛用于数据管理领域,因此COBOL 语言也被称为“用于管理的语言”。 一。COBOL 语言的特点         最适于数据处理领域:算数计算量少而逻辑处理量多,输入输出量大,数据间存在 阅读详情

REDEFINES
    可以用不同的变量描述同一内存。
    01 PART_RECODE USAGE DISPLAY
      03 PART-TYPE PICTURE...
      03 PART_TYPE_A.
        05 PART_NUMBER PICTURE...
        05 PART_COST PICTURE...
      03 PART_TYPE_B REDEFINES PART_TYPE_A.
        05 UPC_CODE PICTURE...
      03 PART_TYPE_C REDEFINES PART_TYPE_A.
        05 ISBN PICTURE...
    根据PART_TYPE决定用PART_TYPE_A还是PART_TYPE_B还是PART_TYPE_C。
    规则:
        PART_TYPE_B和PART_TYPE_C长度不能大于PART_TYPE_A。
        数据项不能有VALUE。
        01层不能用REDEFINES.
        PART_TYPE_B和PART_TYPE_C中不能有OCCURS.

PICTURE
    定义基本项目的具体长度,格式,数据类型。可以简写成PIC.
    格式字符串最多30个字符,可以包含下列字符:
    A  字母A-Z,a-z,空格
    B  插入空格
    P  标量字符,代表字段中不显示的小数点位置
    S  代数符号,实际显示取决于项目的USAGE
    V  小数点位置
    X  任何字符
    Z  抑制前头的0并转换成空字符
    0  插入0
    9  数字0~9
    /  插入/
    ,  插入,(逗号不能作为字符串的最后一位,最后时逗号是分隔符)
    。 插入。
    *  抑制前头的0并转换成*
    +  正值插入+,负值插入-
    -  正值插入空格,负值插入-
    $  插入美元号
    CR 正值插入两个空格,负值插入CR
    DB 正值插入两个空格,负值插入DB
例子:
    03 VAR PIC AAAAA.    VAR变量长度为5个字符,不能有数字,等价于03 STATE PIC A(5)。
   输入ASDFG ,显示ASDFG
    03 VAR PIC XXXXX.   VAR变量长度为5个任意字符。等价于03 FILLER PIC X(5)。
   输入123AS , 显示123AS
    03 VAR PIC 99/XXX/9999 长度11,输入05may2004,显示05/may/2004
    03 VAR PIC 0ABXXX/9999 长度11,输入05may2004,显示05 may/2004
    03 VAR PIC 9(3) 长度3,0~999之间。
    03 VAR PIC 9(4)V99 长度6,0.00~9999.99之间。
    03 VAR PIC S9(5)V99 长度7,-99999.99~99999.99之间。
    03 VAR PIC 9(6)PPP 长度6,可以是1000,2000,...,999999000。输入1234,显示1000。
    03 VAR PIC PPP999 长度3,0.000001~0.000999之间。输入123,显示0.000123。
    03 VAR PIC ZZZ.99,输入100.50,显示100.50;输入-51.50,显示51.50;
            输入0,显示.00.
    03 VAR PIC $ZZZ.ZZ-,输入100.50,显示$100.50;输入-51.50,显示$51.50-;
            输入0,显示
    03 VAR PIC $***,***.99CR,输入1000,显示$**1000.00;输入-1000,显示$**1000.00CR;
            输入0,显示$***,***.00;输入51.5,显示$***,*51.50
    03 VAR PIC $$$,$$$.99,输入100.50,显示$100.50;输入-100.50,显示$100.50;
            输入0.777,显示$.77;输入0,显示$.00
    03 VAR PIC $.$$$,输入1.00,显示$.00;输入0.65,显示$.65;
            输入0,显示$.00;
    03 VAR PIC $--,输入17.7,显示$17;输入-17.7,显示$-17;
            输入-5,显示$-5
    03 VAR PIC $999.99+,输入100.50,显示$100.50+;输入-100.50,显示$100.50-;
    03 VAR PIC 9(3)B9(3),输入55,显示000 055;输入1000.78,显示001 000;
    03 FILLER PIC X(44),补上44个空位
USAGE 表示基本或组数据的类型。有BINARY,COMPUTATIONAL(COMP),DISPLAY,INDEX,PACKED-DECIMAL.

JUSTIFIED
    03 VAR1 PIC X(5) JUSTIFIED RIGHT.
    03 VAR2 PIC X(5).
    输入XYZ,VAR1显示的是"  XYZ",VAR2显示的是"XYZ  "。

BLANK WHEN ZERO
    03 VAR PIC $999,999.99 BLANK WHEN ZERO .
    当字段值为0,这个项目设置为全部空格。

VALUE
    定义的时候就赋值。
    03 VAR PIC X(5) VALUE "ABCDE".
    01 VAR VALUE ALL SPACES.
      03 VAR1 PIC XXX.
      03 VAR2 PIC XX.

算术语句
    COBOL中操作符执行顺序为:取正(+)、取负(-)最高级,指数操作(**)其次,乘(*)、除(/)再其次,加(+)、减(-)最后。
ROUNDED   舍入操作。
    77 A PIC 9V9 VALUE 9.1.
    77 B PIC 9.
      ADD 0.5 TO A GIVING B ON SIZE ERROR GO TO PROC1.
      ADD 0.5 TO A GIVING B ROUNDED ON SIZE ERROR GO TO PROC2.
      END-ADD.
ON SIZE ERROR 是当语句出现错误时执行的。本例中第一句话执行没有错误,所以ON SIZE ERROR
不执行PROC1.第二句话,当0.5加上9.1得到9.6,因为有ROUNDED,所以执行舍入操作,得到10。而B只有1位数字,所以发生错误,执行ON SIZE ERROR操作,跳转执行PROC2。 
CORRESPONDING(CORR)    数据项同名时编写多条语句。ADD和SUBSTRACT有此选项。
    01 A .
      03 B.
        05 B1 PIC 999V99.
        05 B1 PIC 999V99.
        05 B1 PIC 999V99.
      03 C.
        05 B1 PIC 999V99.
        05 B1 PIC 999V99.
        05 B1 PIC 999V99.
则语句ADD CORR B TO C.相当于执行了下面3条语句。
    ADD B1 OF B TO B1 OF C.
    ADD B2 OF B TO B2 OF C.
    ADD B3 OF B TO B3 OF C.
组项目不一定要格式相同。一个组项目中的内容在另一个组项目中可以没有,数据项顺序也无关紧要。只是严格按照数据项名称对应。
    ADD A,B GIVING C. END-ADD.              将A,B相加放入C。
    SUBTRACT A,B FROM C。END-SUBTRACT.      从C中减去A,B.
    MULTIPLY A BY B GIVING C. END-MULTIPLY. 将A,B相乘放入C。
    DIVIDE A INTO B GIVING C. END-DIVIDE.   将B除于A的结果放入C.
    DIVIDE A BY B GIVING C. END-DIVIDE.     将A除于B的结果放入C.
    DIVIDE A BY B GIVING C REMAINDER D.     将A除于B的商放入C,余数放入D.
    D=A-B*C.
    77 C PIC S99V9.
    77 D PIC S99V9.
    DIVIDE 3 INTO 7 GIVING C REMAINDER D.
    C的值为2.3,D为0.1。(D=7-3*2.3)

COMPUTE
    除了取余操作要用DIVIDE外,其他操作都可以用此语句。本语句求值一个算术表达式,并将结果存放在一个或几个变量中。
COMPUTE  A ROUNDED,B  = X*Y/(N+M)+Z. 将X*Y/(N+M)+Z的结果存放在B中,然后舍入后放入A中。

MOVE
    MOVE A TO B.
    也可以用CORR选项。
    MOVE CORR A TO B.

ACCEPT
    从键盘或其他输入设备读取数据。
    ACCEPT A FROM DEV.    从DEV读取数据到A,也可以省略FROM DEV,表示从键盘读取。
    ACCEPT A FROM DATE/DAY/DAY-OF-WEEK/TIME.读取日期,表示为6个字符,如990909(1999年9月9日)。
    读取当前日期在年度(前2位)中为第几天(后3位),表示为6个字符,如1994年4月1日表示为94091。
    读取当前星期几,表示为1位字符。1表示星期一,7表示星期日。
    读取当前时间,表示为8位字符。精确到毫秒。如下午2:41表示为14410000。

DISPLAY
    将数据写入输出设备。如监视器(monite),系统输出流和操作员控制台(console)。
    DISPLAY AAAAA BBBBB [UPON DEV] [WITH NO ADVANCING]
    如果使用UPON选项,dev要与special-names段中的硬件名相关联。
    如果使用no advancing选项,则输出最后一个字符后输出设备仍然保持原位,使下一条display语句还在该位置显示。否则可能到下一行显示。

INITIALIZE
    初始化数据,数字和数字编辑数据项初始化为0,其他初始化为空格。

INSPECT TALLYING
    计算项目中该字符串出现的次数。
    INSPECT AA TALLYING BB FOR ALL “EE”.  从AA中查找有多少个EE,将个数写入BB。
    INSPECT AA TALLYING BB FOR CHARACTERS BEFORE “E”.  从AA中查找E前面有多少个字符,将个数写入BB。
    INSPECT AA TALLYING BB FOR CHARACTERS AFTER “C” BEFORE “E”.  从AA中查找C后面E前面有多少个字符,将个数写入BB。
    INSPECT AA TALLYING BB FOR LEADING “E”.  从AA中第一个字符开始查找有多少个E,如果没有就结束操作,有就将个数写入BB,直至没有。
    INSPECT AA TALLYING BB FOR LEADING “E” AFTER “C”.  从AA中C后面开始查找有多少个E,如果没有就结束操作,有就将个数写入BB,直至没有。
组合例子:
    77 CS PIC X(9) VALUE "REELWHEEL".
    77 COUNT-0.
    77 COUNT-1.
    77 COUNT-2.
    MOVE 0 TO COUNT-0,COUNT-1,COUNT-2.
    INSPECT CS TALLYING
        COUNT-0 FOR ALL "E",
        COUNT-1 FOR LEADING "W" AFTER "L",
        COUNT-2 FOR CHARACTERS.
    程序首先判断的是字符"R",执行COUNT-0 FOR ALL "E",因为第一个字符不是"E",所以程序转而执行COUNT-1 FOR LEADING "W" AFTER "L",也不符合要求,
    于是程序执行COUNT-2 FOR CHARACTERS,COUNT-2 =1。然后字符串往下一位,判断"E",执行COUNT-0 FOR ALL "E",符合要求,则COUNT-0=1。
    有了满足条件的判断,则余下的判断不再执行,字符串再往下一位,判断"E",则COUNT-0=2。接着判断"L",则COUNT-2 =2。以此类推,最后结果为COUNT-0=4,
    COUNT-1=1,COUNT-2=4。
INSPECT REPLACING
    用另一个字符串替换这个字符串。
    还用上面的例子。
    INSPECT CS REPLACING ALL "E" BY "Y".  结果"RYYLWHYYL"
    INSPECT CS REPLACING CHARACTERS BY "Z" AFTER  "L".  结果"REELZZZZZ"
    INSPECT CS REPLACING LEADING "E" BY "Y".  结果不变
    INSPECT CS REPLACING LEADING "E" BY "Z" AFTER  "H".  结果"REELWHZZL"
    INSPECT CS REPLACING FIRST "E" BY "I".  结果"RIELWHEEL"
    INSPECT CS REPLACING FIRST "EE" BY "00",ALL "WH" BY "TH",CHARACTERS BY SPACE.  结果" 00 TH   "
INSPECT CONVERTING
    就是INSPECT REPLACING的缩写。
    INSPECT CS CONVERTING "EE" TO "00". 也可以加上BEFORE,AFTER。

STRING
    将几个字符串合并成一个字符串。
    STRING A DELIMITED BY SPACE," !" DELIMITED BY SIZE INTO C.假设A中的内容是"HELLO",则结果是"HELLO !".
    DELIMITED BY SPACE意思是碰到空格,或到A的结尾或C的结尾,则合并A字符串结束。
    DELIMITED BY SIZE意思是到" !"的结尾或C的结尾,则合并" !"字符串结束。
    STRING A INTO B POINTER C ON OVERFLOW PROC1 NOT ON OVERFLOW  PROC2.
    将A字符串复制到B中由C开始的地址处。如果C小于1或大于B的长度,或A的长度大于B中C到结尾处的长度,则发生
    OVERFLOW溢出,执行PROC1。

UNSTRING
    将一个字符串中的字符按照要求放入多个变量中。
    UNSTRING AAA [DELIMITED BY [ALL] B [OR [ALL] C] ...] INTO { C [DELIMITER IN D] [COUNT IN E] } ...[WITH POINTER F] [TALLYING IN G] [ON OVERFLOW PROC1] [NOT ON OVERFLOW PROC2] [END-UNSTRING] 
    将AAA中的字符放入C,如果还有其他变量,如C2,则等C放满后放入C2。
    DELIMITED BY和STRING中的作用一样。表示将AAA中到B为止的字符取出。如果有OR,则表示到B或C字符为止的字符取出。如果有ALL,则如果几个相同的B在一起,则认为是一个B。
    DELIMITER IN 将B放入D,知道是哪个字符为分隔符。
    COUNT IN 实际复制到C中的字符数放入E中。
    WITH POINTER 和STRIGN中一样。
    TALLYING IN 计算有几个接受项。访问一个新的接受项,G值加1。
例子:
    03 CITY PIC X(10).
    O3 ZIP  PIC X(10).
    77 TEST PIC X(20).
    MOVE "NEW YORK,NY 10017" TO TEST.
    UNSTRING TEST DELIMITED BY "," INTO CITY,ZIP.
    执行结果CITY值是NEW YORK.ZIP的值是NY 10017。

逻辑和控制语句
    IF (A [NOT] > B) 等价于 IF (A [NOT] GREATER THAN B)
    IF (A [NOT] < B) 等价于 IF (A [NOT] LESS THAN B)
    IF (A [NOT] = B) 等价于 IF (A [NOT] EQUAL TO B)
    IF (A >= B) 等价于 IF (A GREATER THAN OR EQUAL TO B)
    IF (A <= B) 等价于 IF (A LESS THAN OR EQUAL TO B)

    IF (A [NOT] > B AND  C) 表示A [NOT] 大于B 而且 A [NOT] 大于C

    IF A IS [NOT] NUMERIC    数字和可选符号
    IF A IS [NOT] ALPHABETIC A~Z,a~z字符和空格
    IF A IS [NOT] ALPHABETIC-LOWER a~z字符和空格
    IF A IS [NOT] ALPHABETIC-UPPER A~Z字符和空格
    IF A IS [NOT] CLASS-NAME       SPECIAL-NAMES定义的字符集
    例如:SPECIAL-NAMES.
              CLASS MYDEFINE IS "12345+ABCDE-".

    判断变量是否定义了数值。这个变量是88层的,且要与一个数据项关联。
    03 STATE PIC XX.
    88 CON VALUES ARE "A","B","C".
    IF CON ...

    判断厂家定义运行开关的开/关状态。
    SPECIAL-NAMES.
        SWITCH-A ON STATUS IS A-ON ,OFF STATUS IS A-OFF.
    IF A-ON...
    若开关在开位置,则IF A-ON返回TRUE。

    IF A IS [NOT] POSITIVE  判断是否大于0
    IF A IS [NOT] NEGATIVE  判断是否小于0
    IF A IS [NOT] ZERO      判断是否等于0

    COBOL支持NOT ,AND ,OR 操作。

PERFORM
    过程调用,但是不传递参数。
  PERFORM PROC1 [THROUGH PROC2] 
    执行完PROC1再执行PROC2.没有THROUGH(THRU)就只执行PROC1.
  PERFORM PROC1 [THRU PROC2] N TIMES
    执行PROC1[或者还有PROC2]N次。
  PERFORM PROC1 [THRU PROC2] [WITH TEST BEFORE/AFTER] UNTIL A NOT EUQAL 0.
    执行PROC1[或者还有PROC2]直到A不等于0。WITH TEST BEFORE/AFTER指定在第一次执行之前还是之后判断条件。默认是BEFORE,执行之前判断。
  PERFORM PROC1 [THRU PROC2] [WITH TEST BEFORE/AFTER] VARYING A FROM B BY C UNTIL CONDITION1 [AFTER D FROM E BY F UNTIL CONDITION2].
    相当于FOR循环,将A的值从B开始,以C为单位递增,直到满足CONDITION1。AFTER语句是一个嵌套的FOR 循环。VARYING是外循环,AFTER是内循环。A,B可以是索引。

    过程也可以直接写入PERFORM中。但是THROUGH就不好用了。语法如下 :
  PERFORM 过程语句 END-PERFORM.
  PERFORM N TIMES 过程语句 END-PERFORM.
  PERFORM [WITH TEST BEFORE/AFTER] UNTIL CONDITION 过程语句 END-PERFORM.
  PERFORM [WITH TEST BEFORE/AFTER] VARYING A FROM B BY C UNTIL CONDITION1 过程语句 END-PERFORM.

IF语句
  IF CONDITION THEN STATEMENTS1/NEXT SENTENCE ELSE STATEMENTS2 END-IF/NEXT SENTENCE/ENDIF
    NEXT SENTENCE将跳出IF操作语句执行下一条语句。
    IF语句中不要使用.句号。.句号将结束所有IF语句。要结束一个嵌套的IF语句,可以使用END-IF或者NEXT SENTENCE.如
    IF A IF B END-IF ELSE C END-IF.或者
    IF A IF B ELSE NEXT SENTENCE ELSE C END-IF.

EVALUATE
    相当于SWITCH CASE语句。
    EVALUATE A
        WHEN B ...
        WHEN 0 THRU 100 ...(FROM 0 TO 100)
        WHEN OTHER ...
    [END-EVALUATE]
    首先得到A的结果,和WHEN语句的参数比较,如果和B相等,就执行B后的操作,执行完了不再执行后面的WHEN语句。如果不等就执行下一条WHEN语句。如果没有相等的就执行WHEN OTHER语句。
    EVALUATE A ALSO B
        WHEN C ALSO D ...
        WHEN E ALSO F ...
        WHEN OTHER ...
    对于有多个判断条件的,要多个条件同时满足。如上要C=A同时D=B,才执行WHEN语句。

CONTINUE
    继续执行下面的程序。

GO TO
    GO TO PROC1 [DEPENDING ON N] DEPENDING ON N将跳转到清单中的第N个PROC.

EXIT
    一般为最后一句话。

STOP
    STOP RUN  结束程序。

ALTER
    ALTER PROC1 TO PROC2. 不懂什么意思,反正已经从标准中废除了这个语句。

ENTER
    使其他编程语言中的语句可以放进当前源程序中。
    ENTER LANGUAGE-NAME [ROUTINE-NAME]
    LANGUAGE 是厂家指定可以输入COBOL的任何语言,这个语句后面是其他编程语言的语句,然后要用ENTERCOBOL表示返回COBOL语言。
    如果无法将其他语言的程序直接放入,可以用ROUTINE-NAME引用其他语言编写的程序。

编译原理笔记:高级语言及其语法描述 高级语言及其语法描述 程序语言的定义 1、常用的高级程序设计语言 语言 特点 FORTRAN 数值计算 COBOL 事务处理 PASCAL 结构化程序设计 LISP 函数式程序设计 PROLOG 逻辑程序设计 C 系统程序设计 Smalltalk 面向对象程序设计 Java Internet应用,可移植性 Python 解释型 2、程序语言语法... 阅读详情

相关推荐

COBOL经典面试题库(中英文版)

COBOL经典面试题库(中英文版)

shenghuiping2001的专栏 9081

COBOL语言概述

一.COBOL程序的结构 1.部 IDENTIFICATION DIVISION 标识部 ENVIRONMENT DIVISION 环境部 DATA DIVISION 数据部 PROCEDURE DIVISION 过程部 2.节(SECTION)段(PARAGRAPH) (1)部-节-段 (2)标识部下面不设节,直接设段 (3)过程部可以设节,下面再设段,也可以直接设段 3.

sunysl的专栏 3269

COBOL语法文法(2)

ACCEPT    从键盘或其他输入设备读取数据。    ACCEPT A FROM DEV.    从DEV读取数据到A,也可以省略FROM DEV,表示从键盘读取。    ACCEPT A FROM DATE/DAY/DAY-OF-WEEK/TIME.读取日期,表示为6个字符,如990909(1999年9月9日)。    读取当前日期在年度(前2位)中为第几天(后3位),表示为6个字符,如19

张铖@南通 4648

Cobol学习笔记(整理中80%)

01 A03 AA注释:外部文件只有数据结构,没有部节等信息。03 YMD.注释:重定义共享内存地址,一个质变了影响另一个值,不能用在文件节01层,可用在数据单元节01层,层号必须相同,长度相同,重定义子句不能赋初值。

m0_65939803的博客 6446

COBOL 学习4 语法文法

COBOL语法文法(2)   ACCEPT    从键盘或其他输入设备读取数据。    ACCEPT A FROM DEV.    从DEV读取数据到A,也可以省略FROM D

didostream的专栏 3432

COBOL 学习3 语法文法

COBOL语法文法(1)   REDEFINES    可以用不同的变量描述同一内存。    01 PART_RECODE USAGE DISPLAY      03 PART-

didostream的专栏 2385

coboljava区别,COBOL语法文法(1)

REDEFINES可以用不同的变量描述同一内存。01 PART_RECODE USAGE DISPLAY03 PART-TYPE PICTURE...03 PART_TYPE_A.05 PART_NUMBER PICTURE...05 PART_COST PICTURE...03 PART_TYPE_B REDEFINES PART_TYPE_A.05 UPC_CODE PICTURE...03 ...

weixin_33045071的博客 594

COBOL语法文法(1)

REDEFINES    可以用不同的变量描述同一内存。    01 PART_RECODE USAGE DISPLAY      03 PART-TYPE PICTURE...      03 PART_TYPE_A.        05 PART_NUMBER PICTURE...        05 PART_COST PICTURE...      03 PART_TYPE_B REDEF

张铖@南通 3565

cobol学习4--语法文法(2)

COBOL语法文法(2)     ACCEPT    从键盘或其他输入设备读取数据。    ACCEPT A FROM DEV.    从DEV读取数据到A,也可以省略FROM DEV,表示从键盘读取。    ACCEPT A FROM DATE/DAY/DAY-OF-WEEK/TIME.读取日期,表示为6个字符,如990909(1999年9月9日)。    读取当前日期在年度(前2位)中为第几

雨歇处 2030

cobol学习3--语法文法(1)

COBOL语法文法(1)    REDEFINES    可以用不同的变量描述同一内存。    01 PART_RECODE USAGE DISPLAY      03 PART-TYPE PICTURE...      03 PART_TYPE_A.        05 PART_NUMBER PICTURE...        05 PART_COST PICTURE...      03

雨歇处 1500

C 语言 抽象语法树AST

引用地址:http://blog.chinaunix.net/uid-26750235-id-3139100.html 抽象语法树简介 (一)简介 抽象语法树(abstract syntax code,AST)是源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构,这所以说是抽象的,是因为抽象语法树并不会表示出真实语法出现的每一个细节,比如说,嵌套括

用心一也 1万+

【转】抽象语法树简介(AST)

引用地址:http://blog.chinaunix.net/uid-26750235-id-3139100.html 抽象语法树简介 (一)简介 抽象语法树(abstract syntax code,AST)是源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构,这所以说是抽象的,是因为抽象语法树并不会表示出真实语法出现的每一个细节,比如说,嵌套括

lewsn2008的博客 2万+

编译原理知识点总结

编译语言及其语法描述 (一)常用的高级语言: FORTRAN 数值计算 COBOL 事务处理 PASCAL 结构程序设计 ADA 大型程序,嵌入式实时系统 PROLOG 逻辑程序设计 ALGOL 算法语言 C/C++ 系统程序设计 JAVA Internet程序...

qq_44267288的博客 1513

COBOL语言的编译原理

COBOL(Common Business Oriented Language)是一种为商业应用而设计的高级编程语言,最早于1959年由联邦政府、私人企业学术界的代表组成的委员会开发。COBOL的产生旨在满足大规模数据处理需求,如银行、保险、会计等领域。尽管随着时间的推移,许多现代编程语言应运而生,但COBOL仍然广泛用于许多遗留系统中,其稳定性可读性使其在商业环境中依然占有一席之地。COBOL语言的编译原理是一个重要的研究领域,它涉及到语言语法、语义、语法解析、代码生成优化等多个方面。

2501_91314545的博客 346

编译原理机测客观题(1)绪论、文法语言

31、文法G:E->E-F-E|k F->F/k|k ,句子k-k/k-k的最右推导为: E=>E-F-E=>( )=>k-k/k-k。4. 文法 G[N]= ( {b} , {N , B} , N , {N→b│ bB , B→bN} ),该文法所描述 的语言是C。A.( ) ① ③ B.( ) ② ③ C.( ) ③ ④ D.( ) ③。A. ( ) 短语文法 B.( ) 正则文法 C.( ) 上下文有关文法 D.( ) 上下文无关文法

代码欢乐豆 1085
上一篇: ODBC错误信息
下一篇: COBOL文件操作
Corey
博客等级 码龄26年 9粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值