COBOL Newsletter Issue 4 IBM Santa Teresa Lab November, 1995 This newsletter is written by the IBM COBOL development team. This is our ASCII text version of our published document. Articles in this issue: IBM's New COBOL products Land! A Few Words from the OO team IBM's New COBOL for MVS & VM Faster/better/smaller LE shipped! IBM's Host Debug Tool! Gimme Speed! Report Writer -- Big News Go with the FLOW Tips & Hints IBM's new COBOL products land at a store near you! --------------------------------------------------------------- Today, IBM announces delivery of its most sweeping COBOL enhancements in a decade! IBM VisualAge for COBOL for OS/2 IBM COBOL for MVS & VM Release 2 IBM COBOL Set for AIX With the addition of object-oriented extensions, and a visual development environment, IBM VisualAge for COBOL for OS/2 helps you build applications for host, workstation or advanced client/server applications. These COBOL enhancements are also available on the AIX and MVS platforms. IBM VisualAge for COBOL for OS/2 revitalizes your dependable COBOL applications by extending COBOL to your OS/2 workstation. With IBM VisualAge for COBOL for OS/2, you can use your existing COBOL skill base to upgrade your applications and expand them to other platforms. As a direct result, you can save money and increase productivity by reducing the need to retrain your employees. VisualAge for COBOL for OS/2 is an ideal, cost-effective solution that offers the following enhancements to COBOL: OBJECT - ORIENTED LANGUAGE EXTENSIONS -- COBOL programmers can create objects in a language they already know, reducing a long learning curve -- 32-bit implementation -- Direct-to-SOM implementation CLIENT/SERVER ENABLERS -- Run COBOL programs on your OS/2 desktop, while your data remains on the host -- Easily access remote data from DB2, CICS, VSAM/SAM MVS files and OS/400 Record Files -- Works with MQSeries for OS/2 using MQSeries Three Tier for OS/2 -- Complies with ISO and ANSI COBOL standards IMPROVED PRODUCTIVITY AND EASE-OF-USE -- A rich set of tools help you easily take advantage of these COBOL enhancements COBOL FAMILY OVERVIEW Today IBM is announcing three new COBOL products on OS/2, AIX and MVS & VM, breathing new vitality into the business language of choice. IBM has dramatically enhanced COBOL with visual development tools (OS/2), object-oriented extensions, and powerful client/server support across a wide variety of platforms. The enhancements in IBM VisualAge for COBOL for OS/2 also offer exceptional gains in productivity and flexibility. With desktop-based visual development tools, programmers can begin applications by creating graphical user interfaces (GUIs). To put substance behind the GUIs, the visual tools and data utility functions allow rapid development to create business logic and access databases, VSAM files, and transaction-processing systems. With IBM's COBOL Family, COBOL programmers can use their expertise to create advanced client/server applications, allowing host COBOL applications to move to the desktop, while data remains on the host. IBM VisualAge for COBOL for OS/2 IBM VisualAge for COBOL for OS/2 provides the COBOL programmer with 32-bit Direct-to-SOM based, object-oriented support on the OS/2 operating system. In addition, a COBOL application development environment is provided that is designed specifically to handle client/server, mission-critical, line-of-business applications through visual development. IBM VisualAge for COBOL for OS/2 also gives the COBOL programmer a set of high-productivity, OS/2-based power tools for the development of applications targeting OS/2 execution systems. LOCAL AND REMOTE DATA ACCESS: IBM VisualAge for COBOL for OS/2 provides local and remote data access to data including: IBM SMARTdata UTILITIES (TM) (SdU) which provides: -- Record-oriented file access through standard COBOL I/O statements to local OS/2 VSAM files, remote MVS VSAM, SAM, PDS, and PDSE files -- Remote OS/400 Record Files -- Remote CICS managed VSAM files on MVS using CICS/DDM -- A full set of data conversion API's for converting single, double and mixed byte character strings, numerics and complex structured records -- A full set of SMARTsort API's for sorting, copying, and merging record and byte files located locally or remotely -- Direct access to data managed by BTRIEVE -- Support for local and remote DB2 data access using DB2 for OS/2 -- Support for local and remote CICS data access using CICS for OS/2 or CICS Client for OS/2. VISUAL GUI DESIGNER: The visual GUI designer provides capabilities to allow the building of complex CUA (TM) compliant screens. The visual interface (GUI work screen) that creates the GUI code, is an easy-to-use, intuitive tool for creating graphical interfaces, eliminating the need for in-depth GUI development knowledge. Programmers can create applications by selecting controls from the control palette, moving them onto the design editor, thereby providing an integrated "what you see is what you get" (WYSIWYG) user interface. Either during or after this brief development process, developers may build the application by coding in COBOL logic with COBOL sensitive edit/compile/debug tools. WORKFRAME: IBM WorkFrame/2 provides seamless integration of all the components included in the IBM VisualAge for COBOL for OS/2 product. WorkFrame is a highly configurable, project-oriented application development environment for use on OS/2 and is specifically designed to take full advantage of the features offered by OS/2. When used as the integration medium for application development tools, the fully configurable IBM WorkFrame increases the effectiveness of these tools as agents for enhancing user productivity. IBM WorkFrame organizes the programmer's workplace by grouping files into logical units or projects. As an organizer, IBM WorkFrame: Adapts to the user's project organization environment instead of the project organization having to fit into the WorkFrame defined environment. Sets up projects to consist of source and object files spanning multiple directories, and one target directory. Associates each project with multiple actions, including compiling, debugging, making, linking, browsing, profiling / analyzing, and preprocessing. As a tool integrator, multiple developers can now work concurrently on a single project by plugging in their own source control system. CONTEXT SENSITIVE EDITOR: The LPEX Editor is a language-sensitive, color editor which supports COBOL. The LPEX Editor can be used to create and edit many types of text files, including program source and documentation. By automatically parsing COBOL source code, LPEX distinguishes between language constructs. For instance, language keywords, comments, string literals, and numbers are displayed using distinctive fonts and colors. Developers can quickly find items they are looking for in their source code. Using LPEX, developers can: -- Be made aware of some syntax errors when the source code is created -- Use multiple windows to display several documents or to display more than one view of the same document -- Dynamically configure LPEX to be a multiple-window or single-window tool -- Select a block of text and move or copy it between documents -- Cut and paste to a shell or another application -- Undo previous changes to a document Developers can customize and extend virtually every aspect of this programmable editor. LPEX is designed to be extended through dynamic link libraries; there is no proprietary extension language to learn. With the LPEX application programming interface (API), developers can write powerful extensions to the editor using C and C++. In addition, LPEX provides a rich command language that developers can use to create or modify editor functions. Developers can: -- Define their own fonts and colors -- Modify the editor action key layout -- Add menus to perform frequently used commands (menu definitions can be applied on a filename extension basis) -- Write their own editor commands INTERACTIVE DEBUG TOOL FOR OS/2 (IDBUG): The debug tool supplied with IBM VisualAge for COBOL for OS/2 provides source level debugging built around a set of core functions designed to let users quickly and efficiently control execution, and analyze data. Users can: -- Display and change variables -- Display and change storage -- Display and change the processor registers -- Display the call stack -- Add and delete simple and complex breakpoints -- Control the execution of multiple threads View source code as a listing, disassembly or mixed CICS for OS/2 Version 3.0 transactions built with IBM VisualAge for COBOL for OS/2 can be debugged interactively. For PM application programming support synchronous and asynchronous modes gives users two ways to debug PM applications. The application windows can be managed concurrently with the debug tool windows. PERFORMANCE TUNING: Execution trace analysis and performance tuning is provided through the IBM Performance Analyzer. It is designed to help users tune and understand their programs by monitoring program execution and generating a function-by-function trace of the run. This trace can subsequently be examined by utility programs that graphically display the execution trace. Not only does the analyzer trace procedures in the EXE file, but it traces the entry points to system calls and application DLLs. DATA ASSISTANT / TRANSACTION ASSISTANT: Data Assistant simplifies the process of constructing syntactically correct, embedded SQL statements. It gives you a graphical view of your relational database, allows you to map COBOL data structures to the database and generate SQL statements into your source file. Transaction Assistant enables non-CICS COBOL applications to access CICS transactions. OPEN ENTERPRISE: IBM VisualAge for COBOL for OS/2 supports the high subset of American National Standards Institute (ANSI) COBOL (ANSI X3.23-1985) and International Standards Organization (ISO) COBOL (ISO 1989:1985), as well as the Intrinsic Function Module for COBOL (ANSI X3.23a-1989 and ISO 1989/Amendment 1). PUBLICATIONS The following publications can be ordered from Copenhagen and Mechanicsburg after planned availability. To order, contact your IBM representative or call 1-800-879-2755. Title Order Number Language Reference SC26-4769 Programming Guide SC26-8419 Getting Started GC26-8421 VSAM in a Distributed Environment SC26-7063 Data Description and Conversion SC26-7091 DD&C A Data Language Reference SC26-7092 SMARTsort for OS/2 and AIX SC26-7099 CONSULTING AND SERVICES IBM will provide the following services, for an additional charge, when the product becomes generally available: APPLICATION DEVELOPMENT ENVIRONMENT ASSESSMENT IBM consultants will assess the client's application development environment and recommend plans to maximize effectiveness. IBM consultants will also assess the client environment's readiness to implement new technologies such as workstation development, object-oriented COBOL, and/or client/server. An implementation plan with recommendations is provided. AD ENVIRONMENT ASSESSMENT: (IBM COBOL for MVS & VM) Assess the client's capability to migrate to new technologies such as workstation COBOL, object-oriented COBOL and/or client/server. COBOL MIGRATION ASSESSMENT: (IBM COBOL for MVS & VM) Assist the client in planning a smooth migration from an IBM legacy COBOL environment to one that takes advantage of new technology found in the IBM COBOL family of products. QUICK START: (IBM VisualAge for COBOL for OS/2) Install and configure the development environment for the IBM VisualAge for COBOL for OS/2 product and demonstrate the functional capability of this product. PROOF OF CONCEPT: (IBM COBOL for MVS & VM, IBM VisualAge for COBOL for OS/2, IBM COBOL Set for AIX) Design, develop and demonstrate a sample application using the new IBM COBOL technology. An installation and rollout plan with recommendations is provided. MIGRATION SERVICES: (IBM COBOL for MVS & VM, IBM VisualAge for COBOL for OS/2, IBM COBOL Set for AIX) -- Leverage the experience of IBM's consultants to help ensure a smooth migration to the IBM COBOL product, whether on the host or on the workstation. On the 370/390 host platform, IBM will provide assistance in migrating from down-level COBOL systems to IBM COBOL for MVS & VM. -- On the OS/2 platform, IBM will provide assistance in migrating from Micro Focus** COBOL on OS/2 to IBM VisualAge for COBOL for OS/2. This service will be available on a limited basis at product availability. Micro Focus** COBOL applications that are not compliant with existing COBOL ANSI standards may not be eligible for this service. -- On the AIX platform, similar migration services from Micro Focus** COBOL on AIX to IBM COBOL Set for AIX will be available on limited basis in late fourth quarter 1995. Micro Focus** COBOL applications that are not compliant with existing COBOL ANSI standards may not be eligible for this service. CUSTOMIZED EDUCATION: (IBM COBOL for MVS & VM, IBM VisualAge for COBOL for OS/2, IBM COBOL Set for AIX) -- A customized training plan is derived from the client's training requirements relative to a particular technology transition. Customized education and knowledge transfer is provided using experienced professionals, workshops and consultants. -- To receive a brochure containing more information on services available for IBM's New COBOL Family, call 1 800 IBM-3333, extension STAR 703. To arrange for an IBM representative to discuss your specific COBOL service requirements, contact your local IBM Marketing Representative or call 1- 800 IBM-4YOU. ** Trademark Micro Focus DISPLAYABLE SOFTCOPY PUBLICATIONS: -- IBM VisualAge for COBOL for OS/2 manuals are offered in displayable softcopy form in INF format. The displayable manuals are part of the basic machine-readable material. The files are shipped on CD-ROM. Terms and conditions for use of the machine-readable files are shipped with the files. SOURCE FILE PUBLICATIONS: -- IBM VisualAge for COBOL for OS/2 manuals are offered in POSTSCRIPT format and INF format as part of the basic machine-readable material. These files may be used to create unmodified printed copies of the manuals. Terms and conditions for use of the machine-readable files are shipped with the files. EDUCATION SUPPORT IBM will offer a new course to teach users about the new object-oriented COBOL products. The class is called Object-Oriented COBOL Programming Workshop. This course is designed for the experienced COBOL programmer who wishes to learn object-oriented programming in the COBOL language. Through the use of lectures and hands-on lab exercises, programmers learn to use the new object-oriented COBOL syntax and to compile and run object-oriented COBOL programs. In addition to this new course, IBM will offer customized education for the COBOL Solution family of products. For more detailed information about available training, please call 1-800 IBM-TEACh. You may request a free copy of the following announcement letters from your IBM marketing representative, or by calling 1-800-IBM-3333, ask for extension STAR703: IBM VisualAge for COBOL for OS/2 (295-453) IBM COBOL for MVS & VM Release 2 (295-457) IBM COBOL Set for AIX (295-452) A Few Words from the OO Team ---------------------------------------- With the new release of IBM COBOL for MVS & VM, Version 1 Release 2, we are introducing object-oriented capability into the COBOL language; this capability is also available on the OS/2 and AIX platforms. With this enhanced functionality you will be able to exploit the benefits of object-oriented programming from a proven, robust, business-oriented language. This is not a new language or new compiler, but rather extensions built upon IBM's proven compiler and runtime technologies. The object-oriented language extensions provide a rich object model that will allow you to write pure object-oriented applications; however, since they are an extension to the base COBOL language you will also be able to develop hybrid applications which mix object-oriented and procedural components. Thus you can move into the object-oriented world either as quickly or gradually as you desire. Another benefit of adding the object-oriented extensions to the COBOL language is that you retain full access to existing COBOL data and existing COBOL applications from your new object-oriented applications. COBOL's object-oriented support is based on IBM's System Object Model (SOM) technology and allows for the direct creation of and access to SOM objects via native COBOL language syntax. Through this support COBOL programmers have access to the expanding set of SOM-based frameworks. The object-oriented language extensions include new class definition syntax and a new INVOKE verb; these extensions are based on a subset of the evolving new ISO and ANSI COBOL standards. Additional support includes features such as recursion, support for long and mixed-case program names, object-oriented type checking, and IDL generation. We encourage you to explore these new features either as part of your new application development or as part of enhancements to your existing applications. IBM's NEW COBOL for MVS & VM (New Name for IBM COBOL/370 ) ----------------------------------------------------------------- IBM COBOL for MVS & VM revitalizes your dependable COBOL applications by adding object-oriented language extensions. COBOL for MVS & VM lets you create advanced client/server applications when used with IBM VisualAge for COBOL for OS/2 or IBM COBOL Set for AIX. Enhanced COBOL object-oriented language is also available on the OS/2 and AIX platforms. With COBOL for MVS & VM, you can use your existing skill base to upgrade your applications and expand them to other platforms. As a direct result, you will save money and increase productivity by reducing the need to retrain your employees. IBM COBOL for MVS & VM is an ideal, cost-effective solution that offers the following enhancements to COBOL: OBJECT - ORIENTED LANGUAGE EXTENSIONS -- COBOL programmers can create objects in a language they already know, reducing the long learning curve required to learn a new object-oriented language. -- Define and access System Object Model (SOM) objects directly in COBOL syntax. -- Object-oriented language extensions are a subset of the evolving ISO and ANSI COBOL Standards. CLIENT/SERVER ENABLERS -- Run server COBOL programs on your host system that are developed using IBM COBOL for MVS & VM with client programs on IBM VisualAge for COBOL for OS/2 or IBM COBOL Set for AIX. -- Run production COBOL programs on your host with GUI front-end COBOL code on OS/2. -- Develop COBOL applications almost anywhere you want, and then compile and run them anywhere you need them. IMPROVED INTEROPERABILITY WITH C AND C++ -- Provides ability to pass parameters by value and to call C functions that have function return values -- Null-terminated literal strings can be used in COBOL and passed to C routines -- "Pragmaless" inter - language communications IMPROVED PRODUCTIVITY AND EASE-OF-USE -- A rich set of tools help you easily take advantage of these COBOL enhancements -- Complementary team-oriented tools allow your groups of developers to coordinate their efforts IBM COBOL for MVS & VM Release 2 features a mainframe interactive debug tool. The debug tool allows programmers to debug their applications as they are executing in their native host environments. The mainframe interactive Debug Tool is offered along with the COBOL compiler in a Full Function Offering. An Alternate Function Offering is available for customers who do not wish to receive the Debug Tool with this product. HIGHLIGHTS IBM COBOL FOR MVS & VM: Brings object-oriented programming to the MVS COBOL programmer Enables COBOL access to existing SOM class libraries Extends COBOL to the client/server environment Improved interoperability with C and C++ Includes the mainframe interactive Debug Tool COBOL programmers can create objects in a language they already know, reducing the long learning curve required to learn a new object-oriented language Saves you time and money by: -- Taking advantage of the current skill base in your organization -- Preserving accessibility to your current COBOL-formatted data Increases ease-of-use with a variety of development tools DESCRIPTION The IBM COBOL family is designed to provide a way to leverage programmers' COBOL skills on to the client/server environment with object-oriented capability, tools to support existing and new COBOL applications, and visual GUI support. Productivity gains are possible with the support of reuse through object-oriented technology, the GUI Designer, available with IBM VisualAge for COBOL for OS/2, and the workbench tools. With the new tools and object-oriented support these new COBOL products contain, today's IBM COBOL programmer can realize substantial productivity gains. IBM COBOL for MVS & VM Release 2 brings object-oriented programming to the MVS COBOL programmer. The Direct-to-SOM compiler enables the creation of and access to SOM objects via native COBOL language syntax (see SOMobjects (TM) for MVS U.S. Software Announcement 294-637 dated October 4, 1994). SOM is a new object-oriented technology for building and manipulating class libraries. IBM COBOL programmers will be able to both access and develop SOM class libraries with native COBOL syntax. This capability also allows access to SOM objects implemented in other languages, in addition to full interoperability with existing COBOL applications and data. The following new features of IBM COBOL for MVS & VM Release 2 are MVS specific: - COBOL compiler with object-oriented language extensions based on the evolving ISO and ANSI COBOL Standards. - Support for the direct creation of SOM objects on the host via native COBOL language syntax. - Optional SOM IDL generation. - Access to existing SOM-based class libraries. The following new features and enhancements to IBM COBOL for MVS & VM Release 2 are available on both MVS and VM: - Improved interoperability with C and C++ - Source level compatibility with IBM VisualAge COBOL for OS/2 and IBM COBOL Set for AIX (except for platform-specific language extensions) - Source and object compatibility with IBM COBOL/370 and VS COBOL II - Support for recursive calls - Long and mixed case program names - Performance enhancements. For object-oriented applications, customers must also order SOMobjects for MVS (5696-822). IBM COBOL for MVS & VM Release 2 supports the high subset of American National Standards Institute (ANSI) COBOL (ANSI X3.23-1985) and International Standards Organization (ISO) COBOL (ISO 1989:1985), as well as the Intrinsic Function Module for COBOL (ANSI X3.23a-1989 and ISO 1989/Amendment 1). This product meets the specifications of Federal Information Processing Standards (FIPS) Publication 21-3 COBOL, and provides IBM extensions to these standards. MOVING THE HOST TO THE WORLD OF OBJECTS Host-based COBOL moves to the leading edge of application development productivity with the addition of object-oriented technology to the MVS COBOL environment. Object-oriented extensions let you encapsulate data and functions into objects that can be re-used for other applications, rather than developing new code. The object-oriented language extensions in IBM COBOL for MVS & VM (under MVS only) are based on the emerging ISO and ANSI COBOL standards and are natural syntax extensions to COBOL -- not a new language. These are the same object-oriented extensions you get with IBM VisualAge for COBOL for OS/2 and IBM COBOL Set for AIX, so you can develop object-oriented based host applications on the desktop. These extensions implement a complete object-oriented paradigm that allows you to define object classes, instantiate objects and have objects inherit characteristics from other classes of objects. You can use IBM's new COBOL products to create language-neutral SOM objects that interoperate with objects created in other SOM based object-oriented languages, ensuring the utility of your objects for a long time to come. These products all feature Direct-to-SOM capability. The combination of object-oriented language extensions and SOM class libraries provides an easy way to reuse code and develop higher quality applications that can be ready for production in less time. SOLID PROGRAMMING SUPPORT The IBM COBOL for MVS & VM compiler adds new function and builds on previous functions. The IBM COBOL for MVS & VM Release 2 compiler significantly improves the interoperability between COBOL and C/C++. This release provides users with the ability to pass parameters by value and the ability to call C functions that have function return values. Additionally, null terminated literal strings can be used in COBOL and passed to C service routines. COBOL now supports both defining and calling programs with long and mixed-case names. Finally, calls between COBOL and C no longer require special pragma source statements in the C program ("pragmaless" interlanguage communication). IBM COBOL for MVS & VM also allows you to simplify common programming tasks. For example, you can use the COBOL CALL statement to take advantage of IBM Language Environment for MVS & VM services for everything from storage management to condition handling. The condition handling support enables you to write programs in which error handling is done in a separate routine that is invoked only when needed. And you no longer have to write the error-handling routines in Assembler; with Language Environment, you can write them in COBOL. IBM COBOL for MVS & VM is supported by IBM Language Environment for MVS & VM Release 5, the common language environment for running applications written in COBOL, PL/I, FORTRAN and C. IBM Language Environment for MVS & VM thus allows you to enhance an application written in COBOL by adding a FORTRAN routine or Language Environment-enabled PL/I or C routine. IBM COBOL for MVS & VM also offers support for recursive program invocation in COBOL, structured programming language support, improved interoperability with other languages, and improved dynamic CALL performance. These and many other features help make your COBOL development more effective. READY FOR THE YEAR 2000? COBOL provides intrinsic functions that return and manipulate four-digit 2 year dates. For your applications that use two-digit year data, IBM COBOL for MVS & VM and Language Environment for MVS & VM give you efficient ways to accommodate the year 2000 with minimal changes to code and no change to data. Language Environment for MVS & VM can interpret a two-digit year as four-digits, allowing you to use existing data without modification and allowing your applications to run into the 21st century. But don't wait until 1999. Prepare for the year 2000 today! BRING YOUR HOST ENVIRONMENT UP TO SPEED IBM COBOL for MVS & VM gives you an excellent migration path from OS/VS COBOL and VS COBOL II. Most of your current programs will continue to run without modification, while you selectively update existing applications to take advantage of advanced functions. By migrating to IBM COBOL for MVS & VM, you get beyond the 24-bit addressing limitation and get virtual storage constraint relief, which is of special interest to OS/VS COBOL users. This improvement is important if you want to maximize the efficiency of your host as an effective server. SUBSYSTEMS AND DATABASES IBM COBOL for MVS & VM Release 2 programs will run with DB2, CICS, and IMS. Object-oriented COBOL programs will run with DB2 but will require an enabling PTF for DB2. This PTF will allow EXEC SQL statements to be coded inside COBOL class definitions. Object-oriented COBOL programs will run under CICS with some restrictions. These programs may make calls to other programs that contain an EXEC CICS statement and vice versa. However, EXEC CICS statements cannot be directly used inside class definitions at this time. Object-oriented COBOL programs will run under IMS/ESA, with some special considerations. MAINFRAME INTERACTIVE DEBUG TOOL OPTIONAL FEATURE The mainframe interactive Debug Tool featured in IBM COBOL for MVS & VM Release 2 will allow programmers to debug their applications as they are executing in their native host environment, such as CICS, IMS/ESA, and DB2. The Debug Tool features functions such as step mode, breakpoints, monitor, frequency analysis, and dynamic patching. It supports debugging of procedural COBOL applications, as well as object-oriented COBOL, PL/I and C/C++ applications. The debug session may also be recorded in a log file, allowing the programmer to replay the session. When used this way, the Debug Tool might assist in capturing test cases for future program validation or to further isolate a problem within an application. This allows programmers to ensure that the application is tested properly in the host environment before the application is put into production. The mainframe interactive Debug Tool is offered along with the COBOL compiler in a Full Function Offering. An Alternate Function Offering is available for customers who do not wish to receive the Debug Tool with this product. The Full Function offering of IBM C/C++ for MVS/ESA Version 3 and IBM PL/I for MVS & VM V1R1.1, also contain the Debug Tool. Existing CODE/370 Debug Tool users or users who currently have the Full Function version of the PL/I or C/C++, can order an upgrade that will provide the support for IBM COBOL for MVS & VM Release 2 under their existing Debug Tool feature. PART OF YOUR COMPLETE DEVELOPMENT ENVIRONMENT IBM COBOL for MVS & VM is part of a large family of compatible compilers, application development tools, and maintenance tools. IBM offers solid IBM COBOL compilers for OS/2, AIX, VSE, and AS/400, in addition to MVS and VM. You can also take advantage of IBM's extensive suite of COBOL maintenance tools to improve your existing applications. These tools assist with source code conversion from older ANSI standards to ANSI 1985 COBOL syntax; code analysis, reporting, and restructuring; CICS macro-level source conversion; Report Writer code support; testing; and parts cataloging. IBM COBOL for MVS & VM provides the functionality needed to take host programming into the future. For both existing and new applications, this IBM COBOL package gives you powerful ways to boost your programming productivity. Faster/Better/Smaller LE! ----------------------------- IBM Language Environment (R) for MVS & VM Release 5 continues to provide a common set of services in a single run-time environment. Additional support for emerging application development technologies such as object-oriented, distributed client/server, and open standards simultaneously enhances the run-time environment. IBM Language Environment for MVS & VM Release 5: -- Adds run-time support for IBM COBOL for MVS & VM Release 2. (IBM COBOL provides object-oriented COBOL language extensions and client/server enablers.) -- Below-the-line storage usage of Language Environment (LE) Here is the good news! In Language Environment for MVS & VM Version 1 Release 5, the amount of below-the-line storage has been reduced significantly. This reduction was accomplished by restructuring and moving some internal initialization routines to above-the-line storage. Storage used when running a minimal COBOL/370 program on MVS with the IBM supplied defaults: Below Above ------------ ------------ LE 1.3 1132K 156K LE 1.4 552K 316K LE 1.5 268K 928K ------------------------------------------------- Language Environment was not able to completely move all these modules above the line. This is primarily due to the current design of Language Environment to support AMODE24 applications. Enhances Language Environment's open capabilities with support for XPG4 in OpenEdition (TM) MVS/ESA (TM), support for POSIX** in OpenEdition for VM/ESA (R), and support for PL/I POSIX toleration. Offers FORTRAN compatibility support that allows object modules produced by various FORTRAN compilers to be link-edited and run under MVS with Language Environment. There are restrictions on the use of some previously existing functions. With the addition of FORTRAN compatibility support in Language Environment, interlanguage communication (ILC) is possible, with some restrictions, between FORTRAN routines compiled with any of the supported FORTRAN compilers and C/C++, COBOL, or PL/I routines. Contains COBOL and FORTRAN support of VSAM Record Level Sharing as well as enhancements for improved performance and storage relief, particularly for C POSIX applications. IBM Language Environment for MVS & VM Release 5 provides the required run-time environment for applications generated with the following high-level language products: IBM COBOL for MVS & VM IBM COBOL/370 (TM) IBM C/C++ for MVS/ESA IBM PL/I for MVS & VM IBM SAA AD/Cycle C/370 (TM) Refer to Software Announcement 295-457, dated October 24, 1995 for additional information on IBM COBOL for MVS & VM Release 2. AVAILABILITY DATE: September 29, 1995 (R) Registered trademark of International Business Machines Corporation (TM) Trademark of International Business Machines Corporation ** Company, product, or service name may be a trademark or service mark of others. IBM's Host Debug Tool now with OO support! ----------------------------------------------------- Are you interested in doing source level debugging with one of the best kept secrets in the System/390 world? How about debugging those JES batch jobs running in the background interactively and being able to step through them as they execute? You can also debug DB2 Stored Procedures. How about a common user interface for all your debugging needs, whether it be CICS, MVS/Batch, IMS, or DB/2 applications? Don't worry about having to teach your programmers two or three different tools. Best of all, you don't get charged for each environment separately. You get all of this for one low price! The MFI prices are only $120 to $732 per month (depending on processor size.) The Debug Tool allows you to debug the Language Environment for MVS & VM (LE) versions of COBOL, PL/I and C/C++. Support is included for several pre-LE versions of COBOL and PL/I as long as the object is re-linked with the LE runtime libraries. That provides an excellent migration tool for you as you consider moving from older versions of those languages into the new world of Language Environment. In a frantic effort to increase programmer productivity, the industry has seen new programming techniques and tools introduced including the following: - Object-Oriented Languages - GUI Programming Interfaces - Debug Tools Of the three listed, debug tools have clearly received the least attention. Yet there is no single tool that will provide a greater and more immediate productivity increase for both development and maintenance programmers. The Debug Tool is available as an integrated Edit, Compile, and Debug shell (CODE/370) or as a host debug-only feature of the latest COBOL or object-oriented COBOL, PL/I and C/C++ compilers. CODE/370 provides integrated tools for developing, porting, and maintaining application programs. These facilities help application programmers use their time effectively, while protecting customer investments in current compiler technology. Debug Tool provides facilities for debugging and testing COBOL/370, C/370, and PL/I programs at a source level. By running your application with the LE "TEST" option, you alert Debug Tool that you may be requiring its service sometime during the run of your application. You can bring it up at program initialization and then step through your application as you direct from the beginning, or provide some initial commands to bring up the Debug Tool when a certain load module is loaded or compile unit is entered. You can arrange to run your application and invoke the Debug Tool dynamically when an error condition occurs, for example, an error that would normally cause an abend. The Debug Tool displays a source level view of the point of failure, and provides facilities for diagnosing and correcting the problem. You can make adjustments and re-execute the code that previously failed without leaving the debug session. No longer do you have to spend hours analyzing dumps to figure out where and why the application failed. When the Debug Tool is running and the source or listing data files are available, each instruction is highlighted as it is executed. There are over 16 different ways (called breakpoints) of stopping your application due to various situations and having the Debug Tool step in to perform diagnostic work for you. For example, you have a variable that is getting overlaid by someone but you can't figure out how. Simply set an "AT CHANGE x" breakpoint on that variable and let Debug Tool stop execution for you whenever the variable gets changed. Anytime you stop with one of the breakpoints, you can provide a whole series of commands for Debug Tool to execute to list variables, change their values, or to set additional breakpoints. For COBOL and C, you also have the capability of executing your own code dynamically from the command line using the Debug Tool command language. As the programmer, you have control over how you want to use the Debug Tool. The Debug Tool is available through a mainframe interface terminal, such as an IBM 3270 terminal, or 3270 emulation (the MFI Debug Tool), or through the optional edit/compile/debug programmable workstation environment (the PWS Debug Tool). This workstation interface is only available when ordered as a CODE/370 feature. When ordered via one of the LE compilers, only the MFI interfaces is provided. It's your choice. Now, let's go over in just a bit more detail some of the functionality that the Debug Tool provides for you: Debugging in a host environment: Debug Tool lets you debug an application as it is executed in the host environment (such as CICS, IMS, or DB2). Debugging and testing occur in the application's host environment. Your interface to the Debug Tool can be host (3270) full screen or on an OS/2 (WARP) workstation GUI. It's your choice, but regardless of which one you select, it works for all your host environments. Source level debug: You can monitor source code for C/370, or a compiler listing for COBOL/370 or PL/I during program execution. Single-step debugging: To focus on a problem area, you can step line by line through the execution of an application. For example, when an application stops for a breakpoint, you can carefully examine each line that follows. Single-step debugging, along with the ability to set dynamic breakpoints, allows you to monitor, interrupt, and continue through the flow of the program to identify errors easily. Dynamic breakpoints: You can set breakpoints in an application program, monitor variables for changes, and watch for specified exceptions and conditions during program execution. For example, you can arrange to have an application break when a specific variable or location in storage is changed. You can set, change, and remove breakpoints as you go through the application. You do not need to know where you want to break before you start. Session logging: Each debug session can be logged in a file, for editing or replaying. This allows you to replay the actions taken in a session to pinpoint errors in an application. Testing tool: The Debug Tool is a test tool in addition to being an interactive and batch debug tool. By using the session logging feature as you debug code, you save the results of your session for use as input to a future Debug Tool session. As your code becomes stable, you can begin building up suites of testcase logs that are nothing more than a command stream of Debug Tool commands that can be processed as if you were entering the commands interactively from the display. The resulting Debug Tool log can then be compared with a "golden" copy to assure no code breakage has occurred as a result of changes to your application. The Debug Tool itself has been tested using this technique and allows for a large regression bucket of testcases to be built up over time. These testcases can be made available to developers to run as changes are made. They act as a regression test that can quickly identify code breakage when it occurs during development as opposed to after it has been placed into production. Debug mixed-language programs: Along with Language Environment, Debug Tool supports seamless debugging of mixed-language programs on the System/390 platform. This includes applications written in all three supported languages (COBOL, C/C++, and PL/I). Other language modules, such as Assembler, cannot be debugged at the source level but are tolerated if present. Extensive command set: The Debug Tool has a rich command language, part of which has the semantics of the language of the compile unit currently being debugged. This takes advantage of your language experience and makes you productive with the product almost immediately. As mentioned earlier, this command language allows you to write calls directly to your compiled code. For example, if you are unit testing a subroutine, using the command language you can repeatedly call a compiled routine providing different values for input parameters and then listing key variables to make sure the routine is working as designed, all within one debugging session and without having to write "scaffolding" code to put the routine through it's various paces. You can use the commands to alter the value of variables and structures as well as change the flow of control of the application. Program frequency: The Debug Tool can count each executable statement and keep track of that over the course of the application execution. This provides a mechanism to let you know what code paths have been tested (and how often) during that test run. Program information: The Debug Tool can display program and environment information. You can display, monitor, and alter program variables or storage in real time. You can also check how your application was compiled, and look at its structure. The CODE/370 Debug Tool supports the following products. In addition, the CODE/370 editor provides limited support for these products: IBM COBOL for MVS & VM Release 2 IBM COBOL/370 Version 1 Release 1 IBM VS COBOL II Version 1 Releases 3.1, 3.2, and 4.0 IBM C/C++ for MVS/ESA IBM C/370 Version 1 Release 2 IBM PL/I for MVS & VM Version 1 Release 1 OS PL/I Version 2 Releases 1, 2, and 3 So, what are you waiting for?!? Get on board. Don't be the last one on your block to experience the fun of debugging with the IBM Debug Tool! Trust us. You'll get a lot of product for a relatively low investment. Check it out. Gimme Speed! ----------------- IBM COBOL development has yet again improved the performance of COBOL dynamic calls, and static calls as well, with Language Environment for MVS & VM Release 5. These improvements are outlined in the following chart: COBOL R2 = IBM COBOL for MVS & VM Release 2, and LE R4(5) = IBM Language Environment for MVS & VM Release 4(5). For MVS batch dynamic CALL Literal (e.g. CALL "sub1") see note 1. COBOL R2 & LE R4 is 10% to 20% faster than VS COBOL II Rel 4. COBOL R2 & LE R5 is 30% faster than VS COBOL II Rel 4. For MVS batch dynamic CALL identifier (e.g. CALL sub1) see note 2. COBOL R2 & LE R4 is 20% to 45% faster than VS COBOL II Rel 4. COBOL R2 & LE R5 is 30% to 55% faster than VS COBOL II Rel 4. For MVS batch static CALL literal (e.g. CALL "sub1") see note 2. COBOL R2 & LE R4 is 20% to 25% faster than VS COBOL II Rel 4. COBOL R2 & LE R5 is 30% to 35% faster than VS COBOL II Rel 4. Note 1: The percentages represent the cpu time for the overhead of calling from 1 up to 60 unique subprograms. Note 2: The percentages represent the cpu time for the overhead of calling from 1 up to 99 unique subprograms. Report Writer - Big News! ------------------------------ Much has happened in recent years to report writer, both in the forthcoming ANSI COBOL Standard and in product availability, and some news of it is long overdue. Even if you haven't ever used it, read on: you may be doing all your millennium printouts with it! Report Writer in the Standard. In the new ISO COBOL draft, report writer is back in the main chapters rather than in an optional section. This draft is the basis for the future ISO / ANSI COBOL '97 standard which has no optional parts. In addition, ISO has re-written the report writer definition in a more readable form and have extended the facilities quite considerably. But for some slight syntax changes, the current report writer product offers all these features (see later) as well as preserving your investment in older COBOL code. The most notable of the many new capabilities in the Standard are: Tables: you can repeat lines and columns to print a table of data items; the spacing can be regular or irregular; you can SUM vertically and horizontally; Conditional items: you can code a condition on any LINE or COLUMN to control what gets printed; Variable columns: columns need not be in a fixed horizontal position; (they can also be RIGHT or CENTER); Brevity: you can skip much of the unneeded verbiage (PICTURE is assumed with VALUE, COL stands for COLUMN, + for PLUS, and so on); Behind-the-scenes checks: totals are checked for overflow, columns for overlap. Product news. The COBOL Report Writer Precompiler has been available for MVS and VM since 1986 and for VSE since 1991. The design of the precompiler emphasizes retention of the report writer syntax rather than permanent conversion. In fact, recent releases can be invoked directly by the current compilers for MVS, VM and VSE, so you get your object file and a single listing in one step. (This is quite similar to the method used by OS/VS COBOL and DOS/VS COBOL, except that their "precompiler" was part of the compiler product.) The precompiler still supports the ANS'68 syntax used in your older source programs, but it is based on the ANSI'85 standard supported by current IBM compilers, and can therefore take advantage of their 31-bit addressing capability. In addition, it anticipates the enhancements expected in the next standard (see above) and adds some very pleasant extensions of its own, including: Print styles: you can take advantage of "underscoring" and other features of the 3800 printer; 2-up, 3-up printing: you can print whole blocks of lines side-by-side across the page;cascading totals: you can define one control footing for several control break levels; multiple-choice: you can specify several alternate values or source items depending on different conditions; variable-length items: you can "squeeze out" spaces or zeros from print columns and display them in free format; new clauses: WRAP, MULTIPLE PAGE, PRESENT AFTER NEW PAGE are fairly self-explanatory; page buffer: you can "hold" each page while returning to earlier lines; print file handlers: you can direct report output through you own special software routines; user-written functions: you can develop your own routines to access print items which have a special format such as irregular dates or special access requirements such as database or OO. If you are a current user on MVS or VM, your current release is 1.4.0. On VSE, a new release 1.4.1 that runs with COBOL for VSE is planned for later this year. They all have essential maintenance updates. If you are not receiving these, please contact the author (below) or your IBM technical rep. If you are not a user, you could start by obtaining the publications separately via your usual IBM publications ordering hot-line, or ask your local rep about the products numbered below. Available publications: Programmer's Manual SC26-4301 This is a very readable manual, with a gold-mine of useful examples; it even incorporates a "Gentle Introduction" and a diskette that performs a colorful and detailed presentation. Installation and Operation for MVS/CMS SC26-4302. This combines technical information on both these platforms. Installation and Operation for VSE SC26-4864. This is needed for VSE users in place of the above. Product Numbers: 5798-DYR is the Precompiler and run-time Library. (Note: The run-time library is not required if your source programs stay within the ANS'68 or ANS'74 standards) 5798-DZX is the Library only for an additional run-time processor. If you need any more information or have any difficulty in obtaining any of the publications or product details, the author will be glad to help at any of the following contact points: Email: CPUSED6 at WINMVC or GBIBMJPG at IBMMAIL Phone: 0181-540-8409 (in UK) or 206-725-7431 (call-forward in US/Canada) Fax: 0181-543-4408 (in UK) Mail: SPC Systems Ltd., 69 Merton Hall Road, Wimbledon, London SW19 3PX, UK. attn: John R. Piggott. Go with the FLOW! ----------------------- Do you miss the FLOW option of IBM's OS/VS COBOL? You can get the same function using existing language in COBOL/370! Check this out: CONFIGURATION SECTION. SOURCE-COMPUTER. IBM-370 WITH DEBUGGING MODE. INPUT-OUTPUT SECTION. FILE-CONTROL. DATA DIVISION. FILE SECTION. WORKING-STORAGE SECTION. PROCEDURE DIVISION. DECLARATIVES. COBOL-DEBUG SECTION. USE FOR DEBUGGING ON ALL PROCEDURES. COBOL-FLOW-PARA. DISPLAY DEBUG-LINE DEBUG-NAME. END DECLARATIVES. Or you could use an equivalent EXEC CICS statement, like this, in place of your DISPLAY statement: EXEC CICS WRITEQ TD QUEUE(CESE) FROM(DEBUG-ITEM). Add a SOURCE COMPUTER paragraph with the WITH DEBUGGING MODE clause, and the single DECLARATIVE SECTION above, and that's it for source changes! Direct your DISPLAY output to SYSDBOUT(to mimic OS/VS COBOL) using the OUTDD(SYSDBOUT) compiler option. (At execution you can use the MSGFILE run-time option to do this as well.) At execution time, specify the DEBUG run-time option, and you will get the same list of executed procedures as you would have with OS/VS COBOL and the FLOW compiler option! And with EXEC CICS WRITEQ you can get FLOW-like output on CICS too! Tips & Hints: ---------------- Some tips and hints for IBM VisualAge for COBOL for OS/2: Before you get too involved in figuring out how that new VisualAge COBOL product works, we thought you would appreciate some helpful Hints and Tips from the development team. This list is intended to make VisualAge COBOL work for you and do make your work easier. This first series of VisualAge COBOL Hints and Tips is designed for the first time users. Later editions will reveal more details about the product once you have had time to work with it. Installation: 1. If you plan to install VisualAge COBOL on FAT drives, be aware that FAT takes additional space for the catalog. If you are attempting to install this product on a drive with just enough bytes for the product you will probably run out of space during the install. We recommend allowing 20% (or more) of the space requested by the install program for FAT overhead. Also, if this drive stores your SWAPPER.DAT file, be aware that the swapper can grow during installation or if you are running other applications while the install is executing. If you are installing the product on an HPFS drive, the exact number of bytes specified by the install is what will be used on your drive. 2. To avoid problems, make sure when the install program ends that you pay attention to the messages. The product install is not complete until you re-boot. During this re-boot, the final steps of the install are completed and CONFIG.SYS changes are activated. Make sure the messages all say successful. For more information, the Getting Started book describes a file called IWZINST.LOG, which contains all these install messages, in case you miss them. IBM VisualAge for COBOL for OS/2: 1. The concept of a project can be difficult to grasp the first time. Let us just explain that as a default, our project actions (the ones on the Project pull-down) are designed to support one .CBL file and one executable (.DLL or .EXE) per project, which may not work for your environment. You can set up your projects as you wish for your needs. Just make sure you pay particular attention to the Settings and the Tool Setup for your projects. You also have the capability of creating your own MAKE files. 2. Another hint about projects, they are grouped into three main types: GUI projects - projects that use the VisualAge COBOL GUI Designer to generate Graphical User Interfaces; Non-GUI or COBOL projects - a typical COBOL program (like the ones you have written in the past); and if you install the Remote Edit/Compile (Beta) components, you will get a third project type for accessing applications residing on MVS. 3. It is impossible in this short space to talk about the entire product. We suggest checking out the on-line documentation. There is a lot of good information to be found by double-clicking on the icons and folders for the Information Notebook, Task Helper, README, and Books. General: 1. For those of you interested in the Remote Edit/Compile (Beta) component - you will need to have the Full Function feature of the IBM COBOL for MVS & VM Release 2 (new name for IBM COBOL/370) product installed on your host machine. In addition, COBOL for MVS provides a Debug Tool to allow debugging on the host. Another tip here: Getting all this to work will require you to set up an APPC connection. This collection of special hints and informative tips has been gathered from our development team as we use and build the product. Let us know what you think of these ideas. We would also like to know any favorite tips you have that others would appreciate. Please see the information at the end of this newsletter for instructions on how to send us your favorites. Survey and Address Information: ----------------------------------------------------------------- We'd like to hear back from you regarding whether or not you felt this newsletter was helpful. We also welcome articles from customers for future newsletters. We have allowed space for your comments and address information. This information must be filled in and faxed to IBM at 408-463-2425 in order for future releases of the newsletter to be mailed to you. If you have done so already, you need not do so again. We hope you have found this useful and we look forward to tailoring this document to your needs in the future. General Note: IBM's VisualAge products and services are not associated with or sponsored by Visual Edge Software, Ltd. Comments: ----------------------------------------------------------------- ----------------------------------------------------------------- ----------------------------------------------------------------- ----------------------------------------------------------------- ----------------------------------------------------------------- ----------------------------------------------------------------- ----------------------------------------------------------------- ----------------------------------------------------------------- ----------------------------------------------------------------- ----------------------------------------------------------------- ----------------------------------------------------------------- ----------------------------------------------------------------- Address Information: Name: _______________________________ Company: ____________________________ Address1: ____________________________ Address2: ____________________________ Address3: ____________________________ State/Country _________________________ PostalCode: __________________________ Phone: ______________________________ Fax: ________________________________ ATTN: IBM Corporation Team COBOL Room E462 Ps. You can find the IBM COBOL Family on the World Wide Web by starting at the IBM Software Home Page (http://www.software.ibm.com), search on the keyword, GoCOBOL.