CHARVAR(1:1) contains the most significant (higher-order) byte of BINVAR. However, on a little-endian machine, with the same code, CHARVAR(1:1) will contain the least significant (lower-order) byte of BINVAR; this is definitely a change of behavior and will probably lead to different observable results.
![]()
The DB2 precompiler will also generate the correct sournding code for both PLI and Cobol with embeded SQL statements. If you are not talking about DB2 you might consider addressing your question to a diffrent list server. There are infact list servers for COBOL PLI IBM-MAIN in general, LE, compilers, conversions etc etc.
However, the Rehosting Workbench Cobol Converter is unable to detect and fix all occurrences of this situation (the example above is 'obvious', but there exists many much more complex cases); these must be handled manually. TRUNC(STD) option on the source platform – this option corresponds to the TRUNC option of Micro Focus Cobol. Indeed, both on the source and on the target platforms, the portable binary types obey this option whereas the native type does not. In our opinion, the probability of observing a real difference of behavior is very low, because in general, binary-integer variables are used to hold 'control' values (loop counters, array indices, etc.) rather than applicative values. In any case, if differences of behavior are observed, it is up to the Rehosting Workbench user to deal with them, either by accepting them or by manually correcting them, for instance by returning a few selected variables to their original binary type.
COMP-1 and COMP-2) types are 'translated' to the same types on the target platform. Given this, the Micro Focus Cobol compiler and run-time system offer the possibility to use floating-point data ( COMP-1 and COMP-2 variables) in either the IBM hexadecimal format or the native (IEEE 754) format. If the NONATIVEFLOATINGPOINT option is set at compile time (which is true by default), then the floating-point format is selected at run-time, depending on the MAINFRAMEFLOATINGPOINT environment variable and/or the mainframefloatingpoint tunable. SEQUENTIAL on the source platform are translated into LINE SEQUENTIAL files on the target platform, to be more 'usable'. In general, this is a good choice and such files are well supported by the Micro Focus Cobol system.
However, there is a catch: since such files are inherently of variable record size, a REWRITE operation may cause unpredictable results and differences of behavior (see the Micro Focus documentation). If you are not sure that REWRITE operations on a given SEQUENTIAL file would always succeed if that file is turned into a LINE SEQUENTIAL one, we advise to keep it purely SEQUENTIAL; this can be done by inserting its description in the configuration sub-file referenced by the pure-seq-map-file clause below.
POINTER variable is part of a structure containing variants (redefinitions), and if the different variants (sub-structures) are designed so that one particular field of one variant must be aligned with (have the same location as) some other field in some other variant, then this property must be maintained after the POINTER variable changes size: compensation fillers must be inserted, etc. Again, this must be handled manually. Note that such intended alignments must be maintained across redefinitions, but also across MOVEs to other structures. NULL pointer value may vary from one platform to another, in particular between the source and target platforms – if only because they don't have the same size, like every other pointer value. In consequence, every program which assumes a specific representation for this value, for instance by 'casting' it to or from some binary integer value, may have a different behavior from one platform to another. The Cobol converter cannot handle this issue by itself, automatically, and it will have to be handled manually. Anyway, we strongly discourage such machine-dependent 'hacks'.
Is not present, or when this file is empty, no copy renaming takes place. It is an error when the file cannot be found or read, or when the same original-copy-name;original-library-name combination is associated with different new-copy-names in different lines of the file. In this case, the converter stops with an error message and does not convert any programs. Note however that it does not check whether two different copy files in the same directory are renamed to the same target file. In principle, this would be handled gracefully by the copy reconciliation process, but without guarantee.
FD in the given program), assumed to be (record) SEQUENTIAL on the source platform, to be converted to LINE SEQUENTIAL on the target platform; rather, it is kept unchanged as a record SEQUENTIAL file. This makes it much less amenable to manipulation using standard target-platform utilities, but on the other hand, it will support unrestricted REWRITE operations (see section REWRITE operations on LINE SEQUENTIAL files above). This might also be useful for files exchanged with a z/OS platform in binary form.
Doug, Quarts won't fit in pints, in short there are things that you can do in PLI which you can't do in Cobol and very few things which you can do in Cobol which you can't do in PLI ( possibly Cobol report writer) PLI evolved from Cobol (and others) So, you can't really convert PLI to Cobol Oh REALLY? I converted 300+ programs written in PL/I to COBOL in about 1 1/2 years. Some of the programs were badly structured in PL/I, and I rewrote them in structured COBOL. Many of them used the PL/I version of ALTER/GO TO, the LABEL variable.
![]() ![]()
Those were a real thrill(!). PL/I, like any other language can be written with spaghetti code, and I've seen lots! Bill Reed Thu, 18 Jul 2002 03:00:00 GMT.Need to convert PL/I to COBOL, C, C, C#, Java, or even another vendor's PL/1? Datatek has successfully converted millions of lines of PL/I code and we'll put our.It does appear that I've at least gotten some response back and I really appreciate the feedback but I now feel that I need to disclose some of my reasons for this effort.
We are part of a migration services group that provides conversion services to our customers on a worldwide basis. I have written tools to convert Cobol and other 4GL programs (utilizing VSAM/Indexed RMS and Cincom's TOTAL/SUPRA call structures) to open SQL environments (ORACLE, DB/2, etc.) My process is a complete turn key solution where as I convert all the programs, copybooks, DCL/JCL, data, etc from the old legacy environment to the create the new SQL environment. Typically this has been in the VMS to UNIX areas. The PL/1 issue is something new in that one of our customers wants to move all their programs to ORACLE and as Clement pointed out, Oracle is claiming that they are not going to support a PRO.PL/1 compiler.
SO, this is the main driving force.Rather than rewrite the code from scratch (which would take longer than the customer has as there are several hundred programs), they have turned to us to see if an automated process is available or can be developed. As someone in the responses pointed out, not all constructs can be handled easily and we react to those on an exception basis. And if we got a 100% conversion of a program, well, that would be too optimistic.We shoot for 70-80% of any conversion with the remaining issues handled manually during program compilation, testing, etc.
Believe it or not, there are several companies out there who say they do this type of conversion. However, they may be too costly of a solution and they may not have any real world experiences or their solutions or too dated for us. Since I haven't played with PL/1 for over 20 years, I had hoped that I might learn something from your knowledge which is more recent than mine to help me along. I know this was a lengthy reply but I appreciate your information.I agree with Markus (see below). It would be FAR FAR easier to write a 3rd-party implementation of Pro.PL/I than to write a program to convert PL/I to COBOL.The Oracle precompilers really don't do that much for you.
The precompiler's input language is just a sugaring for the normal library calls and associated data types. I can't believe that it would be all that complicated to write your own version of Oracle's Pro.PL/I. You would have to give it a different name, of course.And I suppose that there might be legal issues. But technically, this would be the simplest approach. You wouldn't have to modify hundreds of perfectly-working programs. I don't even think that Oracle wrote the original Pro.PL/I precompiler.I think we wrote it for them at Stratus back in the late 1980s. You might even ask Oracle if you could license the source code for it, and then make your own modifications to have it work with Oracle 8i.
You might ask Oracle if you can fund the work to upgrade it; that might be cheaper than any of these other solutions. To a hammer, everthing looks like a nail.
I guess to a conversion service, every problem can be solved through source-language conversion. I agree with Markus (see below).
It would be FAR FAR easier to write a 3rd-party implementation of Pro.PL/I than to write a program to convert PL/I to COBOL.The Oracle precompilers really don't do that much for you. The precompiler's input language is just a sugaring for the normal library calls and associated data types. I can't believe that it would be all that complicated to write your own version of Oracle's Pro.PL/I. You would have to give it a different name, of course.And I suppose that there might be legal issues. But technically, this would be the simplest approach. You wouldn't have to modify hundreds of perfectly-working programs.
I don't even think that Oracle wrote the original Pro.PL/I precompiler. I think we wrote it for them at Stratus back in the late 1980s.You might even ask Oracle if you could license the source code for it, and then make your own modifications to have it work with Oracle 8i. You might ask Oracle if you can fund the work to upgrade it; that might be cheaper than any of these other solutions. To a hammer, everthing looks like a nail.
I guess to a conversion service, every problem can be solved through source-language conversion.PG Would it not be more efficient to look for, or even create a PL/I SQL to ORACLE Gateway? ORACLE's SQL is ANSI compliant and PL/I should it be as well. It depends from the number of programs and the acceptance of a little loss of performance Markus Loew. Oracle is claiming that they are not going to support a PRO.PL/1 compiler. Fri, 19 Jul 2002 03:00:00 GMT.I agree with Markus (see below).
It would be FAR FAR easier to write a 3rd-party implementation of Pro.PL/I than to write a program to convert PL/I to COBOL.The Oracle precompilers really don't do that much for you. The precompiler's input language is just a sugaring for the normal library calls and associated data types.I can't believe that it would be all that complicated to write your own version of Oracle's Pro.PL/I.
You would have to give it a different name, of course. And I suppose that there might be legal issues.But technically, this would be the simplest approach. You wouldn't have to modify hundreds of perfectly-working programs. I don't even think that Oracle wrote the original Pro.PL/I precompiler. I think we wrote it for them at Stratus back in the late 1980s. You might even ask Oracle if you could license the source code for it, and then make your own modifications to have it work with Oracle 8i.You might ask Oracle if you can fund the work to upgrade it; that might be cheaper than any of these other solutions.
To a hammer, everthing looks like a nail.I guess to a conversion serviceevery problem can be solved through source-language conversion. PG Would it not be more efficient to look for, or even create a PL/I SQL to ORACLE Gateway? ORACLE's SQL is ANSI compliant and PL/I should it be as well. It depends from the number of programs and the acceptance of a little loss of performance Markus Loew.
Oracle is claiming that they are not going to support a PRO.PL/1 compiler. Cobol To C# ConversionSun, 21 Jul 2002 03:00:00 GMT.COBOL conversion COBOL conversion to Java FreeSoft's unified transformation tool converts complete COBOL applications either running currently on Mainframe or open system to the Java stack including the business logic, data access and even user interfaces. The transformed Java application provides exactly the original equivalent functionality both in on-line mode and batch processing. The COBOL to Java conversion project leaves business as usual, as the impact on end-users is minimized. The Java system after COBOL transformation works the original identical way and Java provides the same services and user experience as the legacy COBOL system.Transformation of COBOL language specific elements All aspects of the COBOL programming and run-time environment are fully supported by the LiberatorWorkbench conversion framework to implement the original identical business functionality of programs in the Java technology stack. Statements or built-in functions that has no direct equivalent in OO languages like Java but are heavily used in COBOL coding among others REDEFINE; MOVE, ACCEPT; CALL; COMPUTE; INSPECT, STRING etc.
Or special data types are implemented with the same correctness and functionality in the converted Java application. Without these implementations an automated COBOL conversion solution is not able to produce a functionally correct and precise application migration for any business application so any language conversion solution must support these.The syntax and structure of the code is straightforward and simple to follow both for Java developers and COBOL programmers as well. CodeLiberator can use several design patterns and rules for COBOL to Java conversion so we can adjust the syntax of the resultant code to your requirements.We also provide turn-key solution to other COBOL or Mainframe specific infrastructure elements like replacing middleware integration, supervisor calls, etc. Transforming COBOL on-line applications COBOL on-line processing from the Mainframe 3270 terminals like CICS/BMS or IMS/DC is transformed to the target user interface technology by CodeLiberator.
The Java user interface after COBOL transformation can be either thin-client web application with traditional web frameworks but CodeLiberator can also convert 3270 screens and processing to more rich GUI technologies like JavaFX.The converted Java application business logic can hosted in any Java enabled application server such as open source Tomcat or more robust middleware (IBM WAS; WebLogic; etc.). For the web application we support more architectural options like some frameworks e.g. JSF or preferably some very thin and light architecture like platform independent HTML/JavaScript with reactive programming. If a richer GUI is defined as the strategic platform for the COBOL conversion, LiberatorWorkbench is able to convert to JavaFX that communicates with the application server via http/JSON.
The transformation of 3270 or other screens used by the COBOL programs preserves the functionality and the structure of the screens, this way the need for end-users training is eliminated, clerks and business users will be able to use the converted Java application just the same way as the COBOL before. Transformation of COBOL batch processing Either in financial/insurance or other industries, COBOL batch processing is still a fundamental, mission-critical component of the workloads that run on the mainframe today.Batch programs coded in COBOL are also converted to Java with CodeLiberator and might be packaged and executed in simple Java archives or deployed in some specific containers after COBOL conversion. The Java batch programs expect the same input parameters and work with the same data as the original COBOL programs to execute the same business logic and data processing in the migrated relational database.
The converted Java programs process the same input and output files like work files and print files, this way the results are fully identical with the original ones so the impact on operational environment (data travelling for export/import; FTP, SORT, printing; etc.) is either entirely eliminated or minimized. The other aspects of the transition from one programming language and technology stack to the other is also managed during COBOL transformation by FreeSoft (EBCDIC to ASCII and other aspects). COBOL database access migration When the underlying database is migrated in the legacy COBOL migration project, the data access statements are properly converted depending on the target database which can be relational engines (Oracle, DB2/UDB, MSSQL, etc.) but also NoSQL solutions or simply files. Assembler To Cobol ConverterWe support different kinds of data access types like separated DAO to keep it transparent or standard SQL. These COBOL data access statements either embedded SQL statements or file related – like VSAM, or indexed/sequential - are fully supported by our COBOL to Java code conversion solution and framework with 100% coverage. Transaction processing of the legacy COBOL application is also implemented in our COBOL conversion solution to preserve data integrity in any transaction or database. Post navigation.
![]() Comments are closed.
|
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
March 2023
Categories |