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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
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).
Andrews, D. and Henhapl, W., “Pascal,” in Formal Specification and Software Development (Eds. Bjorner, D. and Jones, C.), pp. 175-251, Prentice Hall.
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).
British Standards Institution, Specification for Computer Programming Language Pascal, BS 6192: 1982.
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).
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).
Carré, B. A. and Debney, C. W., SPADE-PASCAL Manual, Program Validation Limited (1985).
Carré, B. A. and Jennings, T. J., SPARK—the SPADE Ada Kernel, Dept. of Electronics and Comp. Sci., University of Southampton (1988).
Commission of the European Communities, The Draft Formal Definition of Ada, Dansk Datamatik Center (1987).
Craigen, D., A Description of m-Verdi, I. P. Sharp Technical Report TR-87-5420-02 (1987).
Cullyer, W. J. and Goodenough, S. J., The choice of computer languages for use in safety-critical systems, RSRE Memorandum 3946 (1987).
Currie, I. F., “NewSpeak—an unexceptional language,” Software Engineering Journal, 1, pp. 170–176, IEE/BCS (1986).
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).
Feuer, A. R. and Gehani, N. H., “A comparison of the programming languages C and Pascal”, ACM Computing Surveys, 14, pp. 73–92 (1982).
Hill, A., The formal specification and verification of reusable software components using Ada with Asphodel, CEGB Report (1987).
Hoare, C. A. R. and Wirth, N., “An axiomatic description of the programming language Pascal”, Acta Informatica, 2, pp. 335–355 (1973).
Holzapfel, R. and Winterstein, G., “Ada in safety-critical applications,” Ada-Europe Conference, Munich 1988.
Jensen, K. and Wirth, N., Pascal User Manual and Report, Springer Verlag (1974).
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).
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).
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).
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).
Tennent, R. D., Principles of Programming Languages, Prentice-Hall (1981).
Welsh, J. and Hay, A., A Model Implementation of Standard Pascal, Prentice Hall (1986).
Welsh, J., Sneeringer, W. J. and Hoare, C. A. R., “Ambiguities and insecurities in Pascal,” Software: Practice and Experience, 7, pp. 685–696 (1977).
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).
Wichmann, B. A., Insecurities in the Ada programming language: an interim report, NPL Report DITC 122/88 (1988).
Wichmann, B. A. and Ciechanowicz, Z. J. (Eds.), Pascal Compiler Validation, John Wiley (1983).
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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