programming-languages - : PROC,是什么语言VERIFY,DECLARE,SCREEN,CMS,

标签 programming-languages mainframe

我必须从旧的旧代码中找到一些逻辑。我的经理说是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 &AMPRFROM NE &NAV THEN DO;
   WRITE '&AMPRFROM = ''' CATB DISPLAY(&AMPRFROM) 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/

相关文章:

Scala 不处理 ':' 函数的非显式类型闭包

c++ - 如何优化因 cpu 分支未命中而减慢的跳转指令?

php - 使用脚本在一堆模板中查找函数调用

java - 如何使用 Java 中的 FTP 在大型机上创建数据集

java - ftpClient.listFiles ("path") 与大型机

programming-languages - 这个旧程序是用什么语言编写的?

c++ - Matlab 与 Visual C++?

java - 使用Java将中英文字符以单个文件写入Mainframe

c# - 在 C# 中使用 EHLAPI32 和 RUMBA 作为仿真供应商