elementary data types

18
Elementary Data Types Prof. Alamdeep Singh

Upload: kapila

Post on 06-Jan-2016

32 views

Category:

Documents


0 download

DESCRIPTION

Elementary Data Types. Prof. A lamdeep Singh. Scalar Data Types. Scalar data types represent a single object, i.e. only one value can be derived. In general, scalar objects follow the hardware architecture of a computer. Integers - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Elementary Data Types

Elementary Data Types

Prof. Alamdeep Singh

Page 2: Elementary Data Types

Scalar Data Types

• Scalar data types represent a single object, i.e. only one value can be derived.In general, scalar objects follow the hardware architecture of a computer.

Page 3: Elementary Data Types

• IntegersSpecificationMaximal and minimal values - depending on the hardware. In some languages these values represented as defined constants.

Operations:• Arithmetic• Relational• Assignment• Bit operations

– Implementation : Most often using the hardware-defined integer storage representation and a set of hardware arithmetic and relational primitive operations on integers.

Page 4: Elementary Data Types

• Subranges• Specification: A subtype of integer, consists of a

sequence of integer values within some restricted range. e.g. a Pascal declaration A: 1..10 means that the variable A may be assigned integer values from 1 through 10.

• Implementation: smaller storage requirements, better type checking

Page 5: Elementary Data Types

• Floating-point real numbers• Specification

Ordered sequence of some hardware-determined minimum negative value to a maximum value.Similar arithmetic, relational and assignment operations as with integers. Roundoff issues - the check for equality may fail due to roundoff.

• Implementation: Mantissa - exponent model. The storage is divided into a mantissa - the significant bits of the number, and an exponent.

• Example: 10.5 = 0.105 x 102,Mantissa: 105Exponent: 2

Page 6: Elementary Data Types

• Fixed-point real numbers• Specification: Used to represent real numbers with

predefined decimal places, such as dollars and cents.

• Implementation: May be directly supported by hardware or simulated by software.

Page 7: Elementary Data Types

Other data typesq

• Complex numbers: software simulated with two storage locations - one for the real portion and one for the imaginary portion.

• Rational numbers: the quotient of two integers.• Enumerations: ordered list of different values.– Example: enum StudentClass {Fresh, Soph, Junior,

Senior}the variable StudentClass may accept only one of the four listed values.

• Implementation: represented during run time as integers, correspondeing to the listed values.

Page 8: Elementary Data Types

• Booleans• Specification: Two values: true and false. Can be

given explicitly as enumeration,as in Pascal and Ada. Basic operations: and, or, not.

• Implementation: A single addressable unit such as byte or word. Two approaches:

• Use a particular bit for the value, e.g. the last bit; 1 - true, 0 -false.

• Use the entire storage; a zero value would then be false, otherwise - true.

Page 9: Elementary Data Types

• Characters• Specification: Single character as a value of a data

object.Collating sequence - the ordering of the characters, used for lexicographic sorting.Operations:RelationalAssignmentTesting the type of the character - e.g. digit, letter, special symbol.

• Implementation: usually directly supported by the underlying hardware.

Page 10: Elementary Data Types

Composite Data Types• Characterized by a complex data structure organization,

processed by the compiler.• Character strings: Data objects that are composed of a

sequence of characters Specification and syntax. Three basic methods of treatment:– Fixed declared length - storage allocation at translation time– The data object is always a character string of a declared length.

Strings longer than the declared length are truncated.– Variable length to a declared bound - storage allocation at translation

time.– An upper bound for length is set and any string over that length is

truncated– Unbounded length - storage allocation at run time. Strings can be of

any length.

Page 11: Elementary Data Types

• Special case: C/C++• Strings are arrays of characters

No string type declarationNull character determines the end of a string.

Operations• Concatenation – appending two strings one after another• Relational operation on strings – equal, less than, greater than• Substring selection using positioning subscripts• Substring selection using pattern matching• Input/Output formatting• Dynamic strings - the string is evaluated at run time.• Perl: "$ABC" will be evaluated as a name of a variable, and the

contents of the variable will be used.

Page 12: Elementary Data Types

Implementation• Fixed declared length: a packed vector of characters• Variable length to a declared bound: a descriptor that

contains the maximum length and the current length• Unbounded length: either a linked storage of fixed-length

data objects or a contiguous array of characters with dynamic tun-time storage allocation.

Page 13: Elementary Data Types

Pointers and programmer-constructed objects

• Pointers are variables that contain the location of other data objects

• Allow to construct complex data objects.• Used to link together the components of the complex data

objects.Specification:• Pointers may reference data objects only of a single type – C,

Pascal, Ada.• Pointer may reference data objects of any type. – Smalltalk• C, C++: pointers are data objects and can be manipulated by

the programJava: pointers are hidden data structures, managed by the language implementation

Page 14: Elementary Data Types

Operations:• Creation operation:• Allocates a block of storage for the new data object, and

returns its address to be stored in the pointer variable. No name of the location is necessary as the reference would be by the pointer.

• Selection operation: the contents of the pointer is used as an address in the memory.

Page 15: Elementary Data Types

Implementation• Methods:

– Absolute addresses stored in the pointer. Allows for storing the new object anywhere in the memory

– Relative addresses: offset with respect to some base address. Requires initial allocation of a block of storage to be used by the data objects. The address of each object is relative to the address of the block.

Advantages: the entire block can be moved to another location without invalidating the addresses in the pointers, as they are relative, not absolute.

• Implementation problems:– Creating objects of different size during execution time requires the

management of a general heap storage area.– Garbage - occurs when the contents of pointer is destroyed, and the

object still exists however it is no more accessible.– Dangling references: the object is destroyed however the pointer still

contains the address of the used location, and can be wrongly used by the program.

Page 16: Elementary Data Types

FilesCharacteristics:• Usually reside on secondary storage devices as disks, tapes.• Lifetime is greater than the lifetime of the program that has created

the files.• Types of files depending on the method of access• Sequential file: a data structure composed of a linear sequence of

components of the same type.• File operations:

OpenReadWriteEnd-of-fileClose

Page 17: Elementary Data Types

Implementation: usually handled by the operating system.• Interactive Input-Output: sequential files used in interactive

mode. Direct Access Files: any single component can be accessed at random just as in an array. Key: the subscript to access a component.Implementation: a key table is kept in main memory

• Indexed Sequential Files: similar to direct access files using a key combined with capability to process the file sequentially. The file must be ordered by the key

Page 18: Elementary Data Types

Exam-like questions

• What is a scalar data type? Give examples• Describe briefly the implementation of floating-point real

numbers.• Describe briefly the implementation of booleans.• What is a composite data type? Give examples.• Describe briefly the approaches to specification and

implementation of character strings.• What implementation problems exist with data objects

referred to by pointers?