CSE 655 Programming Languages - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

CSE 655 Programming Languages

Description:

4 credits, but only 3 lecture 'hours' (implies a lot (10 ) of outside work) Expect to learn a lot and enjoy being done. From initial s. 8/30/09 ... – PowerPoint PPT presentation

Number of Views:65
Avg rating:3.0/5.0
Slides: 25
Provided by: bobma5
Category:

less

Transcript and Presenter's Notes

Title: CSE 655 Programming Languages


1
CSE 655 Programming Languages
  • Summer 2007DL 266Tuesday Thursday
    1000-1118
  • Dr. Robert F. Mathis
  • DL250, by appointment,generally before and after
    class
  • 4 credits, but only 3 lecture hours(implies a
    lot (10) of outside work)
  • Expect to learn a lot and enjoy being done

From initial slides
2
Exams and Grading
  • Final Tuesday, August 21, take home available
    on web at 1000am due 900pm
  • Short answer, closed book, referring to text,
    class, and programming assignmentsprevious
    examples linked from web page
  • Project students propose and implement
    functional requirements for a language processor,
    due Tuesday, Aug 14
  • Mid 25, Final 25, Project 40, other 10

3
CSE 655 Planning Su07
  • PL/0 compiler traditional (imperative) languages
  • Lisp (functional) and its interpreter
    similarities
  • XML/XSLT string matching (declarative)
  • Patterns in programming
  • Mid-level constructor, façade, singleton, etc.
  • Low-level loop, selection, exit, exception
  • Parameterized types generics, templates
  • Event-oriented programming, concurrency,
    distributed programming, web services
  • Environments Eclipse and its extensions

4
Course Expectations
  • Broad perspective on computing
  • How programs are developed executed
  • Knowledge of alternatives in programming
  • Specific information about traditional language
    processing concepts
  • Specifics of programming languages considered in
    the common knowledge domain of computer
    scientists
  • Prepare for 50 more years of programming

5
Summary Basic Structure of CSE 655
  • First half (10 days) (grading midterm)
  • Read the text traditional topics
  • Study PL/0 and Lisp and a little XML
  • Plan your project
  • Second half (grading project final)
  • Implement your project
  • Advanced concepts in programming
  • Throughout
  • Language features to build on
  • Talk about a couple of languages at a time

6
Day 11 Tuesday, July 24
  • Returned midterms depressing
  • Names (length, characters, upper lower case,
    connectors)
  • Reserved vs. key words

7
Day 12 Thursday, July 26
  • FORTRANs arithmetic IF, and so forth
  • Bohm Jacopini (sequence, selection, loop)?
    structured programming in 1970s
  • GOTO no longer needed because ofcompound
    statements, break/exit, exceptions
  • Side effects and short circuit forms
  • Conditional statements
  • Guarded commands

8
Day 13 Tuesday, July 31
  • Exceptions in PL/I, Ada, C, Common Lisp, Java
  • Abstract data types and how they lead into
    object-oriented programming

9
Day 14 Thursday, August 2
  • Garbage collectionMark Sweep,
    multi-generational
  • More object-oriented programming

10
Day 15 Tuesday, August 7
  • Java O-O programming
  • Importance of interfaces
  • Demo of JConsole SwingSet2to show
    generational garbage collection
  • Distributed applications Java RMI
  • No Class on August 9

11
Day 16a Tuesday, August 14
  • Student presentations

12
Day 16b PlannedTuesday, August 14
  • Events HTML JavaScript
  • Java event handling
  • Threads Concurrency
  • Ada and Java have built-inC has to drop down
    to operating system
  • Java5 many new packages
  • Multi-core CPU chips, Java, 64-bit OS

13
Day 17a Thursday, August 16
  • Student presentations

14
Day 17b This Review
  • Final Midterm Tuesday, August 21, posted on
    web, just like in class, return by e-mail by
    900pm same day
  • Read the book, attended class, asked questions,
    thought about themes issues

15
Broad View of Computer Science
  • Study of abstractions and how they can be used to
    help solve problems
  • How to describe computational solution to a
    problem (how programs get written)
  • How programs get executed
  • Process from problem formulation to moving
    electrons

16
Broad View of Programming Languages
  • Evolution of conceptual focus
  • Control Structures
  • Data Structures
  • Patterns
  • Syntactic differences
  • Algol, Pascal, Modula-2, Ada
  • C, C, Java, JavaScript, C
  • Very wordy COBOL
  • Formulae FORTRAN, BASIC, APL, Forth

17
Underneath the Language
  • Recursion
  • Concurrency threads, tasks, processes
  • Events
  • Connecting to network(or other system
    components)
  • Special hardware functions
  • Generally how things implemented underneath

18
Language Processing
  • Compilers
  • Intermediate languages
  • Intermediate assembler
  • Direct to machine code
  • Interpreters
  • Direct interpretation
  • Interpreting after compiling
  • Machine emulation
  • Just-in-time compilation of intermediate form

19
Control Structures
  • Arbitrary branching low-level goto
  • Loop control (exits, breaks)
  • If-tests (and variants)
  • Case/switch
  • Fall through approach leads to simpler syntax for
    alternate choices
  • Exceptions (raise/throw, catch/handle)
  • Events
  • Concurrency (threads, tasks, processes)

20
Data Types
  • Primitive (built into hardware)(note IBM 360 had
    built-in decimal type,others have to emulate)
  • Composite
  • Arrays
  • Multi-dimensional
  • Arrays of arrays
  • Structures user defined
  • Linked or arrays, use of dope vectors hidden

21
Code Organization
  • Compound statements
  • Blocks
  • Declare before use
  • Independent or separate compilation
  • Syntactic conveniences (e.g. )

22
Language Philosophy
  • How do new things get created
  • Objects
  • Instances of types
  • Instances of class
  • Grouping
  • In classes
  • In packages
  • Subsystems

23
Separation of Interfaces
  • Interface separate program component
  • Individual implementations
  • Multiple implementations
  • Interface treated like a type definition

24
Program Processing Compilation
  • PL/0 example with recursive descent
  • Lisp example of interpretation
  • XSLT example with pattern matching
  • PL/0 virtual machine as target (other targets
    conceptually very similar)
  • Code optimizations by pattern matching
Write a Comment
User Comments (0)
About PowerShow.com