Lecture #1

CIS 400  9/8/99

 

(Sebasta Chapter 2)

 

IBM/ Backus  (of Backus-Naur form)

 

 

1° concern- Efficiency- object code

 

Fortran 0- designed 1954

Page 44 of text

http://www.engin.umd.umich.edu/CIS/course.des/cis400/fortran/fortran.html

 

 

1960 Fortran IV

page 47 of text

 

Column #

1–5

6

7 – 72

73 - 80

 

Labels

Continue

Source code

Sequence fields

 

 

1963 Naur developed Algol 60 ('root' for Pascal, PL/1, Ada)

page 55 of text

http://www.engin.umd.umich.edu/CIS/course.des/cis400/algol/algol.html

 

What is an "Algol-like" language?

 

C                      Algol lexical scope

 

 

            need order

 

also see page 39 of text

 

Applicative language- functional

 

    

           

 

 

·         IBM in its wisdom gave away FORTRAN with all its new computers creating wide spread support for FORTRAN and undermining Algol support

·         Both type-checking and scope was not so good in Algol, this resulted in reduced reliability

·         Industry preferred Fortran, academics preferred Algol

 

COBOL:

Page 61 of text

http://www.engin.umd.umich.edu/CIS/course.des/cis400/cobol/cobol.html

·         1959 Dept. of Defense wanted a single language

·         1960 Remington (Rand) developed the first compilers

·         Machine independent

·         General if/then else

·         'Noise' words (almost English-like, so lowly accountants could follow programs i.e. they didn’t have to know how to program to know what the code represented)

 

APL

Page 73 of text

IBM 1960 (Ken Iverson)

 http://www.engin.umd.umich.edu/CIS/course.des/cis400/apl/apl.html

 

·         Very compact notation for computation

·         Provided for much matrix manipulation

·         NOT Algol-like in nature

·         Originally built to describe specifications of IBM360

 

LISP

Page 49 of text

http://www.engin.umd.umich.edu/CIS/course.des/cis400/lisp/lisp.html

Developed at MIT, (and others) by John McCarthy, (graduate instructor of Dr. Modesitt!!) AI is its application domain

 

·         Symbolic expression, able to manipulate variable names like variable values (i.e. pointer arithmetic)

·         Uniform representation for expression  (dataºcode) executable data structures.

·         New form of conditional expression (similar to "switch" statements)

·         Pre-fix expressions- operator followed by arguments

·         Recursion more widely used

·         "Garbage collection"  used for data management

·         A "linked-list" type of structure is the basic structure in LISP