第五章系统编程工具REXX和CLST 第一部分(REXⅩ): 1.REXX简介 2ReX入门学习 3.REXX编程基础 4程序调试和错误处理 ■第二部分(CLST): 1.CLST简介
第五章 系统编程工具REXX和CLIST ▪ 第一部分(REXX): 1. REXX简介 2. Rexx入门学习 3. REXX编程基础 4.程序调试和错误处理 ▪ 第二部分(CLIST): 1. CLIST简介
第一部分(REXX) 1.REXX简介 2.Rex入门学习 3.REXX编程基础 4.程序调试和错误处理
第一部分(REXX) 1. REXX简介 2. Rexx入门学习 3. REXX编程基础 4. 程序调试和错误处理
1.REXX简介 REXX的起源和历史 由 Mike Cowlishaw设计 1979-1982, IBM Hursley Labs, UK Using feedback from over 300 users on VNET Designed to make the ack of programming easier Intended uses personal programming Tailoring user commands Macros Prototyping Applications Now runs on many vendors platforms
1. REXX简介 ▪ REXX的起源和历史: ▪ 由Mike Cowlishaw设计 - 1979-1982,IBM Hursley Labs, UK - Using feedback from over 300 users on VNET ▪ Designed to make the ack of programming easier ▪ Intended uses: - personal programming - Tailoring user commands - Macros - Prototyping - Applications ▪ Now runs on many vendors platforms
REXX简介 运行平台 BM的所有平台: MM-REXX首次出现(1983) OS/2 AIX VSE -OS/390TSO(1988) 1987年被选为 SAA Procedural Language 也可以用在许多非|BM平台上: Tandem VaX, amiga Several UNIX Versions(including Linux) windows(Object REXX from IBM) NetRexx
REXX简介 ▪ 运行平台: ▪ IBM的所有平台: - VM – REXX首次出现(1983) - OS/2 - AIX - VSE - OS/390 TSO(1988) ▪ 1987年被选为SAA Procedural Language ▪ 也可以用在许多非IBM平台上: - Tandem, VAX, Amiga - Several UNIX versions (including Linux) - windows (Object REXX from IBM) - NetRexx
REXX简介 REXX特点: 易学易用性 自由的语法格式 Either interpreted or compiled 丰富的 built-in函数 Typeless variables Very strong parsing 好的调试工具 提供和其他语言的接口 可扩展性
REXX简介 ▪ REXX特点: ▪ 易学易用性 ▪ 自由的语法格式 ▪ Either interpreted or compiled ▪ 丰富的built-in函数 ▪ Typeless variables ▪ Very strong parsing ▪ 好的调试工具 ▪ 提供和其他语言的接口 ▪ 可扩展性
REXX简介 REXX在zOS上的使用 ● Command procedures ● Personal programming ● Application initiation O Application prototyping o Application programming o Common macro language for varied applications ISPF Edit macros ISPF Dialogs Netview CICS. DB2 QMF Other vendor products
REXX简介 ▪ REXX在z/OS上的使用 ⚫ Command procedures ⚫ Personal programming ⚫ Application initiation ⚫ Application prototyping ⚫ Application programming ⚫ Common macro language for varied applications - ISPF Edit macros, ISPF Dialogs, Netview - CICS, DB2, QMF - Other vendor products
REXX简介 Interpreted versus Compiled 解译器 当程序在运行时,翻译并执行每个程序语句 编译器 首先将整个程序翻译成机器语言 然后通过链接-编辑成加载模块 然后用户可以运行该程序
REXX简介 ▪ Interpreted versus Compiled ▪ 解译器: - 当程序在运行时,翻译并执行每个程序语句 ▪ 编译器: - 首先将整个程序翻译成机器语言 - 然后通过链接-编辑成加载模块 - 然后用户可以运行该程序
REXX简介 一个简单的REXX程序 / REXX exec to introduce REXX*/ Say Hello! My name is REXX. What's yours? Parse Pull name If name=“Then Say You're not friendly Else Say name is a nice name Exit 0
REXX简介 ▪ 一个简单的REXX程序 /* REXX exec to introduce REXX */ Say “Hello! My name is REXX. What’s yours?” Parse Pull name If name = ‘’ Then Say “You’re not friendly” Else Say name “is a nice name.” Exit 0
2.Rex入门学习 REXX under tso ● REXX exec可以是一个顺序数据集或一个PDS成员 TSO EXEC命令调用一个REXX或CLST程序 ●三种使用EXEC命令的方法 Explicit execution EXEC dataset parameters plicit execution membername parameters Extended implicit execution %membername parameters 查找包括 USYSEXEC DD concatenation then // sYsProc dd concatenation 用来作为命令行上的成员名 READY %omyrexx 24 72 mydata
2. Rexx入门学习 ▪ REXX under TSO ⚫ REXX exec 可以是一个顺序数据集或一个PDS成员 ⚫ TSO EXEC命令调用一个REXX或CLIST程序 ⚫ 三种使用EXEC命令的方法: - Explicit execution: EXEC dataset parameters - Implicit execution: membername parameters - Extended implicit execution: %membername parameters ⚫ 查找包括: //SYSEXEC DD concatenation then //SYSPROC DD concatenation 用来作为命令行上的成员名. READY %myrexx 24 72 my.data
REXX execs在TSO下的执行: 在TS○/E中用EXEC命令运行非编译的程序。精确运行一个REXX可 执行程序格式如下: EXEC DSName(数据集名字) Parameter exec 例如:名为 USERIDREXX. EXEC( TIMEGAME)的数据集被执行,格 式如下: 完整数据集被调用,数据集名要被引号标记,如下: EXEC 'userid rexx exex(timegame)exec 非完整数据集被调用,如下 EXEC reXx exex(timegame) exec /*eliminates prefix * EXEC rexx(timegame) exec /eliminates prefix and exec */ 通常REXX命令的输入执行可以在|SPF6对应面板中的 COMMAND后 面输入,也可以在 READY提示符下面输入
REXX execs在TSO下的执行: ▪ 在TSO/E中用EXEC命令运行非编译的程序。精确运行一个REXX可 执行程序格式如下: EXEC DSName(数据集名字) Parameter exec 例如:名为USERID.REXX.EXEC(TIMEGAME)的数据集被执行,格 式如下: 完整数据集被调用,数据集名要被引号标记,如下: EXEC ‘userid.rexx.exex(timegame)’ exec 非完整数据集被调用,如下: EXEC rexx.exex(timegame) exec /* eliminates prefix */ EXEC rexx(timegame) exec /* eliminates prefix and exec */ 通常REXX命令的输入执行可以在ISPF.6对应面板中的COMMAND后 面输入,也可以在READY提示符下面输入