Home Page Syllabus Marcin Paprzycki


      CSC 308 PROGRAMMING LANGUAGES

      Material covered:

      Why a course about Programming Languages should be a part of the CS curriculum?
        understanding of languages
        better utilization of languages
        better selection of a "language for a job"
        to learn additional languages easier
        to understand significance of implementation
        to design a language(?)

      What factors influence language design?
        available computer hardware
        programming domains
          scientific computing
          business applications
          artificial intelligence
          system software
          application software
          special purpose
          Internet/multimedia
        theoretical studies
        standardization

      Programming language evaluation criteria
        1. Simplicity and unity (created once, or a victim of evolution?)
        2. Clarity of syntax
          length of names of variables
          status of special words
          relation between syntax and meaning
          formalization of concepts (precision of definition)
          readability (how many comments necessary to understand?)
          availability of structured programming
        3. Match between the language and the application that i9t is to be used for
        4. How difficult it is to add new elements to the language (availability of abstraction and encapsulation)
        5. How good is the definition of implementation
        6. Portability
        7. Cost
          learning curve
          compilation and loading (rather old criterion)
          creation, verification and testing (editors, debuggers, visual tools)
          execution (how good is the compiler/interpreter)
          maintenance
        8. Availability of "canned" library procedures/modules.

      HOMEWORK 1

      1. Use the programming language evaluation criteria discussed in class to evaluate your favorite programming language. Be fair, but critical. Should the list of criteria be extended?
      Due by: Thursday, January 28th

      Material covered (continued):

      Programming Early Computers:
        limited memory
        slow machines
        --> extremely tight coding

        floating point opertions emulated
        lack of indexing operations
        invention of early interpreters and proto-compilers


      Design of Pseudo-Code
        necessary operations
        instruction format
        orthogonal design
        program structure

      Implementation
        the read-execute cycle
        decoding instructions

      Evolution of pseudo-code
        labels
        variables
        symbolic pseudo-code

      HOMEWOK 2
      Textbook, page 32, problem 8

      Material covered (continued):

      Fortran

      origins of Fortran
      modularity of design -- subprograms
      compilation and its phases
      control structures
        match between control structures and IBM 704 machine language
        GOTO and its forms
        IF statements
        DO loops and their optimization
      subroutines as abstractions
        address based parameter passing
        activation records
      data structures
        numeric data types and operations
        pseudo-strings
        arrays
        array optimizations
      name structures
        bindings
        declarations
        scope
        information sharing
          parameters
          COMMON blocks
          EQUIVALENCE
      syntactic structures
        format
        reserved words
        algebraic notation and precedence

      HOMEWOK 3
      Textbook, page 97, problem 10

      Material covered (continued):

      Algol

      origins of Algol
      structural organization
        hierarchical structure
        control structures
      name structures
        blocks and their features
        scoping
      data structures
        primitives
        zero-one-infinity principle and its implications
        dynamic arrays
        strong typing
      control structures
        hierarchy and generalization
        information sharing
          passing by value
          passing by reference
          passing by name
        overgeneralizations
        switch

      HOMEWOK 4
      Textbook, page 151, problem 4

      Material covered (continued):

      syntactic issues
        free format
        three levels of representation
        BNF

      HOMEWOK 5
      Textbook, page 174, problems 8 and 11

      Material covered (continued):

      Pascal

      origins of Pascal
      structural organization: simplification of Algol
      new data structures
        enumerations
        subranges
        sets
        records
        pointers
      name structures
        bindings
        constants
        constructors
      control structures
        loop structures
        case statement
        parameter passing
        procedural parameters
      HOMEWOK 6
      Textbook, page 221, problems 5 and 7

      Material covered (continued):

      activation records
        rationale
        information contained in activation records
        context -- static link chains
        variable "localization"
        variable access
      procedure call and return


      Reading assignment - pages ivv-246