Compiler Vendor or Compiler Version Migration Services
Legacy applications must often change compiler version or vendors throughout a program’s lifetime. This change is oftentimes coincides with a host or target migration, or may simply be driven by the need to move to a current language version, reduce or eliminate licensing costs, or to replace a defunct, ill-supported, or aged compiler technology. In all cases, DDC-I has software services expertise to assist in these transitions. For example, DDC-I has several customers who have migrated from old versions of Tartan Ada running Cxx processors, which is no longer supported or required expensive runtime licenses, to DDC-I’s SCORE environment using C4x DSPs or PowerPC targets.
Migrating from one Ada environment to another is not always trivial - especially if the application wasn’t written to be portable by staying clear of compiler vendor-specific features (refer to Not All Adas Were Created Equal sidebar). In almost all cases, it is highly recommended that one starts out with a Migration Assessment Study to first scope the technical considerations and amount of work a compiler migration will take.
While Ada is a well-defined programming language, compiler vendors are free to make embellishments and run-time callable functions. For portability, there is always an issue for an application to restrict the calls to the runtime or other features outside the scope of Ada. This was evermore the case in the earlier distributions of Ada 83, where the Ada functionality wasn’t as rich as Ada 95.
Over the years, Ada 83 vendors provided additional Ada packages and routines which are not part of the Ada 83 environment. For example, DDC-I added a CIFO package in DACS. One function which can be troublesome for porting is Intrinsics (which are subprograms built into the compiler, so the compiler has special knowledge of those subprograms and handles them in a unique way). Intrinsics are not always that easily port across Ada compilers, as there isn’t an industry standard for how Intrinsics functions are employed. The same holds true for other features and functions compiler vendors offered.
DDC-I’s SCORE product offers a limited degree of additional features to simplify porting from various Ada 83 packages. This include an Ada 83 syntax compiler option within SCORE. Outside of this, DDC-I’s general philosophy and recommendation for migrating legacy applications is to implement Ada 95 features to displace the old extra calls whenever feasible. The Ada 95 language incorporates a number of features that were oftentimes implemented as Ada 83 add-ons (e.g., protected objects for semaphores).Â
Aside from enabling Ada 83 syntax, SCORE has a number of other vendor-based (e.g., Tartan) Intrinsics functions that are embeddable into it. DDC-I is also able to create other vendor-specific functions when its determined that this is the best path towards meeting a legacy application’s migration goals.
DDC-I’s Migration Assessment Study is an in-depth technical studies of the options, risks, and a suggested technical strategy to migrate legacy applications to new compiler vendor/versions – and to new target hardware, development environments, and onto newer programming languages. The study also includes an identifying porting issues, and details which issues may benefit by additions to the new compiler – and a technical discussion weight the merits of other alternatives.
Guidance Documents: DDC-I’s DACS/TADS Migration Guide covers a number of the DACS and TADS add-on's, with recommendations on how to solve the compiler gaps in these instances. DDC-I suggests that this document be reviewed by anyone contemplating a switch from an Ada ’83 compiler to SCORE should review this document along with considering DDC-I’s Migration Assessment Study program.
Customer Quote:
"Thank you for the excellent support during our evaluation phase... I need to make special mention of Michael, the support and comments he made really put me on the track of finding solutions very fast."