Abstract
A computer program (at an assembly-language level) can be informally defined as a sequence of instructions for a computer to perform a particular task. The exact form and sequencing of the instructions for a given task depend largely on the underlying architecture of a computer (physical machine). Writing a computer program therefore requires decisions on how to represent the task to be achieved in terms of the constructs of the architecture. However, more often than not, the formulation of a task as a specification is very different from its representation in terms of the architectural-level instructions. Such a disparity between these two levels of programming implies a considerable intellectual and organisational effort to produce a correct program for a task. In most cases, however, the organisational details are numerous and they become difficult to handle. To reduce the amount of such detailed organisational activity, we can define ‘idealised’ architectures on top of the machine architecture, and in this way we will provide a new framework for programmers so that they can express their requirements more easily and effectively. In this chapter we shall briefly discuss the main components of a program using an ‘assembly-language’-level architecture, and then describe a more idealised architecture which would accommodate higher-level constructs for certain programming elements: operation, control and data. The effect of using the new higher-level architecture is the removal of unnecessary details, which can be dealt with at a later stage in program development.
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.
Bibliographic Notes and Further Reading
Birtwistle, G. M. et al. (1973). SIMULA Begin, Auerback Press, Philadelphia, Pennsylvania.
Burstall, R. M., MacQueen, D. B. and Sannella, D. T. (1980). ‘Hope: an experimental applicative language’, in Proceedings of 1980 Lisp Conference, Stanford, California, pp. 136–143.
Dahl, O. J., Dijkstra, E. W. and Hoare, C. A. R. (1972). Structured Programming, Academic Press, London and New York.
Ford, G. A. and Wiener, R. S. (1985). Modula-2: A Software Development Approach, Wiley, Chichester and New York.
Guttag, J. V. and Horning, J. J. (1978). ‘The algebraic specification of abstract data type’, Acta Informatica, Vol. 10, pp. 27–52.
Guttag, J. V. et al. (1978). ‘Abstract Data Types and Software Validation’, CACM, Vol. 21, No. 12, December, pp. 1048–1064.
Jones, C. B. (1980). Software Development: A Rigorous Approach, Prentice-Hall, Englewood Cliffs, New Jersey.
Liskov, B. et al. (1977). ‘Abstraction mechanisms in CLU’, CACM, Vol. 20, No. 8, pp. 564–576.
Martin, J. J. (1986). Data Types and Data Structures, Prentice-Hall, Englewood Cliffs, New Jersey.
Milner, R. (1978). ‘A theory of type polymorphism in programming’, Journal of Computer and Systems Sciences, Vol. 17, No. 3, pp. 348–375.
Shaw, M. et al. (1977). ‘Abstraction and verification in ALPHARD: defining and specifying iteration and generators’, CACM, Vol. 20, No. 8, pp. 553–563.
Shipman, D. W. (1981). ‘The functional data model and the data language DAPLEX’, ACM TODS, Vol. 6, No. 1, March.
Weiner, P. and Sincovec, R. (1983). Programming in ADA, Wiley, New York.
Wirth, N. (1971). ‘Program Development by Stepwise Refinement’, CACM, Vol. 14, No. 4, pp. 221–227.
Wirth, N. (1982). Programming in Modula-2, Springer-Verlag, New York.
Author information
Authors and Affiliations
Copyright information
© 1990 Manoochehr Azmoodeh
About this chapter
Cite this chapter
Azmoodeh, M. (1990). Abstract Data Types and Program Design. In: Abstract Data Types and Algorithms. Macmillan Computer Science Series. Palgrave, London. https://doi.org/10.1007/978-1-349-21151-7_2
Download citation
DOI: https://doi.org/10.1007/978-1-349-21151-7_2
Publisher Name: Palgrave, London
Print ISBN: 978-0-333-51210-4
Online ISBN: 978-1-349-21151-7
eBook Packages: Computer ScienceComputer Science (R0)