我必须从旧的旧代码中找到一些逻辑。我的经理说是COBOL,我不确定。我试图在cobol教程上找到一些关键词,但没有任何运气。
以下是一些代码段:
PROC(&QPROG);
VERIFY OFF PROC;DECLARE &MSG1 AS A75;
/* DON'T CALL SCREEN IF IT'S FROM */
IF &QPROG NE 'YUITG' THEN DO;
CALL QAAF;
SCREEN QUERY LOADED QAAF OTW DO;
PRINT 'SCREEN WILL NOT LOAD';
EXIT;
END;
END;
ON ERROR DO;PRINT &&RC;EXIT; END;
IF LENGTHB(&P_WHAT) = 4 THEN DO; &P_WHATT = SUBSTR(&P_WHAT,1,1) CAT
', ' CAT SUBSTR(&P_WHAT,2,1) CAT ', ' CAT SUBSTR(&P_WHAT,3,1) CAT
' & ' CAT SUBSTR(&P_WHAT,4,1);
END;
DECLARE &KEYWORDD_A(0) AS A1;
DECLARE &KEYWORDD_F(0) AS 99L;
&KEYWORDD_A=
(SUBSTR(&KEYWORDD,1,1),SUBSTR(&KEYWORDD,2,1),SUBSTR(&KEYWORDD,3,1),
SUBSTR(&KEYWORDD,4,1),SUBSTR(&KEYWORDD,5,1),SUBSTR(&KEYWORDD,6,1),
SUBSTR(&KEYWORDD,37,1),SUBSTR(&KEYWORDD,38,1),SUBSTR(&KEYWORDD,39,1),
SUBSTR(&KEYWORDD,40,1));
&KEYWORDD_F = FINDEX(&KEYWORDD_A = ' ',ALL);
IF &PROG EQ &NAV THEN DO;
&ALLPROG = 'YES';
&PROG = 'PR2';
END;
-TOP_PROG
CMS FILEDEF QAA2 DISK QAA2 NOMAD A6 (LRECL 100;
WRITE '/* REPORT */' ON QAA2;
WRITE '&GRP = ''' CATB &GRP CATB ''';' ON QAA2;
WRITE '&MGTRPT = ''' CATB &QPROG CATB ''';' ON QAA2;
IF &RFROM NE &NAV THEN DO;
WRITE '&RFROM = ''' CATB DISPLAY(&RFROM) CATB ''';' ON QAA2;
END;
CLOSE QAA2;
最佳答案
编辑:
这一直困扰着我。认为不是EXEC也不是Rexx,但显然是在CMS中运行,因此留下了EXEC 2。
但是,我现在相信这是NOMAD本身。难以确认,但是这里的http://www.tallant.com/portfolio/webpages/web/nomad/nomad2.html是其中一些代码的示例。
我不知道它是否从EXEC 2或旁边运行。它可能只是以类似的方式运行,或者只是支持执行“系统功能”所需的对CMS或CP的“脱 shell ”。
所以,可能不是...
它是EXEC2。
VM/CMS有两种“较旧的”命令语言,最古老且最受限制的是EXEC。 Rexx是"new"命令语言。
如果您认为这很糟糕,请想象一下EXEC是什么样的。 EXEC和EXEC2与CLIST有相似之处,但我不知道它们是否有共同祖先。
因此,如今与IBM的VM操作系统是一种“ shell 脚本语言”,它是原始的“虚拟机”,并且具有运行称为“单用户操作系统”的多个副本的功能。 CMS( session 监控系统,我相信)只能在VM上运行,并且是“CMS FILEDEF”进来的地方(它“炮轰”到CMS),VM也可以作为单个或多个实例运行,诸如DOS/VSE,MVS,VM之类的IBM操作系统(再次可以运行其他“ guest ”操作系统)之类的IBM操作系统,如今,z/OS,z/VSE和我可能还不知道,但可能是Linux。
编辑。包含“/”“/”注释是非常不好的做法。如果文件的第一行像这样开始和结束,则假定内容为Rexx。 VM支持所有三种“语言”,但根据程序的启动方式运行不同的解释器。
从内存中,EXEC以*(注释)开头,EXEC2不需要,而//到*/的Rexx则在CMS上可以跨越多行。
关于programming-languages - : PROC,是什么语言VERIFY,DECLARE,SCREEN,CMS,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15008999/