Skip to main content

Request for Expression of Interest

Printer-friendly version


Shared Variable Refactoring
We propose to analyze the application to determine which existing shared variables were used to establish context and which were used for passing values from one program to another. For the context set we would create appropriate context manager superprocedures or singleton classes and transform existing shared variable references into references to such components. For the shared variables being used like parameters, we would transform references into explicit inter-program parameters to make the interface and coupling clear.

Code Quality Check and Repair
ProLint2 provides the ABL community with a powerful and flexible tool for insuring conformance to standards and detecting bad practice or questionable constructs. However, it is most commonly used to evaluate individual new or modified code units because human effort is required to modify any problems that are detected. We propose to implement an automated process for detecting all problems of a particular type throughout the code base and then, following any needed exception handling markup, to provide transformations which will correct the code to the desired form.

ProRefactor Transforms
There are existing transforms available through ProRefactor3 which we would propose to replicate in the new tool in order to provide an integrated service. In some cases we might extend the functionality currently available. These transforms include:

  1. Force table and field names in code to match those in the schema;
  2. Force full qualification of all field names;
  3. De-abbreviate all table and field names;
  4. Rename Schema in database and code; and
  5. Convert string concatenation to SUBSTITUTE() for translatability.

Code Formatting
A number of shops have utilized programs like beauty.p to impose common stylistic standards on their code base, but these functions are typically limited in flexibility and are best applied on a program by program basis. We propose to create a highly configurable tool which can be applied to the code base as a whole, thus both assuring conformance to the standard and allowing for standards to change over time.

Not Magic
While some of the transformations discussed above might sound like magic, and thus raise doubt that they are possible, the technology is neither new nor particularly unusual, simply new in its application to ABL development issues. This technology has already been used for more than 10 years on other languages for transformation and code quality and the tools are already parsing ABL code and doing some transformations similar to those discussed here. To guide further work developing this technology for ABL, we are looking for companies that are interested in one of more of the listed transformations or who might have some other transformation need that we can explore. We need your input to know where to concentrate effort. Let us hear from you!

PDF Version attached below

AttachmentSize
RFEoI.pdf59.71 KB

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Internationalization

Internationalization might be another use of this tool.