CODE/400 offers many advantages

What are the advantages of CODE/400 and why would RPG or Cobol developers want to use it?

The CoOperative Development Environment (Code/400) is a set of integrated development tools which assist in a number of areas, writes Nigel Adams.

It contains a variety of tools, including a language sensitive editor, code verifier, DDS designer, debugger, and project organiser. If you are working connected to an AS/400, you can use Client Access, Personal Communications or TCP/IP as a means of connection.

However, you do not need to be continuously communicating with the AS/400 in order to use Code/400 - and many of its capabilities can be used in disconnected mode, giving greater flexibility with work patterns. In this article I have tried to describe the main capabilities of Code/400.

The Code/400 Project Organiser allows developers to access and manage AS/400 files, members, objects, and ADM parts. Filters can be used to gain fast GUI access to AS/400 objects, members, ADM projects, groups, and parts.

Pop-up menus can be used to perform actions such as edit, compile and debug on these items. Project level actions can used to perform general actions, and a Code Actions Notebook used to create and manage user-defined actions. The Project Organiser allows AS/400 or local commands to be entered or repeated without switching to an emulator. In order to improve efficiency of operations, projects and actions can be shared with other team members, and both can be imported and exported.

The editor that forms part of the Code/400 toolset is a workstation based editor, allowing you to work in disconnected mode. Because it is workstation based it takes advantage of many workstation features not available in text based editors, such as SEU. An example of this is a feature called Token Highlighting, which allows the Code/400 editor to highlight and emphasise the different parts of each RPG specification by colour coding the parts.

A simple, but useful example of this is commented lines of code, which are displayed in a different colour from the rest of the code, thus ensuring that these lines are easily identified to the programmer. Code/400 supports many different forms of RPG - not just RPG IV, but also RPG/400, RPG36, RPG38, and SQLRPG. It also supports several other AS/400 languages, including CL, DDS, C, Cobol and Java. The Code/400 editor can help programmers converting applications to RPG IV, in order to take advantage of the functionality offered by RPG IV.

From a single pull-down menu option, Code/400 converts a selected part of the source, or an entire source member, to RPG IV. It also allows code from an existing RPG/400 program to be included in an RPG IV program, allowing the reuse of existing portions of code as appropriate. Prompting on RPG source statements can be used similarly as to in SEU, however, this is often not used as the Code/400 edit panel understands the format of the RPG specification, and the Tab key can be used to jump from 'token' to 'token'.

The format line of the Code/400 editor changes automatically to the format of the source line of the current cursor location, and this clearly reduces the need for prompts. A number of other features in the Code/400 editor not found in SEU, include multiple levels of 'undo' support, periodic automatic saving of the source code to a local workstation file, a filter to allow the user to see only the lines containing a specific string, such as a variable name, and an indented view of nested logic.

The Code/400 verifier validates the code by checking both the language syntax and the semantics. It checks everything that the compiler would check prior to creating a compiled program or module object. The verifier runs on the programmer's workstation, but it automatically communicates with the AS/400 to obtain information which may be required from it, such as external file descriptions, or /COPY members.

Code that verifies without errors will almost certainly compile cleanly on the AS/400. This local verification clearly aids application development, by reducing the requirement to submit compile jobs to the AS/400. The Code/400 verifier has an option of caching, which allows a local copy of external file descriptions and /COPY members to be stored. This reduces the requirement to communicate with the AS/400, and, indeed, allows the programmer much greater ability to work effectively in 'local' mode.

The Code/400 Designer allows programmers to develop and maintain DDS for display files, printer files, and physical files. The graphical capabilities of the designer mean that it offers enhanced ease of use as compared with SDA or RLU. The designer allows you to navigate through records, keywords, and fields graphically, while allowing you to see the DDS source for individual records and fields, as well as the complete source file. It also includes built-in DDS verification and compile features.

The Code/400 Debugger allows you to browse source, setting, deleting, enabling, and disabling watch and line breakpoints, and stepping through code. A program monitor allows you to keep track of the contents of variables. The Code/400 debugger also contains something called the call stack window, which shows the programs currently in the AS/400 call stack. The debugger supports ILE/OPM languages as well as Java.

From what I have written, it can be seen that Code/400 contains a wide variety of capabilities that will help most application developers on the AS/400. It aids developers using a number of different high-level languages, including both RPG and Cobol, as well as Java, which is becoming an increasingly important language for new applications on the AS/400.

Email Alerts

Register now to receive ComputerWeekly.com IT-related news, guides and more, delivered to your inbox.
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

This was first published in August 2000


COMMENTS powered by Disqus  //  Commenting policy