Wir l[i]eben Datenbanken


PMS (Pattern Match Services)

The analysis of existing source codes frequently presents a big problem for software migration projects. Another task is transforming the source code into a different language. Therefore we have developed a universal tool for migrations: PMS

PMS allows you to easily dismantle and transform formal texts such as 3G languages, JCL and SQL. This tool forms the technical basis of software migrations.

The Pattern Match Services (PMS) are a powerful set of tools for the analysis of any sources such as programs, scripts, text files, etc. using patterns. Not only can PMS locate matched areas, but it can also transform the source on account of its place of discovery or generate new target files based on it. As an example, the tool has been used to generate a converter which made a fully automatic transformation of 3,000 JSP programs (Jackson Structured Programming) to structured COBOL.

PMS may be made sensible use of anywhere where programs or other source files are systematically being combed through and are to be processed by machine as a result of the analysis.

The most common use cases are

  • source code migration from one programming language to another (e.g. Assembler to COBOL)
  • mapping of sources from one »dialect« to another (e.g. ADABAS D SQL in MaxDB SQL) or
  • transformation of data types in programs (e.g. 2-digit to 4-digit year dates or 4-byte to 8-byte integer).

PMS also makes it easy to perform an intelligent full text search with subsequent classification and/or indexing of documents (e.g. HTML or XML files). The transformation, or rather the generating of target documents, can in turn be controlled by complex rules, for instance to ensure that the result corresponds to a specified, prescribed grammar.

PMS patterns represent search and transformation rules. Although there are similarities with regular expressions, these rules go far beyond their functionality. Here are some differentiators:

  • Nesting of rules: rules formulated with the aid of patterns can be nested at any level. Once a pattern has been defined it can become a component part of another pattern.
  • Syntax similar to the expanded Backus Naur Form (BNF): This allows options, and if necessary, precisely quantified repetitions and alternatives to be defined.
  • Recursive backtracking: trial and error analysis ensures that all possible solutions are tried.
  • Associative and/or approximate search: apart from exact searches, patterns also permit approximate, error-tolerant searches. Here PMS offers the possibility of specifying a similarity measure.

Beyond that, patterns have a high degree of maintainability and may be used in the most diverse contexts.

PMS is made available at various configuration levels and for various licensing models.

  • Enterprise Version: consists of rule editor and the components required for the integration of the generated code in various host languages
  • Stand-alone Development Version (Java-based)
  • Plugin for Eclipse
  • Runtime Environment for running PMS programs