Form T140-0594 SQL-BIND.TXT Ada Information Clearinghouse, 1-800-AdaIC-11 (232-4211), 703/685-1477 Available Ada Bindings Database Language SQL Guest Editor: James W. Moore, Loral Federal Systems, 700 North Frederick Avenue, Gaithersburg, MD 20879; e-mail: moorej@ajpo.sei.cmu.edu 8.1 Description and standardization efforts [August 1993] This section first describes the ISO/ANSI standard Database Language SQL and its bindings to Ada. It then describes approaches such as the SAME and SAMeDL, which build upon the standard binding. Finally, some issues for a reference model are described. Database Language SQL and its binding to Ada Database Language SQL is a language for manipulating relational databases; it is a standard under both the American National Standards Institute (ANSI) and the International Organization for Standardization/International Electrotechnical Commission (ISO/IEC). ("SQL" is no longer an acronym. Once it was an acronym for "Structured Query Language", a language associated with a particular vendor's prototype database-management system. When referring to the standard, "SQL" is simply an abbreviation for ANSI's "Database Language SQL".) SQL provides facilities for defining, manipulating, and controlling data in a relational database. As a standard specification, it promotes the portability of database applications among conforming database management products. SQL is defined in terms of a reference language called the "module language". In principle, one defines the desired manipulations of the relational database by using the module language to write a number of SQL statements that are then collected as procedures within a "module". Programming-language bindings take either of two forms: a procedural form (which makes application-program subroutine calls on the procedures in the SQL module) or an embedded form (which has the effect of intermixing the SQL statements with the application program). The standard describes the embedded binding in terms of a syntactic transformation of the module and the application program. Use of the embedded binding involves inserting SQL statements into Ada programs, creating codes that are not pure Ada. These codes are intended to be pre-processed by a vendor-supplied preprocessor that replaces the SQL statements with compilable, but implementation-dependent, subroutine calls. For languages other than Ada, the embedded binding has been the form typically provided by database-management system (DBMS) vendors. The procedural binding (often called the "module binding") is a thin, direct binding of Ada to an SQL "module" that is a set of SQL statements packaged as procedures. The procedural binding describes how an Ada application program may make Ada subprogram calls upon the procedures of the SQL module. Thus an Ada application using the procedural binding is written in compilable Ada without interleaved SQL statements. Most Ada experts prefer the procedural binding to the embedded binding. The binding for Ada uses a set of data types that are specified in a package named SQL_STANDARD. The explicit gathering and declaration of the data types provides the Ada binding with an advantage over the bindings to other programming languages. For other languages, the base SQL types are mapped to base types of the programming language. Because the value ranges of the base types are implementation-defined, mismatches can (and do) occur. SQL_STANDARD solves the problem by parameterizing the Ada types to match the SQL data types. Other types declared in SQL_STANDARD improve the safety and convenience of error checking. Status of Database Language SQL and its binding to Ada The SQL standard has progressed through three generations: a 1986 version (sometimes called SQL/86): a 1989 version (sometimes called SQL/89 or simply SQL); and the recently approved 1992 version (sometimes called SQL2 or SQL/92). Users are likely to encounter both the 1989 and 1992 versions. The 1989 base SQL standard is approved by ANSI as X3.135-1989 and by ISO/IEC as 9075:1989. The base standard does not include the Ada binding. Instead, the Ada binding is specified in a separate standard, ANSI X3.168-1989. (The procedural binding appears in section 8 of the standard, and the embedded binding in section 9.) Federal Information Processing Standard (FIPS) 127-1, from the National Institute of Standards and Technology (NIST), has the effect of combining X3.135 and X3.168, as well as providing some additional specification for purposes of Federal procurement. As of this writing, many implementations of SQL/89 are available. The 1992 standard included extensive enhancements to SQL and incorporated an Ada binding. It is both an ISO (9075:1992) and an ANSI (X3.135-1992) standard. Recently, NIST has circulated FIPS 127-2, which describes how the federal government should procure products adhering to the ANSI/ISO standard. Except when waived, FIPS 127-2 will specify procurement of SQL/92 products effective beginning December 1993. Products conforming to FIPS 127-2 are expected to become available in 1994. Products implementing the Ada binding of SQL As of the date of this revision (August 1993), no known products offer the 1992 version of SQL or its Ada binding. The ANSI-standard procedural binding of Ada to SQL/89 has been implemented in products offered by Digital, IBM, Informix, and perhaps others. The embedded binding has been implemented in products offered by Oracle and perhaps others. Some other vendors provide products including bindings that may be effective but that may not conform to the ANSI standard. It should be noted that vendors may correctly advertise their DBMS as conformant when some of the provided language bindings are not conformant. So, it is important for a buyer to ensure that both the DBMS and the required language bindings conform to the desired level of the standard. NIST performs conformance testing upon SQL products and their bindings. An up-to-date list of conforming products can be obtained by ordering the NIST "Validated Products List" from the National Technical Information Service. Both subscriptions and single copies are available. Documentation of Database Language SQL and its binding to Ada The 1992 ANSI standard, X3.135-1992, can be obtained from ANSI at a cost of approximately $225. The ISO standard, ISO/IEC 9075:1992 is also available from ANSI at a cost of $230. The two are substantively identical. There are additional charges for shipping and handling. Contact: American National Standards Institute, 11 West 42nd Street, New York, NY 10036, Attn: Customer Service Department; tel: 212/642-4900. If still in print, the 1989 ANSI standards, X3.135-1989 and X3.168-1989, can be obtained from ANSI at a cost of approximately $40 and $28, respectively. The ISO standard, ISO/IEC 9075:1989, may be available from ANSI at a cost of approximately $86. The FIPS standards, FIPS 127-1 and FIPS 127-2, and the NIST Validated Products List (NISTIR 5167) can be obtained from: National Technical Information Service (NTIS), U.S. Commerce Department, 5285 Port Royal Road, Springfield, VA 22161; tel: 703/487-4650. There are several good textbooks describing SQL. The one that I use is: C.J. Date with Hugh Darwen, A Guide to the SQL Standard, 3rd edition (describes SQL/92), Addison-Wesley, 1993. A tutorial on the use of the procedural binding is provided in: James W. Moore, "The ANSI Binding of SQL to Ada," Ada Letters, XI:5, July/August 1991, published by the Association of Computing Machinery's Special Interest Group on Ada (SIGAda). During the early 1980's, a proposal variously named as "Ada/SQL" or as the "WIS", "IDA", or "RACOM" approach and described in papers by Friedman and Brykcynski was offered for standardization. For various reasons that proposal was rejected for standardization and is now inappropriate for use in new systems. The SAME approach and the SAMeDL Although the ANSI standard gives Ada a binding to SQL that is similar to that provided for other languages, some users desire an interface that is more "abstract" and that may be better suited to the software-engineering principles of Ada. To develop this interface, in 1988 the Software Engineering institute (SEI) created an informal, public committee, the SQL/Ada Module Extensions Design Committee (SAME-DC) chaired by Marc Graham. Besides drafting the binding eventually adopted by ANSI and ISO, the committee created a methodology, the SAME approach for layering an abstract module upon the ANSI-standard binding. This abstract module would convert SQL numeric return codes into Ada exceptions, provide for a safe treatment of database nulls, promote basic SQL data types to user-defined types, and group scalar database values into "row-records". It should be noted that the SAME approach provides for data abstraction but not procedural abstraction, i.e., each call from the application maps to a single SQL operation performed on the database. An SEI technical report describes the SAME approach: Guidelines for the Use of the SAME, CMU/SEI-89-TR-16, (DTIC #: AD-A223 932). Another SEI report provides suggested conformance criteria intended for use in peer evaluation of application of the approach: Conformance Criteria for the SAME Approach to Binding Ada Programs to SQL, SEI-89-SR-14. At least two attempts have been made to automate the SAME approach. Under contract by the DoD's Software Technology for Adaptable, Reliable Systems (STARS) program, Lockheed, led by Susan Mouton Phillips, provided Ada programs and a method for generating source code for the SAME abstract module via the declaration, instantiation, and execution of Ada generic packages. Two reports describe the project: an overview of the technical approach is given in General Definition of Project (Ada/SQL Binding), DTIC #: AD-A228 481; a more detailed description appears in User's Manual for a Prototype Binding of ANSI-Standard SQL to Ada Supporting the SAME Methodology, DTIC #: AD-A228 480. A more widely known effort, the SAMeDL, is the subject of a standardization effort. The SQL Ada Module Description Language (SAMeDL) is a language that, when processed by an appropriate tool, generates the SAME abstract module and other code necessary to access a particular database-management system. Although the SAMeDL is defined in terms of the ISO/ANSI binding, an implementation is not constrained to be layered upon the standard binding -- and may, in fact, be specific to a particular DBMS product. (Current standardization work may have the effect of requiring vendors of conformant products to state whether their products are implemented as a layer upon the ANSI/ISO standard SQL interface.) Implementations of the SAMeDL for some specific DBMS products are available from Intermetrics and from Competence Center Informatik. Efforts to standardize the SAMeDL are underway in ISO/IEC Joint Technical Committee, Subcommittee 22, Working Group 9 (JTC/SC22/WG9), and the language is currently at the Draft International Standard stage, as DIS 12227. The process may be completed in 1994. Although the detailed proposal has been modified as it progresses through ISO, one can find early descriptions in several SEI Technical reports: The SQL Ada Module Description Language -- SAMeDL (SEI-90-TR-26; DTIC #: AD-A235 781); Rationale for the SQL Ada Module Description Language (SEI-91-TR-4; DTIC #: AD-A235 780); and Notes on Applications of the SAMeDL (SEI-91-TR-12; DTIC #: AD-A240 851). Documentation of the SAME and SAMeDL Any of the SEI reports noted above can be obtained from: Research Access, 800 Vinial Street, Pittsburgh, PA 15212; tel: 800/685-6510. Reports that have been assigned DTIC accession numbers are available to registered DTIC users from Defense Technical Information Center, Cameron Station, Alexandria, VA 22304-6145; tel: 703/274-7633. Those who are not registered DTIC users may use the DTIC accession numbers to obtain the documents from NTIS at the address noted previously in this section. Reference Model The choices available in approaches for binding Ada to SQL suggest the need for a reference model. This thought has occurred to ISO-IEC JTC1/SC22/WG9, but the work to date is quite preliminary in nature. Nevertheless, users should be acquainted with some of the issues involved. The primary issue for an Ada user is the choice of a portability layer. One might imagine that a SAMeDL processor could generate an abstract module that uses the ISO/ANSI binding for access to the DBMS. Unfortunately, the proposed standard does not require this characteristic, and no current SAMeDL product implements it. Instead, they generate vendor-specific calls to specific DBMS products. So, the user has two choices regarding selection of an interface for portability and vendor-independence. If the user elects to use SAMeDL, then the portability interface is at the SAMeDL layer, and the user chooses among products that generate SAMeDL for some specific subset of DBMS products. If the user elects not to use SAMeDL, then the portability interface is at the ANSI/ISO binding level, and the user chooses among DBMS products that conform to that binding. The proposed SAMeDL standard would require the vendor of a SAMeDL processor to disclose whether or not the processor generates abstract modules that would layer upon the ISO/ANSI binding. Notes on some available resources It may be in order to provide some notes on some of the resources available electronically. These are particularly in reference to the ASSET files described in 8.2.3. ANSI SQL/Ada Binding Types The ANSI standard binding of Ada to SQL/89 is described in ANSI X3.168-1989, which can be obtained as described previously. Section 8 of that standard specifies an Ada code package, SQL_STANDARD, providing the base Ada types to be used for parameters of calls upon the SQL module. The text of that package can be found in element SQL_Standard.ada of ASSET_A_403. SAME Support Code (ASSET_A_403) Guidelines for the Use of the SAME, described previously, includes a listing of Ada support code in its Appendix C. Code that is similar (possibly identical) can be found in this asset under the name "SQL/ADA MODULE EXTENSIONS (SAME) STANDARD PACKAGES - CMU VERSION". Lockheed Prototype of the SAME Method (ASSET_A_159) The code of the Lockheed prototype for automating the SAME method, described previously, is contained in this asset under the name "ADA/SQL BINDINGS". The documentation described previously can be found in ASSET_A_280 and ASSET_A_281. SAMeDL Support Code (ASSET_A_406) Another way to generate an abstract SAME module is to use a SAMeDL compiler conforming to the proposed ISO standard for SAMeDL. The proposed standard includes listings of support code in its Appendices. A copy of some of that code (possibly revised) is contained in this asset under the name "SQL/ADA MODULE EXTENSIONS (SAME) STANDARD PACKAGES -- ISO VERSION". Intermetrics Prototype Module Language Compiler (ASSET_A_225) Under a STARS Foundation contract, Intermetrics developed a set of tools useful in permitting Ada applications running under the MVS operating system to access CICS and the Datacom/DB database-management system. The SQL Module Language Compiler might be of interest. It appears to process SQL modules (possibly ANSI X3.135-1989 conformant) to produce Ada package specifications and bodies implementing the SQL commands. The specifications appear to be similar to those required by ANSI X3.168-1989. The bodies apparently implement the SQL commands as implementation-dependent calls upon Datacom/DB. Code and documentation is available under the name "ADA INTERFACE TO CICS AND SQL". Other items Additional items of narrow or historical interest are also available in ASSET. 8.2 SQL resources available from repositories/software-reuse libraries 8.2.1 The Ada Joint Program Office host computer on the Internet The following information was taken from files on the Ada Joint Program Office's host computer (ajpo.sei.cmu.edu). A file name and subdirectory are noted at the beginning of each reference. For more information on the AJPO host, see Appendix C. SQL Ada Module Description Language (SAMeDL) Development Environment This file: ajpo.sei.cmu.edu: /public/atip/samedl/README SAMeDL background information The challenges pertaining to the use of Ada and SQL in a well-engineered information system led to the formation of the SQL Ada Module Extension Design Committee (SAME-DC) at the Software Engineering Institute (SEI). The committee developed the SQL Ada Module Extension (SAME) Methodology to support and extend the modular approach to using Ada and SQL in database applications. The language which is used to implement SAME is the SQL Ada Module Description Language, or SAMeDL. Using the SAME methodology requires that SQL statements be separated from the Ada application code, and encapsulated in separate modules. The SQL statements are not embedded in the Ada packages, thus isolating the Ada application from the DBMS design and implementation. SAMeDL is designed to facilitate the construction of Ada database applications that use the SAME methodology. [Note: The AJPO file from which the text above was taken also contains copyright notice and disclaimers stating such things as that the software is distributed without any warranty expressed or implied, and that general permission to copy and distribute the code is granted provided that this is not done for commercial advantage.] 8.2.2 AdaNet The following abstracts were taken from AdaNet, and describe software available in source-code form. For more information on AdaNet, see Appendix C. Title: Ada DBMS Interface (Ada/SQL) This was the "Proposed Binding Ada to Database Language SQL" presented to the responsible American National Standards Committee (X3H2). Title: Ada/SQL Test Data Generator (TDG) The Ada/SQL Test Data Generator (TDG) provides the ability to automatically populate test databases with test data. The TDG is the middle layer of a three-layer WIS IDA Ada/SQL prototype. It builds on the existing WIS IDA Ada/SQL prototype, and reuses most of the original prototype. This original Ada/SQL prototype, of about 6000 loc (lines of code), was built to prove the feasibility of writing schemas and queries in pure Ada, and it is widely available as GFE from a number of sources. It was not intended for production use, and, in fact, it was followed in late 1987-early 1988 by an advanced Ada/SQL prototype. As detailed in part C, the TDG is adding about 6000 loc to the original WIS Ada/SQL prototype. Title: Prototype Binding of ANSI-Standard SQL to Ada SQL/Ada binding not only should be standard Ada to promote maintainability and portability between systems with different Ada compilers but it also should be as close to standard SQL as the language permits. This SQL/Ada binding follows the above guidelines as strictly as possible. This binding allows all checking of data base semantics by the compiler because the binding is valid Ada. Also, the compiler is provided with all needed information to enforce these semantics. Title: SQL-Ada Interface / SQL Module Compiler The SQL-Ada module compiler provides a way for application utilities written in SQL module language to be translated into Ada packages that can be used when writing an Ada application for SQL. The SQL-Ada interface package developed for Datacom/DB provides an Ada Interface from which Ada application programs can perform database queries and database manipulations in SQL on Datacom/DB databases. 8.2.3 Asset Source for Software Engineering Technology (ASSET) The following information was taken from the ASSET Library Repository Catalog. For more information on ASSET, see Appendix C. Ada/SQL Bindings Order Number: ASSET_A_159 Alternate Name: PROTOTYPE BINDING OF ANSI-STANDARD SQL TO ADA SUPPORTING THE SAME METHODOLOGY Version: JUN90 Release Date: 14-JUN-90 Producer: IBM CORPORATION Reference: CDRL 02010-001A, DTIC AD-M000059 Asset Type: SOFTWARE - BUNDLE Size: 534 Kbytes, 68 Files Domains: ADA STANDARDS AND BINDINGS, DATABASE MANAGEMENT SYSTEM Keywords: ADA, BINDING, DBMS, SAME, SQL Collection: STANDARDS AND BINDINGS, STARS CATALOG Distribution: Approved for public release, distribution is unlimited The ANSI Standard binding of SQL to Ada (ANSI X3.168) specifies how Ada programs may access the services of relational databases which conform to ANSI Standard SQL (ANSI X3.135). The ANSI binding uses weak, primitive data types, but most application programs need a binding which deals with strong, user-defined types. To use the ANSI binding in such circumstances, an "abstract module" must be placed between the application program and the ANSI binding in order to raise the level of abstraction of the binding. A specification for such an abstract module is provided by "Guidelines for Use of the SAME," Software Engineering Institute Technical Report CMU/SEI-89-TR-16. ("SAME" is an acronym for "SQL/Ada Module Extensions.") Unfortunately, applying the SAME method without any automated support would be a tedious task. "Ada/SQL Bindings" provides the needed automated support. It presumes that an implementation of the module version of the ANSI Ada/SQL binding is provided by the database vendor. It then permits a user to generate an abstract module conforming to the SAME method by instantiating Ada generics and executing the resulting program. Documents supporting this software are available. They are "General Definition of Project" (ASSET_A_280; DTIC # AD-A228481), and "User's Manual for a Prototype Binding of ANSI-Standard SQL to Ada Supporting the SAME Methodology" (ASSET_A_281; DTIC # AD-A228 480). Ada/SQL Bindings: General Definition of Project Order Number: ASSET_A_280 Alternate Name: GENERAL DEFINITION OF PROJECT (ADA/SQL BINDING) Availability: paper only Release Date: 31-DEC-89 Producer: IBM CORPORATION Reference: CDRL 02000-001, DTIC AD-A228481 Asset Type: SOFTWARE DOCUMENTATION Size: 16 Pages Domains: ADA STANDARDS AND BINDINGS, DATABASE MANAGEMENT SYSTEM Keywords: ADA, BINDING, DBMS, DESIGN, SAME, SQL Collection: STANDARDS AND BINDINGS, STARS CATALOG Distribution: Approved for public release, distribution is unlimited This report presents the background, technical approach, and top-level capabilities of the project to implement an Ada binding to SQL (Structured Query Language). It also discusses such technical problems as storing arbitrary data types in a data base and using SAME (SQL/Ada Module Extensions) without a module language compiler. Ada code is available (ASSET_A_159; Ada/SQL Bindings. DTIC number AD-M000059) to automatically generate the Ada package specifications and bodies to support the SAME Methodology. A User's Manual (ASSET_A_281: User's Manual for a Prototype Binding of ANSI-Standard SQL to Ada Supporting the SAME Methodology. DTIC # AD-A228 480) is also available containing installation instructions, compilation order, guidelines for input data, detailed steps to create a specific binding, and information about porting the system to another DBMS. Ada/SQL Bindings: Users Manual Order Number: ASSET_A_281 Alternate Name: USERS MANUAL FOR A PROTOTYPE BINDING OF ANSI-STANDARD SQL TO ADA Availability: paper only Release Date: 30-JUN-90 Producer: IBM CORPORATION Reference: CDRL 02020-001, DTIC AD-A228480 Asset Type: SOFTWARE DOCUMENTATION Size: 135 Pages Domains: ADA STANDARDS AND BINDINGS, DATABASE MANAGEMENT SYSTEM Keywords: ADA, BINDING, DBMS, SAME, SQL, USER MANUAL Collection: STANDARDS AND BINDINGS, STARS CATALOG Distribution: Approved for public release, distribution is unlimited This User's Manual for the Ada/SQL Prototype Binding contains installation instructions, compilation order, guidelines for input data, detailed steps to create a specific binding, and information about porting the system to another DBMS. The Ada software code is available (ASSET_A_159: Ada/SQL Bindings. DTIC # AD-M000 059) to automatically generate the Ada package specifications and bodies to support the SAME methodology. Also available is a document, "General Definition of Project" (ASSET_A_280; DTIC # AD-A228 481) which presents the background, technical approach, and top-level capabilities of the project. Ada/SQL and CICS Bindings Order Number: ASSET_A_225 Alternate Name: ADA INTERFACE TO CICS AND SQL, INTER-CICSQL2 Version: 1.1 Release Date: 9-AUG-88 Producer: INTERMETRICS, INC. Reference: INTER-CICSQL2 Asset Type: SOFTWARE - BUNDLE Size: 2532 Kbytes, 362 Files Domains: ADA STANDARDS AND BINDINGS, DATABASE MANAGEMENT SYSTEM Keywords: ADA, BINDING, CICS, DBMS, SQL Collection: STANDARDS AND BINDINGS, STARS FOUNDATIONS Distribution: Approved for public release, distribution is unlimited An interface that binds Ada to the IBM CICS transaction-oriented applications. In addition, it provides SQL for future database applications to allow migration to Ada while retaining massive historical databases and existing functional software. SQL/Ada Module Extensions (SAME) Standard Packages - CMU Version Order Number: ASSET_A_403 Alternate Name: SAME STANDARD PACKAGES Version: CMU Release Date: 02-DEC-88 Producer: SOFTWARE ENGINEERING INSTITUTE Author: Marc H. Graham Asset Type: SOFTWARE - BUNDLE Size: 146 Kbytes, 26 Files Domains: ADA STANDARDS AND BINDINGS, DATABASE MANAGEMENT SYSTEM Keywords: ADA, ADA BINDINGS, BINDING, DBMS, SAME, SQL Collection: GENERAL, STANDARDS AND BINDINGS Distribution: Approved for public release, distribution is unlimited These software packages support the SAME (SQL/ADA MODULE EXTENSIONS) approach developed by the SAME-DC committee headed by Marc Graham of the SEI. They present strongly typed data types to interface with the SQL Bindings. These packages are tailorable to many applications. The "Installation" document gives complete instructions on how to tailor the packages for the specific database and computer system used, and how to compile the packages. SQL/Ada Module Extensions (SAME) Standard Packages - ISO Version Order Number: ASSET_A_406 Alternate Name: SAME STANDARD PACKAGES Version: ISO Release Date: 02-DEC-88 Producer: SOFTWARE ENGINEERING INSTITUTE Author: Marc H. Graham Asset Type: SOFTWARE - BUNDLE Size: 2 Files, 51 Kbytes Domains: ADA STANDARDS AND BINDINGS, DATABASE MANAGEMENT SYSTEM Keywords: ADA, ADA BINDINGS, ANSI X3.168, BINDING, DBMS, ISO SAMEDL STANDARD, SAMEDL, SQL Collection: GENERAL, STANDARDS AND BINDINGS Distribution: Approved for public release, distribution is unlimited These software packages support the SAMeDL approach to ANSI standard SQL to Ada bindings, developed by the SAME-DC committee headed by Marc Graham of the SEI. They present strongly typed data types to support the SQL bindings. These packages are similar to the packages in ASSET_A_403, with subtle differences to conform to ISO standards. One of the packages contains Ada specifications only (no bodies) and the other is written in SAMeDL and requires use of a SAMeDL compiler. 8.2.4 Public Ada Library (PAL) The PAL contains SQL files under its ../bindings/sql directory, the contents of which are described in subdirectory README files. The text of those README files are the same as the text portions of the ASSET catalog references given above for SQL/Ada Module Extensions (SAME) Standard Packages -- CMU Version, SQL/Ada Module Extensions (SAME) Standard Packages -- ISO Version, Ada/SQL and CICS Bindings, and Ada/SQL Bindings. For more information on the PAL, see Appendix C. 8.3 SQL products available from vendors AETECH, Inc. Available Ada bindings for AETECH Ada compilers: Microsoft Windows, PHIGS, POSIX, SQL (Supra), X-Windows (Motif, Open Look). Host/Target: 80386 (& 80486) PCs. For more information, contact: Jim Dorman, AETECH, Inc., 5841 Edison Place, Suite 110, Carlsbad, CA 92008, USA; tel: 619/431-7714; fax: 619/431-0860. Alsys, Inc. Alsys' product, RISCAda, includes a graphical debugger (AdaTracer), a productivity tool box (ARCS 2.0), a highly optimized Ada compilation engine and bindings to government and industry standards. Bindings currently available include POSIX, SQL, OSF/Motif, and Open Look. Ada bindings are available for GKS, PHIGS, and TCP/IP. It is supported by the TeleGen2 OCT compiler for SPARC stations. Host/Target: SPARC workstations under Solaris 2.1 and SunOS 4.1 and above. For more information, contact: Alsys Sales, Alsys, Inc., 67 South Bedford Street, Burlington, MA 01803, USA; tel: 617/270-0030, fax: 617/270-6882, e-mail marketing@alsys.com. Competence Center Informatik GmbH (CCI) The Competence Center Informatik GmbH (CCI) provides the CCI Ada SQL Handler (CASH), a commercial compiler for SAMeDL to support bindings between Ada and SQL. In its current version, CASH supports Oracle 6.0 as RDBMS. Host/Target: IBM RISCsystem/6000 or Sun SPARCstation; runs under AIX 3 or SunOS. Further host-environments and RDBMSs are in preparation. For more information, contact: Dr. Peter E. Obermayer, Competence Center Informatik GmbH, P.O. Box 1225, 49792 Meppen, Germany; or: Lohberg 10, 49716 Meppen, Germany; tel: xx-5931-805-469; fax : xx-5931-805-100; Telex: 98676 cci d; e-mail (EUnet): obermaye@cci.de. Digital Equipment Corporation Digital Equipment Corporation has bindings available for GKS, PHIGS, SQL, and X/OSF Motif for DEC Ada on OpenVMS VAX, OpenVMS AXP Alpha, and DEC OSF/1 AXP Alpha Systems. The Ada bindings are provided either as part of a compiler product or the services/facilities that are provided by Digital and its suppliers. Host/Target: DEC VAX under OpenVMS; DEC AXP Alpha under OpenVMS; and DEC AXP Alpha under DEC OSF/1. For more information, contact: Mary Anne Cacciola, Digital Equipment Corporation, 110 Spit Brook Road, Nashua, NH 03062, USA; tel: 603/881-1028. IBM The IBM Ada/370 product provides bindings to GPEF and SQL and the Customer Information Control System (CICS -- a transaction-processing system). It runs on the IBM 30XX, 43XX, 937X and ES/9000 family processors, which are supported by the following operating systems: 1. VM/System Product (VM/SP) Release 5 or 6 (5664-167) with or without High Performance Option (HPO) (5664-173); 2. VM/Extended Architecture System Product (VM/XA SP) Release 2 (5664-308); 3. VM/Enterprise Systems Architecture (VM/ESA) Release 1 (5684-112); 4. MVS/SP-JES2 Version 2 Release 2 (MVS/XA) (5740-XC6); 5. MVS/SP-JES3 Version 2 Release 2 (MVS/XA) (5665-291); 6. MVS/SP-JES2 Version 3 Release 1 (MVS/ESA) (5685-001); 7. MVS/SP-JES3 Version 3 Release 1 (MVS/ESA) (5685-002); 8. MVS/ESA-JES2 Version 4 Release 1 or 2 (MVS/ESA) (5695-047); 9. MVS/ESA-JES3 Version 4 Release 1 or 2 (MVS/ESA) (5695-048); Note: All of the above Operating Environments are supported in 31-bit addressing mode with the exception of VM/System Product (VM/SP) Release 5 and 6 which are restricted to 24-bit addressing. The IBM Ada/370 licensed programs (5706-292 and 5706-295) consist of an Ada language compiler and a run-time library for use on various IBM MVS and VM/CMS operating systems. The IBM Ada/370 product provides many development environment aids -- such as a source-level debugger (optionally with windowing when using IBM Graphical Data Display Manager Licensed Program for either MVS or VM), a highly configurable source-code formatter to assist in enforcing project coding standards, a dependency lister, a non-intrusive performance profiler, a cross-reference utility, and an Ada library-management capability. Ada/370 programs can call VS COBOL II subprograms similar to the calling of VS FORTRAN, C/370, and S/370 assembler subprograms; Ada/370 exported subprograms can be called from VS COBOL II, VS FORTRAN, C/370, AND S/370 assembler programs. Additionally, separate features support inter-operation with other major database and transaction-processing subsystems. One such feature of IBM Ada/370, called the SQL Module Processor for DB2 Database Manager, supports the procedural binding of Ada and SQL. Another such feature of IBM Ada/370, called the IBM CICS Module Processor/MVS, supports the procedural binding of Ada and CICS, including CICS/OS/VS, CICS/MVS and CICS/ESA. Together with the SQL Module Processor for DB2 Database Manager, powerful Ada applications utilizing the combined features of these two subsystems can be productively built. This product conforms to the following standards: ANSI-X3.135-1986 -- Database Language-SQL; ANSI-X3.168-1989 -- Procedural Binding of Ada and SQL; ANSI/MIL-STD-1815A -- Ada '83; ISO 8652-1987, Programming Languages, Ada; FIPS PUB 119 -- Ada; FIPS PUB 127-1 SQL through IBM DB2 Database Manager V2.3; CIFO 2.0 & 3.0 -- Catalog of Interface Features & Options; Validated at current level (1.11) of the ACVC test suite. For more information, contact: Barry Lee, IBM Corporation, 844 Don Mills Road, North York, Ontario, Canada M3C 1V7; tel: 416/448-3174; fax: 416/448-4810. Ingres Corporation Ingres Embedded SQL refers to SQL statements embedded in a host language such as Ada. The Ingres Embedded SQL statements available include almost all interactive SQL statements including statements for data definition and data manipulation. In addition, Embedded SQL contains a set of forms statements that allow you to develop forms-based applications. All embedded SQL/FORMS (Oracle) and SQL statements are processed by the Embedded SQL preprocessor, which converts the statements into host-language source-code statements. These statements call a run-time library that provides the interface to Ingres. Host/Target: UNIX (some), VMS (all) For more information, contact: Armando Coles, Ingres, 1080 Marina Village Parkway, Alameda, CA 94501, USA; tel: 800/446-4737; fax: 510/748-2545. Intermetrics, Inc. Intermetrics offers a SAMeDL compiler that provides an Ada binding to SQL. When using the SAMeDL compiler, the user describes the interface in the SQL Ada Module Description Language, and then invokes the compiler to generate all necessary Ada code and interfacing software. Because SAMeDL provides a flexible and portable way to interface Ada with SQL applications, it is a requirement for several DoD programs, including LCU, CHS-2 and I-CASE. It is currently a draft ISO standard (ISO/IEC Standard N12227). The SAMeDL compiler is hosted on a variety of UNIX-based workstations and personal computers. It has been targeted to several DBMSs, including Sybase, Informix and Oracle, and is supported by Verdix and Alsys compilers. Intermetrics will provide tailoring to adapt it to any host platform and any SQL-compliant DBMS. Host/Target: 386/486 PC under UNIX, HP 9000 under UNIX, Sun SPARC under UNIX, RS-6000 under UNIX. For more information, contact: Bill Zimmerman, Intermetrics, Inc., 733 Concord Avenue, Cambridge, MA 02138, USA; tel: 617/661-1840; fax: 617/868-2843. Oracle Corporation Oracle Corporation's Pro*Ada is an SQL/Ada binding that is 100% compliant with the FIPS 127-1 standard for embedded SQL/Ada bindings. Pro*Ada includes both an ANSI standard pre-compiler for SQL and an ORACLE dependent call interface. Programmers can develop systems using either the pre-compiler or the call interface or both. Around the end of 1993, an ANSI-standard Module Language Compiler should be available. Host/Target: The validated Verdix, TeleSoft, Alsys, and DECAda compilers will support Pro*Ada for the following machines as both host and target: IBM RS/6000 (Verdix Ada); SCO (Alsys Ada); SGI Irix (Verdix Ada); HP (Alsys Ada); DEC Ultrix (Verdix Ada); AT&T 3B2 R3 (Verdix Ada); 88open (Verdix Ada (Motorola 88K and DG Aviion)); IBM VMS/VM (IBM Ada); DEC VMS (DEC Ada); and SunOS (SunAda). For more information, contact: Mr. Amr Assal, Oracle Corporation, MS 659413, 500 Oracle Parkway, Redwood Shores, CA 94065, USA; tel: 415/506-2805. SL Corporation SL Corporation provides Ada binding support for its SL-GMS toolkit; this includes support for GPEF, GPPF, POSIX, SQL, TCP/IP, OSF/Motif, and Open Look. SL-GMS is a toolkit for developing dynamic graphics screens for real-time or highly interactive applications. Non-programmers can design application screens in a standard drawing-tool mode, connect them to real-time data sources and animate screen objects to visualize changing data values. SL-GMS allows the design of custom "GISMOs" to input values or control the application and supports Motif, Open Look and other X toolkit widgets. SL-GMS is used to provide real-time graphics for applications in the fields of manufacturing, process control, network management, avionics, and financial tracking. Host/Target: Validated Verdix and DEC compilers support SL-GMS for the following machines as both host and target: DEC-DECstation/ULTRIX 4.0; DEC-VAXstation/ULTRIX 4.0; DEC-VAXstation/VMS 5.4; DEC-VAXstation/VMS 5.5; DEC Alpha PCs/Windows NT; IBM-RS6000/AIX; HP-9000/300/UNIX; HP-9000/400/UNIX; HP-9000/700/UNIX; HP-9000/800/UNIX; PC-386/IX UNIX; PC-386/SCO UNIX; PC-386/Lynx; PC-386/0S2; PC-386/System 5.4; SGI-4D/IRIX 3.3; Sun-3/SunOS 4.1; SunSPARC/SunOS 4.1 and Solaris; 88 Open/BCS Compliant; and Intel PCs/Windows NT. For more information, contact: Mike Meagher, SL Corporation, 240 Tamal Vista Boulevard, Corte Madera, CA 94926, USA; tel: 415/927-1724; fax: 415/927-0878. ********************** The views, opinions, and findings contained in this report are those of the author(s) and should not be construed as an official Agency position, policy, or decision, unless so designated by other official documentation. Copyright 1994. IIT Research Institute. All rights assigned to the U.S. Government (Ada Joint Program Office). Permission to reprint this flyer, in whole or in part, is granted, provided the AdaIC is acknowledged as the source. If this flyer is reprinted as a part of a published document, please send the AdaIC a courtesy copy of the publication. Ada Information Clearinghouse (AdaIC) P.O. Box 46593 Washington, DC 20050-6593 1-800-AdaIC-11 (232-4211), 703/685-1477, FAX 703/685-7019 adainfo@ajpo.sei.cmu.edu; CompuServe 70312,3303 The AdaIC is sponsored by the Ada Joint Program Office and operated by IIT Research Institute.