primitive data types

Download Primitive data types

Post on 15-Jul-2015

22 views

Category:

Engineering

1 download

Embed Size (px)

TRANSCRIPT

  • N.Preetha/ME-I

    N.Preetha/ME-I

  • They are supported directly in the hardware of the machine and not defined in terms of other types.Data types that are not defined in terms of other types are called primitive data types.Integer: Short Int, Integer, Long Int (etc.)Floating Point: Real, Double PrecisionStored in 3 parts, sign bit, exponent and mantissaDecimal: BCD (1 digit per 1/2 byte) Used in business languages with a set decimal for dollars and centsBoolean: (TRUE/FALSE, 1/0, T/NIL)Character: Using EBCDIC, ASCII, UNICODE, etc.

    N.Preetha/ME-I

    N.Preetha/ME-I

  • Characters are another primitive data type which map easily into integers.Weve evolved through several basic encodings for characters:50s 70s: EBCDIC (Extended Binary Coded Decimal Interchange Code) -- Used five bits to represent characters60s 00s: ASCII (American Standard Code for Information Interchange) -- Uses seven bits to represent 128 possible characters90s 00s - : Unicode -- Uses 16 bits to represent ~64K different characters. Needed as computers become less Eurocentric to represent the full range of non-roman alphabets and pictographs.

    N.Preetha/ME-I

    N.Preetha/ME-I

  • Typical String Operations:Assignment Comparison (=, >, etc.) CatenationSubstring referencePattern matchingIn Pascal, C/C++, Ada, strings are not primitives but canact as primitives if specified as packed arrays (i.e.direct assignment, comparisons, etc...). In Java, strings are objects and have methods to supportstring operations (e.g. length, ).

    N.Preetha/ME-I

    N.Preetha/ME-I

  • Static - FORTRAN 77, Ada, COBOL Limited Dynamic Length - C and C++ actual length is indicated by a null character

    Dynamic - SNOBOL4, Perl

    N.Preetha/ME-I

    N.Preetha/ME-I

  • An ordinal type is one in which the range of possible values can be easily associated with the set of positive integers.

    Two types :Enumeration Subrange

    N.Preetha/ME-I

    N.Preetha/ME-I

  • Enumeration types provide a way of defining and grouping collections of named constants, which are called enumeration constants.Can be used in For-loops, case statements, etc.Operations on ordinals in Pascal, for example, include PRED, SUCC, ORD.Mainly used for abstraction/readability.

    N.Preetha/ME-I

    N.Preetha/ME-I

  • A subrange type is a contiguous subsequence of an ordinal type.For example, 12..14 is a subrange of integer type.Available in C/C++, Ada, Pascal, Modula-2Example : In Ada type Days is (Mon, Tue, Wed, Thu, Fri, Sat, Sun); Subtype Weekdays is Days range Mon..Fri;N.Preetha/ME-I

    N.Preetha/ME-I

  • Enumeration types are usually implemented as integers without restrictions on ranges of values and operations.Subrange types are implemented in exactly the same way as their parent types.N.Preetha/ME-I

    N.Preetha/ME-I

  • An array is a homogeneous aggregate of data elements in which an individual element is identified by its position in the aggregate, relative to the first element.An index maps into the array to find the specific element desired array_name(subscript_value_list) elementTwo types in an array definitiontype of value being stored in array cellstype of index used

    N.Preetha/ME-I

    N.Preetha/ME-I

  • Subscript Types:FORTRAN, C - int onlyPascal - any ordinal type (int, boolean, char, enum)Ada - int or enum (includes boolean and char)Java - integer types only

    N.Preetha/ME-I

    N.Preetha/ME-I

  • 1. Static - range of subscripts and storage bindings are statice.g. FORTRAN 77Advantage: execution efficiency (no allocation or deallocation) 2. Fixed stack dynamic - range of subscripts is statically bound, but storage is bound at elaboration time.e.g. Pascal locals and C locals that are not staticAdvantage: space efficiency3. Stack-dynamic - range and storage are dynamicAdvantage: flexibility - size need not be known until the array is about to be used4. Heap-dynamic - subscript range and storage bindings are dynamic and not fixed e.g. (FORTRAN 90)

    N.Preetha/ME-I

    N.Preetha/ME-I

  • Some languages limit the number of dimensions that an array can haveFORTRAN I - limited to 3 dimensionsFORTRAN IV and onward - up to 7 dimensionsC/C++, Java - limited to 1 but arrays can be nested (i.e. array element is an array) allowing for any number of dimensionsMost other languages have no restrictions.

    N.Preetha/ME-I

    N.Preetha/ME-I

  • Most languages have direct assignment of one array to another (A := B) if both arrays are equivalent.FORTRAN: Allows array addition A+BAda: Array concatenation A&BFORTRAN 90: library of Array ops including matrix multiplication, transpose

    N.Preetha/ME-I

    N.Preetha/ME-I

  • A rectangular array is a multidimensional array in which all of the rows have the same number of elements and all of the columns have the same number of elements.A jagged array is one in which the lengths of the rows need not be the same.SLICES - A slice of an array is some substructure of that array.It is a mechanism for referencing part of an array as a unit.N.Preetha/ME-I

    N.Preetha/ME-I

  • An associative array is an unordered collection of data elements that are indexed by an equal number of values called keys.Associative arrays have an index that is not necessarily an integer.Associative arrays are also supported directly by Python, Ruby, and by the standard class libraries of Java, C++, C#, and F#.In Perl, associative arrays are called hashes.

    N.Preetha/ME-I

    N.Preetha/ME-I

  • N.Preetha/ME-I

    N.Preetha/ME-I

Recommended

View more >