Abstract
Each programming language contains constructs and mechanisms for structuring data. These constructs and mechanisms are formed from what is called the type system of a language. Far from being an auxiliary aspect, types represent one of the salient characteristics of a programming language and which substantially differentiate one language from another. In this chapter, we will examine type systems, discussing primitive types and the mechanisms used to define new ones. Central to our presentation will be the concept of type safety. We will then tackle the questions of type equivalence and compatibility of types, that is mechanisms which will allow us to use a value of some type in a context requiring another type. We will discuss polymorphism and overloading. We will conclude the chapter with some questions about storage management (garbage collection), which is not, strictly speaking, a topic about data types but which well complements the examination of pointers which we must undertake.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
L. Cardelli. Basic polymorphic typechecking. Science of Computer Programming, 8(2):147–172, 1987. citeseer.ist.psu.edu/cardelli88basic.html.
L. Cardelli. Type systems. In A. B. Tucker, editor, The Computer Science and Engineering Handbook. CRC Press, Boca Raton, 1997. citeseer.ist.psu.edu/cardelli97type.html.
L. Cardelli and P. Wegner. On understanding types, data abstraction, and polymorphism. ACM Computing Surveys, 17(4):471–522, 1985. citeseer.ist.psu.edu/cardelli85understanding.html.
J. C. Cleaveland. An Introduction to Data Types. Addison-Wesley, Reading, 1986.
C. N. Fisher and R. J. LeBlanc. The implementation of run-time diagnostics in Pascal. IEEE Trans. Softw. Eng., 6(4):313–319, 1980.
E. Horowitz and S. Sahni. Fundamentals of Data Structures in Pascal. Freeman, New York, 1994.
R. Jones and R. Lins. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, New York, 1996.
D. B. Lomet. Scheme for invalidating references to freed storage. IBM Journal of Research and Development, 19(1):26–35, 1975.
D. B. Lomet. Making pointers safe in system programming languages. IEEE Trans. Softw. Eng., 11(1):87–96, 1985.
R. Milner, M. Tofte, R. Harper, and D. MacQueen. The Definition of Standard ML—Revised. MIT Press, Cambridge, 1997.
J. C. Mitchell. Type Systems for Programming Languages, pages 365–458, 1990. ISBN: 0-444-88074-7.
F. Pagan. A Practical Guide to Algol 68. Wiley Series in Computing. Wiley, London, 1976.
B. Pierce. Types and Programming Languages. MIT Press, Cambridge, 2002.
D. A. Schmidt. The Structure of Typed Programming Languages. MIT Press, Cambridge, 1994.
A. van Wijngaarden, B. J. Mailloux, J. E. L. Peck, C. H. A. Koster, M. Sintzoff, C. H. Lindsey, L. G. L. T. Meertens, and R. G. Fisker. Revised report on the algorithmic language ALGOL 68. Acta Informatica, 5:1–236, 1975.
P. R. Wilson. Uniprocessor garbage collection techniques. In Proc. Int. Workshop on Memory Management, LNCS, volume 637. Springer, Berlin, 1992. Extented version online ftp://ftp.cs.utexas.edu/pub/garbage/bigsurv.ps. citeseer.ist.psu.edu/wilson92uniprocessor.html.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2010 Springer-Verlag London
About this chapter
Cite this chapter
Gabbrielli, M., Martini, S. (2010). Structuring Data. In: Programming Languages: Principles and Paradigms. Undergraduate Topics in Computer Science. Springer, London. https://doi.org/10.1007/978-1-84882-914-5_8
Download citation
DOI: https://doi.org/10.1007/978-1-84882-914-5_8
Published:
Publisher Name: Springer, London
Print ISBN: 978-1-84882-913-8
Online ISBN: 978-1-84882-914-5
eBook Packages: Computer ScienceComputer Science (R0)