Senin, 08 April 2013

Concepts of Programming Languages - Chapter 6

Review Questions
1. Collection of the attributes of a variable.
3.
Should strings be simply a special kind of character array or a primitive type ?
Should strings have static or dynamic length ?
5. Ordinal is one in which the range of possible values can be easily associated with the set of positive integers. Enumeration is one in which all of the possible values, which are named constants, are provided, or enumerated, in the definition. Subrange is a contiguous subsequence of an ordinal type.
8.
What types are legal for subscripts ?
Are subscripting expressions in element references range checked ?
When are subscript ranges bound ?
When does array allocation take place ?
Are ragged or rectangular multidimensioned arrays allowed, or both ?
Can arrays be initialized when they have their storage allocated ?
What kinds of slices are allowed, if any ?
11. The subscript values need not be contiguous.
12. Ruby and Lua.
17. In row major order the elements of the array that have as their first subscript the lower bound value of that subscript are stored first, followed by the elements of the second value of the first subscript, and so forth. In column major order, the elements of an array that have as their last subscript the lower bound value of that subscript are stored first, followed by the elements of the second value of the last subscript, and so forth.
31. Union is a type whose variables may store different type values at different times during program execution. Free union is the unions in C and C++ which are allowed complete freedom from type checking in their use.  Discriminated union is a union with a discriminant.
33. Yes, they are
35.
What are the scope and lifetime of a pointer variable ?
What is the lifetime of a heap-dynamic variable (the value a pointer references) ?
Are pointers restricted as to the type of value to which they can point ?
Are pointers used for dynamic storage management, indirect addressing, or both ?
Should the language support pointer types, reference types, or both ?
36. Dangling pointers and Lost Heap-Dynamic variables
38. A C++ reference type variable is a constant pointer that is always implicitly dereferenced, used primarily for the formal parameters in function definitions.
44. Type error is the application of an operator to an operand of an inapropriate type.
50. Name type equivalence means that two variables have equivalent types if they are defined either in the same declaration or in declarations that use the same type name.

Problem Set
2. A negative integer could be stored in sign-magnitude notation, in which the sign bit is set to indicate negative and the remainder of the bit string represents the absolute value of the number. Sign-magnitude notation, however, doesn't lend itself to computer arithmetic. Most computers now use a notation called twos complement to store negative integers, which is convenient for addition and subtraction. In twos-complement notation, the representation of a negative integer is formed by taking the logical complement of the positive version of the number and adding one. Ones-complement notation is still used by some computers. In ones-complement notation, the negative of an integer is stored as the logical complement of its absolute value. Ones-complement notation has the disadvantage that it has two representations of zero.
7. C++ pointer used in the same way as address, can point at any variables, C++ reference type variable is a pointer that is implicity dereferenced and constant.

8. in C++ is a constant, must be initialized with the address of variable, after initialization a variable that pass by reference can't be set to the other variable, in Java variable can be assigned to reference, and it isn't constant.

21. Dynamic type better than static type to detect error in compile time than in run time.
22. Take deallocation of heap dynamic variable out, because if a program can''t deallocate heap dynamic variable explicitly, it won't be any dangling pointer.

Tidak ada komentar:

Posting Komentar