有什么阻碍现代语言与COBOL之间的互操作性吗?

问题描述 投票:0回答:2

我正在阅读有关在仍在使用COBOL的政府系统上工作时,人们如何难以找到与之合作的人。我还在阅读有关Fortran的信息,该语言是比COBOL早两年的语言。

这使Fortran脚本在某种程度上可以与现代编程语言一起使用,甚至可以使用可以与Fortran代码一起使用的现代编程语言来创建脚本,即使对于Fortran的新手也可以轻松地使用它。是否有任何特定的问题阻止COBOL与其他编程语言(例如SQL(用于与COBOL类似的数据库)使用)具有类似的互操作性,这会使通常不学习COBOL的现代程序员更容易使用它?

interop programming-languages cobol
2个回答
1
投票

政府系统中涉及的场景很可能是具有zos,zvse或zvm操作系统风格的IBM大型机硬件。

从某种意义上说,互操作性是什么意思,因为大多数现代大型机都支持tcpip,并且几乎为整个网络计算生态系统开放了网络互操作性。

我的猜测是说完一切之后,有一个问题的原因是,国家拒绝为有经验的大型机开发商支付市场价格,而是将维护作为成本节约措施而拖延了下来。

[最有可能不是没有MF COBOL专业人员能够使系统正常工作,最有可能是州政府不会为此付出代价。

但这是我的推测,因为我所知道的是,州长将无生命的对象归咎于国家IT管理部门内的拨款和管理失败。

作为拥有40年历史的MF老手,我渴望了解这种完美的技术如何因处理(同样,我认为)处理需求量空前的问题而出问题的细节。


1
投票

Q1:有什么阻碍现代语言与COBOL之间的互操作性吗?

A1:与上述相似的简短答案:不,实际上经常这样做。

但是这可能取决于为读者定义了什么“现代语言”。即使使用“真正的” COBOL(不是某些“发光的” [可以理解为“混合”]“托管的COBOL”),在大多数情况下,您仍然可以直接调用任何C函数,因此或多或少可以调用任何C函数(至少使用C包装程序),还可以像在操作系统上一样调用二进制文件(使用'some-executabe-or-script“ param1”“ param2”'的'CALL'SYSTEM'是常见的扩展)。

直接调用任何“本机代码”(例如interoperable with C, C++, R, and Python with the right librariesWin32),显然您必须确保使用正确的参数定义,但是COBOL 2002+具有类似POSIXUSAGE SIGNED-LONG之类的内容(扩展名USAGE POINTER在此位置也很常见)。

[另外,通常还有直接的方法可以与套接字服务器,HTTP(S),XML,JSON等互操作。并且许多COBOL实现还允许将(行)顺序文件USAGE COMP-5传送到管道,也允许以这种方式与其他程序进行交互。


Q2:是否存在阻止COBOL与[...] SQL互操作性的特定问题?

A2:否,SQL是直接在COBOL中非常普遍使用的语言:ASSIGN

[许多人会说SQL不是“编程语言”。它是一种查询语言,可以在不同的环境中使用,包括COBOL。根据使用的环境,EXEC SQL可以直接集成到COBOL环境中,也可以与将代码调整为普通COBOL的预解析器集成在一起(通常EXEC SQL使用某些“本机”代码,请参阅Q1)。

Q3:[...东西],这会使通常可能不会学习COBOL的现代程序员更轻松地使用它吗?

...这是一个完全不同的问题,无论“现代程序员”是什么。

对于程序员来说,要了解一种编程语言,这完全取决于程序员和资源(如时间,手册,教程,导师)以及程序员的意愿。许多人实际上不“想要”学习COBOL(由于我所听到的原因,但不理解或不同意),其他人则错过了一些资源(CALL提供了免费的编译器,几乎所有的COBOL编译器都拥有)他们的手册可在线获得,并且COBOL的ISO工作组也发布了GnuCOBOL;您通常可以在COBOL讨论论坛或邮件列表中找到导师,以及许多示例)。

[ 是对于COBOL来说很特别的一点不是语言本身,而是它所使用的环境(带有作业控制语言“ jcl”的“大型机”,而不是可单击的GUI或使用的外壳)和/或以COBOL实际编码的软件;几十年来维护的每种软件在这里和那里都有“特殊方式”,如果您要“十年不实际维护的旧代码”,则会遇到更多的麻烦/乐趣(这不是COBOL特有的,但是使用COBOL时,您可能会经常遇到此软件)。

© www.soinside.com 2019 - 2024. All rights reserved.