| 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). |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |