Skip to main content

Reliable programming in standard languages

  • Chapter

Part of the book series: Software Science and Engineering ((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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

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

    Article  Google Scholar 

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

    Article  MATH  Google Scholar 

  4. British Standards Institution, Specification for Computer Programming Language Pascal, BS 6192: 1982.

    Google Scholar 

  5. 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, 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é, B. A. and Debney, C. W., SPADE-PASCAL Manual, Program Validation Limited (1985).

    Google Scholar 

  8. 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. Commission of the European Communities, The Draft Formal Definition of Ada, Dansk Datamatik Center (1987).

    Google Scholar 

  10. Craigen, D., A Description of m-Verdi, I. P. Sharp Technical Report TR-87-5420-02 (1987).

    Google Scholar 

  11. 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, I. F., “NewSpeak—an unexceptional language,” Software Engineering Journal, 1, pp. 170–176, IEE/BCS (1986).

    Article  Google Scholar 

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

    Article  Google Scholar 

  14. Feuer, A. R. and Gehani, N. H., “A comparison of the programming languages C and Pascal”, ACM Computing Surveys, 14, pp. 73–92 (1982).

    Article  MATH  Google Scholar 

  15. Hill, A., The formal specification and verification of reusable software components using Ada with Asphodel, CEGB Report (1987).

    Google Scholar 

  16. Hoare, C. A. R. and Wirth, N., “An axiomatic description of the programming language Pascal”, Acta Informatica, 2, pp. 335–355 (1973).

    Article  Google Scholar 

  17. Holzapfel, R. and Winterstein, G., “Ada in safety-critical applications,” Ada-Europe Conference, Munich 1988.

    Google Scholar 

  18. Jensen, K. and Wirth, N., Pascal User Manual and Report, Springer Verlag (1974).

    Google Scholar 

  19. 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 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, 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, 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, R. D., Principles of Programming Languages, Prentice-Hall (1981).

    Google Scholar 

  24. Welsh, J. and Hay, A., A Model Implementation of Standard Pascal, Prentice Hall (1986).

    Google Scholar 

  25. Welsh, J., Sneeringer, W. J. and Hoare, C. A. R., “Ambiguities and insecurities in Pascal,” Software: Practice and Experience, 7, pp. 685–696 (1977).

    Article  MATH  Google Scholar 

  26. 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, B. A., Insecurities in the Ada programming language: an interim report, NPL Report DITC 122/88 (1988).

    Google Scholar 

  28. Wichmann, B. A. and Ciechanowicz, Z. J. (Eds.), Pascal Compiler Validation, John Wiley (1983).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1989 Crown Copyright and Pitman Publishing

About this chapter

Cite this chapter

Carré, B. (1989). Reliable programming in standard languages. In: Sennett, C.T. (eds) High-Integrity Software. Software Science and Engineering. Springer, Boston, MA. https://doi.org/10.1007/978-1-4684-5775-9_5

Download citation

  • DOI: https://doi.org/10.1007/978-1-4684-5775-9_5

  • Publisher Name: Springer, Boston, MA

  • Print ISBN: 978-1-4684-5777-3

  • Online ISBN: 978-1-4684-5775-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics