Welcome to the CIS Seminar - PowerPoint PPT Presentation

1 / 22
About This Presentation
Title:

Welcome to the CIS Seminar

Description:

You'll do a hour presentation (or you and a friend will do a 1 hour ... Mathematica as a programming language (Prof Keck) Hindley-Milner Type systems (Daniel) ... – PowerPoint PPT presentation

Number of Views:56
Avg rating:3.0/5.0
Slides: 23
Provided by: johnpe2
Learn more at: http://wiki.western.edu
Category:
Tags: cis | keck | seminar | welcome

less

Transcript and Presenter's Notes

Title: Welcome to the CIS Seminar


1
Welcome to the CIS Seminar
  • Fall, 2006

2
Taking this for Credit
  • Youll do a ½ hour presentation (or you and a
    friend will do a 1 hour presentation).
  • This presentation includes background and
    discussion in the wiki.
  • You need to participate
  • You need to attend every week.

3
Grading
  • Presentation 50
  • Participation Attendance 50

4
About Your Presentation
  • We will pick topics today if possible.
  • You need to do background research (hint Google
    doesnt yet cover all information in the
    universe! Try the library )
  • You need to make a good wiki page, including
    discussion prompts or problems.
  • You need to make good slides
  • You need to practice! I will ask for a trial run
    at least 3 days before. If youre not ready Ill
    ask for more trial runs.

5
Scheduling
  • History of programming languages (Prof Peterson)
  • Haskell (Prof Peterson)
  • Mathematica as a programming language (Prof Keck)
  • Hindley-Milner Type systems (Daniel)
  • Computer camp wrapup (Prof Peterson)
  • Ruby on Rails (Tim)
  • Internship report (Kate)
  • Running CMT (Randy Spydell)
  • Alex Chiang (HP)
  • Tim Chamilard (UCCS)
  • Gareth Eaton (DU)
  • Eric Friedman (CNet)
  • Kate's Dad (???)
  • Amanda Tarr (Some crazy game company)
  • Possible Student talks C and templates ,
    Prolog, Snobol / Icon,

6
This Terms Theme
  • Programming Languages!

7
A Brief History of Programming Languages
  • Computer Science is unique in that no one
    language of expression has emerged to supplant
    all others.
  • Most other disciplines have one "official"
    language
  • standard music notation
  • standard math notation
  • standards for blueprints technical
    descriptions

8
Why So Many Languages?
  • What keeps computing from having one standard
    language that absorbs all others??

9
In The Beginning
  • Computers were really expensive!
  • Few programs.
  • Just write everything in the native language of
    the machine.

LDQ X FMP X
CALCULATE X X STO SUM LDQ Y FMP
Y CALCULATE Y
Y FAD SUM X X
Y Y STO SUM
STORE SUM
Old IBM Assembly
10
The First Real PL Fortran
1954
  • It soon became obvious that assembly was hard to
    write andhard to understand. Mathematicians
    wanted to use more familiar notation.

A Fortran II example written byJohn Backus
11
Fortran Innovations
  • Math notations (infix expressions)
  • Basic control structures IF, DO loops,
    subroutines / functions
  • No real linker "Common Blocks" were a
    substitute
  • Column oriented syntax (punched cards)

12
Lambda Calculus Strikes!
1958
  • Lisp was a language WAY ahead of it's time!
  • John McCarthy proposed a language based on
    lambda-calculus and S-expressions (pairs).

13
Lisp Innovations
  • Automatic Storage Management
  • Purely functional subset
  • Defined by a meta-interpreter
  • Syntactic simplicity
  • Single recursive structure type
  • Lisp is still alive and well nowadays it's
    called "Python"

14
Algol
1958
  • Algol "Algorithmic Language"
  • Algol was a language for both programming and
    formal description of algorithms.

15
Contributions of Algol
  • First language with "Modern" syntax
  • A language of scholarly publication
  • Better "function call" mechanism more
    descriptive
  • Led to Pascal and eventually Java
  • Adopted as the "machine language" by Burroughs

16
COBOL
1959
  • Cobol was a language designed
  • to fill the needs of the business
  • community (mathematicians and other shady
    academics were responsible for the other
    languages!)
  • It was influenced by Grace Hopper's ideas in
    Flow-Matic.

17
Pity the Cobol Programmer
  • MULTIPLY B BY B GIVING B-SQUARED.
  • MULTIPLY 4 BY A GIVING FOUR-A.
  • MULTIPLY FOUR-A BY C GIVING FOUR-A-C.
  • SUBTRACT FOUR-A-C FROM B-SQUARED GIVING
    RESULT-1.
  • COMPUTE RESULT-2 RESULT-1 .5.
  • SUBTRACT B FROM RESULT-2 GIVING NUMERATOR.
  • MULTIPLY 2 BY A GIVING DENOMINATOR.
  • DIVIDE NUMERATOR BY DENOMINATOR GIVING X.

18
Cobol Innovations
  • Extensive I/O capabilities
  • Natural language (why?)
  • Abandoned native numeric representation
  • Emphasized data layout (nested naming)
  • This is the language that will not die. You
    could earn big becoming a Cobol programmer.

19
APL
1962
  • Ken Iverson was probably the first "mad genius"
    to design a programming that was completely
    unprecedented and unique.
  • Good luck figuring this one out

20
APL Contributions
  • An amazing economy of expression
  • Extreme functional programming many APL
    operators made it into Haskell
  • Explored the difficulty of introducing new
    symbols into the PL
  • Everyone knew about APL but nobody actually
    used it except crazy math dudes
  • Still alive as the "J" programming language

21
Simula
1962
External Class Geometry Geometry Begin !
Subclasses declared in the prefixed block
Point Class Color_Point(C) Character C Begin
... End Rectangle Class Square Begin ...
End ! Variables declared in the prefixed
block Ref(Color_Point) A1 Ref(Point) C,
D Ref(Circle) K Ref(Line) E, F
Ref(Rectangle) R1 Ref(Square) S1 ! Block
body C - New Point(5,6) D - New
Point(20,30) A1 - New Color_Point(3, 4,
'G') K - New Circle(10, C) E - New
Line(C, D) F - X K.Shift (1,1) R1 -
New Rectangle("Rec_R1", 5, 4) S1 - New
Square("Square_S1", 4, 6) S1.Show End of
prefixed block
  • Simula expanded on Algol to add objects, classes,
    methods, GC. It is the ancestor of object
    oriented programming.

Ole-Johan Dahl and Kristen Nygaard
22
Simula
  • Simula was designed for discrete event based
    simulation something that O-O does very well!
  • It took a long time for O-O ideas to hit the
    mainstream (C)
Write a Comment
User Comments (0)
About PowerShow.com