Overview
VX/Cpp is Sector7’s automated tool for converting VMS / OpenVMS C source code into portable, POSIX-compliant ANSI C. It identifies, flags, and corrects VMS-specific issues, ensuring the generated code is optimized for Linux and Windows.
• Fully automated source code conversion
• POSIX-compliant ANSI C output
• Detects & fixes VMS-specific syntax and dependencies
• Works with existing Makefiles & build systems
• Supports VMS-specific #include handling & macros
VX/Cpp Operation
VX/Cpp functions similarly to a C compiler. It parses C source files and generates formatted reports, fix scripts, and POSIX-compliant source code.
Command Line Usage
VX/Cpp follows a standard compilation-like invocation:
vxcpp [switch_list] file_name [, file_name_list]
• switch_list: A list of switches, prefixed by -, to control VX/Cpp’s behavior.
• file_name: The C source file(s) to process.
VX/Cpp also provides configuration file support for setting default options.
VX/Cpp Features
VX/Cpp identifies and resolves key VMS / OpenVMS C issues, such as:
Example Fixes
VX/Cpp automatically corrects issues and generates a SED script for easy integration.
Fixing Missing Arguments
VMS / OpenVMS C
lib$set_logical(prim_log(1:12), primary_file);
Migrated ANSI C
lib$set_logical(prim_log(1:12), primary_file, 0, 0, 0);
Fixing Function Prototypes
VMS / OpenVMS C
int exampleFunction(); // No argument specification
Migrated ANSI C
int exampleFunction(void);
Configuration & Output
VX/Cpp provides three types of output:
1. Formatted Reports (stderr output)
2. Database Files (tab-separated logs)
3. SED Scripts (automated code fixes)
Sample Report Output
testx1.c:7: display 08.04 integer used as pointer
testx1.c:17: display 08.02 Multiple character constant
testx1.c:26: fix 16.02 Mismatched return type
testx1.c:57: replace atest with int atest
Applying Fixes Using SED
To apply automated fixes:
sed -f testx1.c.sed testx1.c > new_testx1.c
Why Choose VX/Cpp?
✅ Fully automated, reducing manual migration time
✅ Ensures consistent code output
✅ Supports continuous integration workflows
✅ Proven in high-complexity migrations
VX/Cpp simplifies the transition from VMS / OpenVMS to ANSI C, ensuring seamless portability across Linux and Windows environments.