Presentation is loading. Please wait.

Presentation is loading. Please wait.

point when a program element is bound to a characteristic or property

Similar presentations


Presentation on theme: "point when a program element is bound to a characteristic or property"— Presentation transcript:

1 point when a program element is bound to a characteristic or property
Binding point when a program element is bound to a characteristic or property

2 Categories of Binding Times
Execution Time – during program execution binding of variables to values binding of variables to their locations (e.g., automatics in C) binding of parameters to arguments on function entry for by value and by address parameters on reference for by name parameters Translation Time (compile time) - bindings performed by the compiler binding of variables to their data types (C) binding of variables to their structure (C) binding of variables to their locations (static in C, but the actual address is bound by the loader)

3 Categories of Binding Times
Language Definition Time - when the language was described meaning of +, -, *, / meaning of if, printf Language Implementation Time - variations for a particular implementation of the language ordering of bits (little endian, big endian) size of int, size of long meaning of isalpha in C

4 Importance of Binding Times
Changing of binding times can modify the definition of a language Suppose we bind all variables to their locations at compile/load time, how would that impact a language? No by address parameter passing No dynamic arrays (where the size is defined at runtime) No recursion

5 Importance of Binding Times
Later binding times can decrease the speed of code execution If data types are bound at runtime: Less error detection available during translation Arithmetic operations would require checking the datatypes of operands, slowing execution

6 Importance of Binding Times
Later binding times can increase the flexibility of a language Binding the size of an array at runtime: We can allocate the size we actually need instead of an arbitrary large amount Allocating memory at runtime: We can allow a data structure (e.g., linked list) to grow We can share heap memory with multiple data structures Statements translated at runtime: We could more easily modify code during execution Data could act as program statements

7 What happens when? In C, “what happens when” for the following statement: iX = iY + 5; Execution: Value of iX and iY Translation: data types for iX and iY data type of + result and = result Language Def: data type of 5 meaning of + meaning of = Language Imp: representation of 5 representation of result of iY + 5 Unknown (due to example): Location of iX and iY


Download ppt "point when a program element is bound to a characteristic or property"

Similar presentations


Ads by Google