IBM大型机论坛索引
 
登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答 寄存器
 

EPLI编译器出现问题


IBM大型机论坛 -> PL / I& Assembler
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
阿纳布

新的用户


已加入:2006年3月13日
帖子:59
地点:英国

发布发表:2010年2月4日,星期四,11:07 pm
引用回复

你好

我遇到了EPLI编译器的以下问题:

现有代码:
码:
****
DCL 1基于Q_VALS(Q_VALS_PTR), 
3行(0:119),               
  5 Q1        Float Bin(53), 
  5 Q2        Float Bin(53), 
  5 Q3        Float Bin(53)   ;

呼叫CALC_JL2D( Q_VALS1.Q1, 
                 Q_VALS2.Q1, 
                 Q_VALS.Q1 );

CALC_JL2D: PROC (QA,QB,PROB);                     
        DCL QA(*)                  浮桶(53);
        DCL QB(*)                  浮桶(53);
        DCL 概率(*)                浮桶(53);
  DO I....To ...;
    概率(I)= ...;
  结束;
结束;
****
编码

对于MVSPLI,在调用proc之后,Q_VALS的值会更改,但对于EPLI,不会更改Q_VALS的值。

EPLI编译清单具有以下选项:BYADDR RETURNS(BYADDR)。

有人可以解释一下为什么EPLI在这里有不同的功能吗?更改编译选项是否会使它的行为像MVSPLI?

谢谢。
Arnab
回到顶部
查看用户资料 发送私信
加里·卡罗尔

高级会员


加入时间:2006年5月8日
职位:1100
所在地:爱尔兰都柏林

发布发表:2010年2月8日星期一7:38 pm
引用回复

嗯,所示的代码片段未引用您要传递的前两个变量。 Q_VALS1和Q_VALS2未显示-??并且您不显示被调用过程中的计算内容。

加油
回到顶部
查看用户资料 发送私信
阿纳布

新的用户


已加入:2006年3月13日
帖子:59
地点:英国

发布发表:2010年2月8日星期一8:45 pm
引用回复

你好

在主要过程中:
码:
DCL 1 Q_VALS1像Q_VALS;
DCL 1 Q_VALS2像Q_VALS;

在被调用的过程中:

码:
DCL 概率_STILL_ALIVE(2)    浮桶(53);                 
DCL 概率_CLAIM_THIS_YR     FLOAT BIN(53);                 
DCL 概率_NO_CLAIM_BEFORE   FLOAT BIN(53);                 
DCL 概率_GIVEN_NO_CLAIM_BEFORE   FLOAT BIN(53);           
DCL 概率_BOTH_DIE_THIS_YR  浮桶(53);                 
DCL 概率_ONE_DIES_THIS_YR  浮桶(53);                 


我= LBOUND(QA,1) TO HBOUND(QA,1);     

概率_BOTH_DIE_THIS_YR = QA(I) * QB(I) *             
                        概率_STILL_ALIVE(1) *       
                        概率_STILL_ALIVE(2);         
概率_ONE_DIES_THIS_YR =质量检查(I) * 概率_STILL_ALIVE(1) * 
                        ( 1 - 概率_STILL_ALIVE(2) ) + 
                        QB(I) * 概率_STILL_ALIVE(2) * 
                        ( 1 - 概率_STILL_ALIVE(1) );   
概率_CLAIM_THIS_YR = 概率_BOTH_DIE_THIS_YR +     
                     PROB_ONE_DIES_THIS_YR;       
 PROB_NO_CLAIM_BEFORE = 概率_STILL_ALIVE(1) +                 
                        概率_STILL_ALIVE(2) -                 
                ( 概率_STILL_ALIVE(1) * 概率_STILL_ALIVE(2) );
 PROB_GIVEN_NO_CLAIM_BEFORE = 概率_CLAIM_THIS_YR /           
                              概率_NO_CLAIM_BEFORE;           
 PROB(I) = ( 概率_GIVEN_NO_CLAIM_BEFORE *                     
             (PERCENTAGE_ADJ/100) ) +                         
             FLAT_ADDITION;                                   
 PROB(I) = MAX ( 概率(I),                                     
                 MIN_Q_VAL );                                 
概率_STILL_ALIVE(1) = 概率_STILL_ALIVE(1) * (1-QA(I));       
概率_STILL_ALIVE(2) = 概率_STILL_ALIVE(2) * (1-QB(I));       
结束; 


希望这可以帮助。
回到顶部
查看用户资料 发送私信
加里·卡罗尔

高级会员


加入时间:2006年5月8日
职位:1100
所在地:爱尔兰都柏林

发布发表:2010年2月9日,星期二,2:57 pm
引用回复

声明结构就像另一个结构一样,仅给出该结构变量的名称和属性。它不会为这些变量分配值,因此无法确定正在将哪些值传递给被调用的过程。

由于Q_VALS1和Q_VALS2未初始化,因此无法确定这些存储位置上的值-特别是在非EPLI版本中。

您在被调用过程中的变量似乎没有初始值,例如

引用:
概率_BOTH_DIE_THIS_YR = QA(I)* QB(I)*
概率_STILL_ALIVE(1) *
概率_STILL_ALIVE(2);


其中两个PROB_STILL_ALIVE元素的值都无法确定。

加油
回到顶部
查看用户资料 发送私信
阿纳布

新的用户


已加入:2006年3月13日
帖子:59
地点:英国

发布发表:2010年2月9日,星期二,下午4:14
引用回复

感谢Gary的回复。

Q_VALS1和Q_VALS2确实填充在主段中。我没有提供那部分代码作为它的大型程序。在调用CALC_JL2D之前,将同时填充Q_VALS1和Q_VALS2并保留有效值。

抱歉,我错过了PROB_STILL_ALIVE的初始化代码。
在DO循环之前将其初始化为1.0,如下所示:

概率_STILL_ALIVE(*) = 1.0;

谢谢。
回到顶部
查看用户资料 发送私信
阿纳布

新的用户


已加入:2006年3月13日
帖子:59
地点:英国

发布发表:2010年2月15日星期一10:31 pm
引用回复

请对此进行任何更新?

我已经尝试过使用代码,但是仍然无法理解MVS和EPLI如何区别于此。

这与两个编译器中的数组定义及其解释有关吗?
回到顶部
查看用户资料 发送私信
恩里科·索里切蒂

高级主持人


已加入:2007年3月14日
帖子:10715
所在地:意大利

发布发表:2010年2月15日星期一10:55 pm
引用回复

引用:
请对此进行任何更新?


论坛的一般考虑...
通常在论坛上提问时,您会根据经验得到回复
(时间上或多或少接近-实际的和/或理论上的)
快速而肮脏的一次衬管测试,可提供样品
您会在很短的时间内得到它们,
...也许需要时间在“ SYS1.BASKETLIB”中找到它们 icon_biggrin.gif
有机会找人做一些长期的研究或实验
很瘦!

无论如何,对于像您这样的问题,最好的方法是与您的支持人员联系并与IBM讨论问题。
回到顶部
查看用户资料 发送私信
阿纳布

新的用户


已加入:2006年3月13日
帖子:59
地点:英国

发布发表:2010年2月16日,星期二,7:08 pm
引用回复

我发现两种编译器都有不同之处。
在EPLI编译器中,列出了默认连接,而在MVSPLI中,默认是未连接。
这可能会导致问题,将进行测试并通知您是否可行。
回到顶部
查看用户资料 发送私信
阿纳布

新的用户


已加入:2006年3月13日
帖子:59
地点:英国

发布发表:2010年2月16日,星期二,晚上8:24
引用回复

如果我将tha 概率(*)数组声明为NONCONNECTED,则它可以与EPLI正常工作。
回到顶部
查看用户资料 发送私信
阿纳布

新的用户


已加入:2006年3月13日
帖子:59
地点:英国

发布发表:2010年2月17日,星期三2:17 pm
引用回复

尽管现在当我将变量声明为NONCONNECTED时,它对于EPLI来说还可以,但对于MVSPLI相同的代码,它将引发编译错误。

DCL 概率(*)浮仓(53)未连接;

IEL0317I S忽略了“ OB(*)浮仓位(53)”“未连接”之后的65个无效属性规范。

有人对此有想法吗?我已经向IBM提出了此问题,但是如果有人已经知道此问题,请让我知道如何解决。
回到顶部
查看用户资料 发送私信
恩里科·索里切蒂

高级主持人


已加入:2007年3月14日
帖子:10715
所在地:意大利

发布发表:2010年2月17日,星期三,下午2:42
引用回复

与您的支持安装小组联系...
在较旧的mvs中,默认值为NONCONNECTED,您可以将CONNECTED指定为属性(请参见语言参考手册)

您的支持安装小组并不关心旧的默认设置,并且只读取了...
publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/IBM3MG60/4.2.3?SHELF=IBMSH360&DT=20071004122423

决定默认使用CONNECTED!

让他们更改安装默认值,您将拥有所要求的源代码兼容性

主题应关闭为 用户错误
即使监督来自支持小组,还是 用户错误
即使IBM SE以某种形式的合同为您完成了定制,
猜怎么着...问题将被关闭 用户错误 没事! icon_biggrin.gif

您的组织无法通过查看手册找到自己的东西

从...开始
www-03.ibm.com/systems/z/os/zos/bkserv/index.html
继续
www-03.ibm.com/systems/z/os/zos/bkserv/zapplsbooks.html

www-03.ibm.com/systems/z/os/zos/bkserv/zappls2.html
进入您选择的pli书架(例如)
publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/Shelves/IBMSH360
并在手册文本中搜索已连接
(或阅读编程指南)

了解旧版本
与上述相同,但
www-03.ibm.com/systems/z/os/zos/bkserv/zappls3.html

publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/Shelves/IBMSH306

祝您阅读愉快!
回到顶部
查看用户资料 发送私信
阿纳布

新的用户


已加入:2006年3月13日
帖子:59
地点:英国

发布发表:2010年2月17日,星期三,下午4:22
引用回复

谢谢恩里科。
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> PL / I& Assembler

 


类似主题
话题 论坛 回覆
该主题已锁定:您无法编辑帖子或回复。 语法错误的问题 同步排序 2
没有新帖 提取列时发生问题(Nullabl ... DB2 18
没有新帖 在浏览器中读取文件时出现问题... TSO / ISPF 7
没有新帖 在SFTP中发布文件 所有其他大型机主题 1
没有新帖 创建KWIKKEY实用程序时出现问题... JCL和VSAM 2
搜索我们的论坛:


回到顶部