Presentation is loading. Please wait.

Presentation is loading. Please wait.

Ch. 5 Ch. 51 jcmt CSE 3302 Programming Languages CSE3302 Programming Languages (more notes) Dr. Carter Tiernan.

Similar presentations


Presentation on theme: "Ch. 5 Ch. 51 jcmt CSE 3302 Programming Languages CSE3302 Programming Languages (more notes) Dr. Carter Tiernan."— Presentation transcript:

1 Ch. 5 Ch. 51 jcmt CSE 3302 CSE@UTA Programming Languages CSE3302 Programming Languages (more notes) Dr. Carter Tiernan

2 Ch. 5 Ch. 52 jcmt CSE 3302 CSE@UTA Programming 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 CSE 3302 CSE@UTA Programming 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 CSE 3302 CSE@UTA Programming Languages Pascal Structure Syntax is Algol-like Uses reserved words New structures added –Name –Data –Control

5 Ch. 5 Ch. 55 jcmt CSE 3302 CSE@UTA Programming 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 CSE 3302 CSE@UTA Programming Languages Data Structures, continued Subrange types –Security and efficiency Set types –Mathematical application –Efficient –Set operations defined - implemented with bit operations

7 Ch. 5 Ch. 57 jcmt CSE 3302 CSE@UTA Programming 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 CSE 3302 CSE@UTA Programming 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 CSE 3302 CSE@UTA Programming Languages Arrays vs. Records Structure Element typesSelectors Array HomogeneousDynamic (computable) Record HeterogeneousStatic

10 Ch. 5 Ch. 510 jcmt CSE 3302 CSE@UTA Programming 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 CSE 3302 CSE@UTA Programming 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 CSE 3302 CSE@UTA Programming Languages Name Structures Bindings –Constant –Type –Variable –Procedure and function –Implicit enumeration –Label

13 Ch. 5 Ch. 513 jcmt CSE 3302 CSE@UTA Programming 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 CSE 3302 CSE@UTA Programming 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 CSE 3302 CSE@UTA Programming 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 CSE 3302 CSE@UTA Programming 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 CSE 3302 CSE@UTA Programming 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 CSE 3302 CSE@UTA Programming 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 CSE 3302 CSE@UTA Programming Languages Pascal Excellent teaching language Suitable for “real” programming Usage goes beyond original intent

20 Ch. 5 Ch. 520 jcmt CSE 3302 CSE@UTA Programming Languages 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 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

21 Ch. 5 Ch. 521 jcmt CSE 3302 CSE@UTA Programming Languages Third Generation 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


Download ppt "Ch. 5 Ch. 51 jcmt CSE 3302 Programming Languages CSE3302 Programming Languages (more notes) Dr. Carter Tiernan."

Similar presentations


Ads by Google