This is one version of from your personal cache.
The page may have changed since that time. Click here for the current page.
Since this page is stored on your computer, publicly linking to this page will not work.

Google may not be affiliated with the authors of this page nor responsible for its content. This page may be protected by copyright.


a. Computational model: Imperative.
b. Machine/problem-oriented: Machine-oriented. CORAL is a small, simple language that has a long history of use by MOD in real-time systems. For concurrent and real-time features either a local real-time kernel system is used or the language is used in connection with MASCOT2 [3] and associated assembly code inserts.
c. Claimed advantages: The language is simple, efficient and portable.
d. Criticality: This only rates Poor, if used without severe restrictions.
e. Insecurities: Programs can overwrite themselves if anonymous references are used. Semantics are weak and may be interpreted differently in different compilers. There is no standard form of safe, separate compilation-although, again, each vendor is likely to provide for this.
f. Standards: BS 5905:1980 Specification for Computer Programming Language CORAL 66. (See also [2])
g. Supporting agency: MOD. Like MASCOT2, the language is a product of DRA Malvern.
h. Variants: Several UK vendors offer subsets that are claimed to be suitable for safety-critical work (they are almost bound to be more suitable than the full language). MALPAS is also available. Because CORAL 66 is such a small language it has been extended in several incompatible ways by different vendors.
i. Compiler validation: MOD have a test suite that is used to validate vendors' compilers. (See also reference [2].)
j. Tools/environments: A MALPAS translator exists for CORAL 66-see the Pascal entry in Annex R for more details.
k. Programming-in-the-large: Much like C, many large systems have been written in CORAL 66 despite the language having relatively poor support for modularisation.
l. Platforms: Various platforms support CORAL 66 compilers, particularly for UK defence industry hardware.
m. Reuse/libraries: None known.
n. Interfacing: Assembly-code inserts can be written and thus any system with a published interface described in machine-oriented terms can be interfaced to.
o. Cross-language linking: See Interfacing .
p. Portability issues: Portability is fine for the core language, but difficult if many language extensions have been used.
q. Skilled programmers: There are many programmers within MOD and UK defence industry. However, the language is considered obsolete and rarely used on new projects.
r. Typical prices: MOD have funded the development of several CORAL 66 compilers so prices should be minimal, but check with vendors.
s. Summary comments: (i) Legacy systems, written in the language, should be maintained, but it seems unlikely that "clean sheet" projects would use it. (ii) MOD validated compilers should be used. (iii) A carefully selected, and checked, subset may be suitable for safety-critical work should a better language not be available (e.g. SPARK Ada).
t. References: DELETE
standard [1] BS 5905:1980 Specification for Computer Programming Language CORAL 66, BSI, 1980.
DELETE [2] Def. Stan. 05-47/2, Computer on-line real-time applications language CORAL 66, Specification for compilers, MOD, 1983.
Dialects See Vendors' manuals.
quality texts [3] The Official Handbook of MASCOT, IECCA, 1987 (see also Def Stan 00-17).