324-lecture17 - Principles Principles of Programming...

Info iconThis preview shows pages 1–6. Sign up to view the full content.

View Full Document Right Arrow Icon
Principles of Programming Languages Lecture 17 University of Toronto Wael Aboulsaadat [email protected] http://portal.utoronto.ca/ 1
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Pointers Variables referencing memory address or NIL/NULL – PL/I is the first high-level language to have pointer variables Operations: – Assignment to memory address (allocation) • Note that this could be done with/without allocation • E.g. // C lang 461 University of Toronto – Reference to value stored in memory cell • E.g. – Release of memory address (de-allocation) • Ada, ALGOL 68: no explicit de-allocation 2 1461 1461
Background image of page 2
Pointers cont’d Implementation: – Usually 2 or 4 bytes – Hardware restrictions (e.g. Intel architecture) – Note that you can have pointer to pointer… to value University of Toronto 3 1461 2401 3003 2401 1461
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Pointers cont’d Why are pointers problematic? – Type checking: • PL/I allowed pointers to point to any type of object! – Dangling Reference: • Storage pointed to is freed, but pointer is not set to null. • Then, you are able to access storage whose value are not meaningful. – Garbage: • Pointer itself is freed (perhaps by execution going out of scope) but heap cations pointed to are not freed University of Toronto locations pointed to are not freed • Then, there is no way to access this heap storage – Memory leaks: • Gradual loss of available computer memory when a program repeatedly fails to return memory that it has obtained for temporary use. • Then, the available memory for that application becomes exhausted and the program can no longer function. What can we do about pointer problems? 4
Background image of page 4
Pointers cont’d Why are pointers problematic? – Type checking: • PL/I allowed pointers to point to any type of object! – Dangling Reference: • Storage pointed to is freed, but pointer is not set to null. • Then, you are able to access storage whose value are not meaningful. – Garbage: • Pointer itself is freed (perhaps by execution going out of scope) but heap cations pointed to are not freed University of Toronto locations pointed to are not freed • Then, there is no way to access this heap storage – Memory leaks: • Gradual loss of available computer memory when a program repeatedly fails to return memory that it has obtained for temporary use. • Then, the available memory for that application becomes exhausted and the program can no longer function. What can we do about pointer problems?
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 6
This is the end of the preview. Sign up to access the rest of the document.

This document was uploaded on 08/02/2011.

Page1 / 21

324-lecture17 - Principles Principles of Programming...

This preview shows document pages 1 - 6. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online