Progress Software does not officially support reverse engineering
files, and there is no built-in feature to generate source code from these compiled files. community.progress.com
However, there are third-party tools and alternative methods to recover or view the underlying logic: Third-Party Decompilers
Several community-developed tools exist for decompiling Progress OpenEdge .r files, though their legality may vary depending on your licensing agreement: stackoverflow.com PROGRESS R-code Decompiler
: A frequently updated tool that supports Progress versions from v6 to v12. Recent updates include a dark theme and better processing for functions and procedures. It is available at progress-tools.x10.mx Fast4GL Decompiler : An older utility found on community forums.
: Historically, services from Julian Lyndon-Smith have been used for code recovery when source files were lost. Alternative Recovery Methods
If you cannot use a dedicated decompiler, these technical workarounds may help you understand the file's behavior: DEBUG-LISTING Files
: If you have the source code but need to map it to the compiled .r file, use the COMPILE...DEBUG-LIST
command. This generates a file showing the exact line numbers being executed. OpenEdge Debugger : You can use the prodebugenable -enable-all command in
to step through code "on the fly," provided the original source files are still in your PROPATH. R Bytecode (R-Project) : If you are referring to the R statistical language
rather than Progress, you can often extract function text directly in the console using stackoverflow.com Important Note:
Decompiled code is rarely a 100% perfect match for the original; comments are typically lost, and variable names may be altered. www.oehive.org Are you trying to recover a lost script , or are you building a tool that needs to interact with these files? PROGRESS R-code Decompiler
provide an official tool or feature to revert compiled r-code back to source code. Third-Party Services : The most known resource is Progress Tools , which operates as a paid recovery service
rather than a downloadable tool. It can typically recover 60–100% of information depending on the version (supports v6 through v12). Limitations
: Even with advanced services, recovered code may lose variable names, comments, or original formatting. Draft Post Options Depending on where you are posting (e.g., ProgressTalk Progress Community , or internal Slack), here are two templates: Option 1: Seeking a Solution (Standard Help Request)
Need to recover source from .r files - Decompiler recommendations? Hi everyone,
I’m currently in a situation where we only have the compiled files for a few critical procedures, and the original source code is missing.
I’m looking for the most reliable way to decompile or recover these files. I’ve seen mentions of the Progress R-code Decompiler service , but I wanted to check:
Has anyone used this service recently for OpenEdge v11 or v12?
Are there any other tools or methods (even partial) for extracting logic or table references from the r-code?
Any help or links to current tools would be greatly appreciated. Option 2: Sharing a Progress Update (If you found a link)
Update: Decompiling Progress .r files / Source Recovery Service For anyone else stuck with lost source code and only files, I’ve been researching decompilation options.
Since Progress doesn't offer a native "uncompile" feature, the best lead I’ve found is the Progress R-code Decompiler
. It’s a paid service, but it supports versions from v6 up to v12 and can recover a significant portion of the logic. Key details for those interested: Supports 32-bit and 64-bit r-code.
Expect 60–100% of the code, though variable names may be lost in older versions.
In the context of Progress OpenEdge, a feature designed to decompile .r files (compiled ABL/4GL code) would primarily serve as a recovery service for developers who have lost their original source code. Progress Software itself does not provide or support such a feature. Feature Concept: Progressive Source Recovery
A "solid" implementation of this feature would focus on security, accuracy, and ease of access.
Secure Recovery Link: A unique, time-sensitive link generated for users to upload proprietary .r files to a secure server for automated analysis and decompilation.
Progress Dashboard: Since decompilation is complex, a "decompile progress" status would track the reconstruction of segments like FrameLinks, functions, and procedures.
Partial-to-Full Reconstruction: The tool would aim to recover 60% to 100% of the original ABL logic, though variable names and comments are often permanently lost during the initial compilation process.
Version Compatibility: Support for multiple OpenEdge versions (from v6 through v12) to ensure broad utility for legacy systems. Existing Solutions
Because there are no official tools, developers often turn to third-party services:
PROGRESS R-code Decompiler: A well-known paid service that supports most common Progress versions and claims high recovery rates.
ProgressTalk Community Advice: Forums where experts discuss historical tools like "Dot R" and manual recovery methods. Progress .R file - Kinetic ERP - Epicor User Help Forum
Challenges in Decompiling Progress .r Files
| Challenge | Explanation |
|-----------|-------------|
| Loss of comments and formatting | Impossible to recover. |
| Mangled variable names | Decompiler will rename them arbitrarily. |
| Encrypted .r files | Some legacy systems use encryption; you need the key. |
| Platform dependency | .r files compiled on Windows may not be decompilable on Unix. |
| Progress version mismatch | Decompilers target specific versions (e.g., v9, v10, OpenEdge 11+). |
Modern OpenEdge (12+) uses additional obfuscation techniques, making decompilation extremely difficult or impossible without enterprise-level reverse engineering.
1. Use GitHub Gists
If you have a single script recovered from a decompile, a GitHub Gist is the best way to create a link.
- Go to gist.github.com.
- Paste your recovered R code.
- Click "Create public gist."
- Share the URL. This allows others to view, copy, and fork the code immediately.
3. The Manual Assembly Method (For Desperate Situations)
If you cannot find a working "decompile progress r file link," you can manually dump the r-code:
Step 1: Use r-code-dump utility (if included with your Progress install).
r-code-dump myfile.r > dump.txt
Step 2: Interpret the output. The dump will show bytecode instructions like:
GET 1(get variable slot 1)FIND e cust(find in customer table)JMP n(jump to label n)
Step 3: Hand-translate these opcodes back into ABL syntax. This is painstaking, but for critical 100-line programs, it is doable.
For more complex objects (like lm models), check the call
print(loaded_object$call)