Download presentation
Presentation is loading. Please wait.
Published byFelix Goodman Modified over 9 years ago
1
Ch. 5 Ch. 51 jcmt Summer 2003Programming Languages CSE3302 Programming Languages (more notes) Summer 2003 Dr. Carter Tiernan
2
Ch. 5 Ch. 52 jcmt Summer 2003Programming Languages Return to Simplicity Attempts to extend Algol included: –PL/I very large intersection of FORTRAN, COBOL, and Algol “Swiss army knife” approach –Extensible languages Kernal: application independent Ex: operator extensions & syntax macros Inefficient; hard to debug
3
Ch. 5 Ch. 53 jcmt Summer 2003Programming Languages Pascal Niklaus Wirth designed successor languages to Algol Goal was to compete with FORTRAN and keep the benefits of Algol Explicit goals –Suitable for teaching programming –Reliable, efficient implementation
4
Ch. 5 Ch. 54 jcmt Summer 2003Programming Languages Pascal Structure Syntax is Algol-like Uses reserved words New structures added –Name –Data –Control
5
Ch. 5 Ch. 55 jcmt Summer 2003Programming Languages Data Structures Primitives –Real, integer, boolean from Algol –Characters : type char Enumeration types –Replaces integer codes to represent lists –Limits range of values explicitly –Keeps types unique and separate –Defined as a binding construct –Only allows meaningful operations –Efficient implementation
6
Ch. 5 Ch. 56 jcmt Summer 2003Programming Languages Data Structures Subrange types –Security and efficiency Set types –Mathematical application –Efficient –Set operations defined - implemented with bit operations
7
Ch. 5 Ch. 57 jcmt Summer 2003Programming Languages Arrays Generalized index types (integer subranges) Allowable element types - any other Pascal base type including other arrays, etc. No multi dimensional arrays BUT can have an array whose element type is array and “syntactic sugar” allows appearance of multi- dim arrays Restrictions on Pascal arrays –Static bounds : determinable at compile time –Dimensions are part of array type –Feature interaction problem with bounds
8
Ch. 5 Ch. 58 jcmt Summer 2003Programming Languages Records Aggregate heterogeneous data –Components can be primitive types or complex data types including records and arrays –Component selection within a record is done with dot notation – with statement opens a record for accessing multiple fields within the block of the with
9
Ch. 5 Ch. 59 jcmt Summer 2003Programming Languages Arrays vs. Records Structure Element typesSelectors Array HomogeneousDynamic (computable) Record HeterogeneousStatic
10
Ch. 5 Ch. 510 jcmt Summer 2003Programming Languages Variant Records Groups different fields according to a status value The status value is called the tag field Creates a loophole related to type because variant fields do not have to be initialized and previous values of different type may be accessible
11
Ch. 5 Ch. 511 jcmt Summer 2003Programming Languages Data types (cont.) Pascal structures allow efficient information storage Pascal has pointers –Pointers have data types to support strong typing in Pascal –Pointer base types can be any other type Initially type equivalence was not clearly defined –Structural, Name (simpler and safer) –Subrange equivalence within Name eq
12
Ch. 5 Ch. 512 jcmt Summer 2003Programming Languages Name Structures Bindings –Constant –Type –Variable –Procedure and function –Implicit enumeration –Label
13
Ch. 5 Ch. 513 jcmt Summer 2003Programming Languages Name Structures Constants abstract out dependencies Constants cannot be described by an expression Expressions cannot be used in variable or type declarations
14
Ch. 5 Ch. 514 jcmt Summer 2003Programming Languages Name Struct Constructors Records Procedures –Much like Algol in format and scope –Order of declarations was important for one-pass compilation Reverses top-down order No way to define mutually recursive procs – forward declaration (like C prototype decl) Group order important also
15
Ch. 5 Ch. 515 jcmt Summer 2003Programming Languages Control Structures More structures than Algol but simpler I/O routines provided Structured control is supported –One entry, one exit Supports recursion Has a goto to facilitate adoption
16
Ch. 5 Ch. 516 jcmt Summer 2003Programming Languages Structures for –Austere & even simpler than FORTRAN DO while / do –Condition at beginning repeat / until –Condition at end case –Labeled cases
17
Ch. 5 Ch. 517 jcmt Summer 2003Programming Languages Parameters Pass by reference Pass by value Pass by constant –Input parameter treated as a constant inside called routine –Compiler can either copy or pass address of parameter –Left loophole similar to aliasing problem
18
Ch. 5 Ch. 518 jcmt Summer 2003Programming Languages Procedural parameters Can pass procedures and functions as parameters Originally, formal specification gave procedure name and return type but not parameters of procedure being passed Standard required parameters to be specified also
19
Ch. 5 Ch. 519 jcmt Summer 2003Programming Languages Pascal Excellent teaching language Suitable for “real” programming Other Languages PL/I extensions BCPL - Cambridge Plus London B - BCPL based & used in 1st Unix (8k PDP-7) C - successor of ‘B’ by Dennis Ritchie –Used to rewrite Unix kernel –Characteristics of 1st, 2nd, and 3rd gen languages
20
Ch. 5 Ch. 520 jcmt Summer 2003Programming Languages Third Gen. Languages Simplicity and efficiency Data structures support applications –Support nesting –User definition –Pointers Name structures have bindings for new types Control structures are simplified and efficient –Case
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.