Code Quality & Improvement

Tools for assessing the quality of existing code and/or for modifying it to comply to standards or other changes in structure or technique.


A simple tool to help generate webspeed code.

There are times when you create a web page with many html inputs. Creating the get-value() and variables for the logic of the program can be tedious and time consuming. This routine can help you generate the code automatically.

Simply feed it the HTML page (javascript and speedscript doesn't mean anything to it) and the output file you want the code to be contained in.

/* Given a file name of an html containing file, identify inputs and */
/* generate get-value and def var statements for them.               */

define input parameter InputFileName as character no-undo.

Security of the ABL language

Upon reading the blogs at computerworld.com (or infoworld.com - I can't remember) I came across a PDF report on safe coding practices (which can be found here http://www.safecode.org/publications/SAFECode_Dev_Practices1008.pdf ).

While the PDF has some ideas on management oriented safe practices, it does delve a little into safe practices regarding technology. What it doesn't is how it applies to ABL coding.


Prolint/Eclipse

John has started some initial work on a Java/Eclipse variant of Prolint. This variant of Prolint has the advantage of easy access to ProRefactor's output - especially its symbol tables and scoping information.

Questions about getting the original Prolint into Eclipse, and other "project direction" type questions, are completely unanswered. It's all very open for you to dive in, write some code, and help determine how best to make Prolint an integral part of working with 4GL/ABL in Eclipse and OpenEdge Architect.


Prolint

Prolint is a tool for automated source code review of Progress 4GL code. It reads one or more sourcefiles and examines it for bad programming practice

Prolint is a tool for automated source code review of Progress 4GL code. It reads one or more sourcefiles and examines it for bad programming practice

When you are interested Prolint, you are encouraged to subscribe to this group where you find the on-line tools to collaborate and discuss Prolint. There is a discussion forum, you can submit issues (for bugs and enhancement requests), you can modify the on-line documentation, and best of all: there is an e-mail list. So subscribe, and then don't forget to go to your subscription details to enable the e-mail notification!


ProRefactor

ProRefactor is a Java library for extending Proparse (joanju.com/proparse). At its core, it slurps Proparse's syntax tree into a tree of plain old Java objects, and further processes that tree to add symbol tables and other useful information.

ProRefactor has been used for building tools for code analysis, lint, documentation, search and replace, and more.

ProRefactor is available as an Eclipse plug-in and as a standalone Java archive (.jar) file.


Profiler Control tool

The Profiler Control tool can be used to perform profiler analysis of a Progress based application. The Profiler Control tool is designed to simplify the profiling and analysis of the performance data that the Progress run-time executable generates. This tool is a complete rewrite of the performance profiling tool that ships with some version of Progress. This tool includes a GUI for simplifying the launching and stopping of procedures. It has the ability to detect whether Progress Dynamics is running and allow the launching of dynamic containers as well as static smart objects and other procedures. It includes all of the same information, but removes much of the complexity of the previous tool by removing the requirement for a database and the timing consuming loading of profile data. In addition to previous execution statics, more information has been added. This tool also includes added functionality that gives the user the ability to perform side-by-side compares and exporting of data to external programs. Refer to the included Profiler_Readme.doc for a complete description.


Syndicate content