Advertisement

Reliable programming in standard languages

  • Bernard Carré
Part of the Software Science and Engineering book series (SSEN)

Abstract

The designers of programming languages are presented with many, often conflicting, requirements; support for high-integrity programming is only one of them. As an extreme example, in the case of C, aimed at convenience of use and efficiency for low-level systems programming, it is clear that formal verification was not a major preoccupation. The design of Ada was obviously more professional, but its expressive power and generality were only achieved at great cost in complexity; in consequence, it too suffers from many ambiguities and insecurities.

Keywords

Programming Language Formal Definition Expressive Power Formal Verification Standard Language 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [Ambler 1977]
    Ambler, A. L. et al., “Gypsy: a language for specification and implementation of verifiable programs,” ACM SIGPLAN Notices, 12, No. 3, pp. 1–10 (1977).CrossRefGoogle Scholar
  2. [Andrews/Henhapl 1982]
    Andrews, D. and Henhapl, W., “Pascal,” in Formal Specification and Software Development (Eds. Bjorner, D. and Jones, C.), pp. 175-251, Prentice Hall.Google Scholar
  3. [Bergeretti/Carré 1985]
    Bergeretti, J. F. and Carré, B. A., “Information-flow and data-flow analysis of while-programs,” ACM Trans. on Prog. Lang. and Syst., 7, pp. 37–61 (1985).MATHCrossRefGoogle Scholar
  4. [BSI 1982]
    British Standards Institution, Specification for Computer Programming Language Pascal, BS 6192: 1982.Google Scholar
  5. [Bromell/Sadler 1987]
    Bromell, J. Y. and Sadler, S. J., “A strategy for the development of safety-critical systems,” in Achieving Safety and Reliability with Computer Systems (Ed. B. K. Daniels), pp. 1-13, Elsevier (1987).Google Scholar
  6. [Bundgaard/Schultz 1980]
    Bundgaard, J. and Schultz, L., “A denotational (static) semantics method for defining Ada context conditions,” in Towards a Formal Description of Ada, LNCS-98 (Eds. Bjorner D. and Oest O. N.), pp. 21-212, Springer Verlag (1980).Google Scholar
  7. [Carré/Debney 1985]
    Carré, B. A. and Debney, C. W., SPADE-PASCAL Manual, Program Validation Limited (1985).Google Scholar
  8. [Carré/Jennings 1988]
    Carré, B. A. and Jennings, T. J., SPARK—the SPADE Ada Kernel, Dept. of Electronics and Comp. Sci., University of Southampton (1988).Google Scholar
  9. [CEC 1987]
    Commission of the European Communities, The Draft Formal Definition of Ada, Dansk Datamatik Center (1987).Google Scholar
  10. [Craigen 1987]
    Craigen, D., A Description of m-Verdi, I. P. Sharp Technical Report TR-87-5420-02 (1987).Google Scholar
  11. [Cullyer/Goodenough 1987]
    Cullyer, W. J. and Goodenough, S. J., The choice of computer languages for use in safety-critical systems, RSRE Memorandum 3946 (1987).Google Scholar
  12. [Currie 1986]
    Currie, I. F., “NewSpeak—an unexceptional language,” Software Engineering Journal, 1, pp. 170–176, IEE/BCS (1986).CrossRefGoogle Scholar
  13. [De Millo 1979]
    De Millo, R. A., Lipton, R. J. and Perlis, A. J., “Social processes and proofs of theorems and programs”, Comm. ACM, 22, pp. 271–280 (1979).CrossRefGoogle Scholar
  14. [Feuer/Gehani 1982]
    Feuer, A. R. and Gehani, N. H., “A comparison of the programming languages C and Pascal”, ACM Computing Surveys, 14, pp. 73–92 (1982).MATHCrossRefGoogle Scholar
  15. [Hill 1987]
    Hill, A., The formal specification and verification of reusable software components using Ada with Asphodel, CEGB Report (1987).Google Scholar
  16. [Hoare/Wirth 1973]
    Hoare, C. A. R. and Wirth, N., “An axiomatic description of the programming language Pascal”, Acta Informatica, 2, pp. 335–355 (1973).CrossRefGoogle Scholar
  17. [Holzapfel/Winterstein 1988]
    Holzapfel, R. and Winterstein, G., “Ada in safety-critical applications,” Ada-Europe Conference, Munich 1988.Google Scholar
  18. [Jensen/Wirth 1974]
    Jensen, K. and Wirth, N., Pascal User Manual and Report, Springer Verlag (1974).Google Scholar
  19. [Lampson 1977]
    Lampson, B. W., Horning, J. J., London, R. L., Mitchell, J. G. and Popek, G. L., “Report on the programming language Euclid”, ACM SIGPLAN Notices, 12, No. 2 (1977).Google Scholar
  20. [Luckham 1987]
    Luckham D. C., von Henke F. W., Krieg-Brueckner B. and Owe O., ANNA—a Language for Annotating Ada Programs, LNCS-260, Springer Verlag (1987).Google Scholar
  21. [O’Neill 1988]
    O’Neill, I. M., Clutterbuck, D. L., Farrow, P. F., Summers, P. G. and Dolman W. G., “The formal verification of safety-critical assembly code,” Proceedings of SAFECOMP 88, IFAC/IFIP International Symposium on Safety-Related Computers, (Fulda, November 1988).Google Scholar
  22. [Pederson 1980]
    Pederson, J. S., “A formal semantics definition of sequential Ada,” in Towards a Formal Description of Ada, LNCS-98 (Eds. Bjorner D. and Oest O. N.), Springer-Verlag, pp. 213-308 (1980).Google Scholar
  23. [Tennent 1981]
    Tennent, R. D., Principles of Programming Languages, Prentice-Hall (1981).Google Scholar
  24. [Welsh/Hay 1986]
    Welsh, J. and Hay, A., A Model Implementation of Standard Pascal, Prentice Hall (1986).Google Scholar
  25. [Welsh/Sneeringer/Hoare 1977]
    Welsh, J., Sneeringer, W. J. and Hoare, C. A. R., “Ambiguities and insecurities in Pascal,” Software: Practice and Experience, 7, pp. 685–696 (1977).MATHCrossRefGoogle Scholar
  26. [Wichmann 1988a]
    Wichmann, B. A., “Notes on the security of programming languages,” in 10th Advances in Reliability Technology Symposium (Ed. Libberton G. P.), pp. 223-235, Elsevier (1988).Google Scholar
  27. [Wichmann 1988b]
    Wichmann, B. A., Insecurities in the Ada programming language: an interim report, NPL Report DITC 122/88 (1988).Google Scholar
  28. [Wichmann/Ciechanowicz 1983]
    Wichmann, B. A. and Ciechanowicz, Z. J. (Eds.), Pascal Compiler Validation, John Wiley (1983).Google Scholar

Copyright information

© Crown Copyright and Pitman Publishing 1989

Authors and Affiliations

  • Bernard Carré
    • 1
  1. 1.Program Validation LimitedUK

Personalised recommendations