CS2136: Paradigms of Computationweb.cs.wpi.edu/~dfinkel/Courses/CS2136_D04/class02.pdf · 3 1960s...

Post on 07-Jun-2020

1 views 0 download

Transcript of CS2136: Paradigms of Computationweb.cs.wpi.edu/~dfinkel/Courses/CS2136_D04/class02.pdf · 3 1960s...

1

CS2136:Paradigms of Computation

Class 02:History of Programming Languages

(continued from last time)Copyright 2001 - 2004 Michael J. Ciaraldi and David Finkel

2

Where Were We By 1960?zFortran was well established for science

and engineering work.zCOBOL was just getting started.zLISP was just at MIT.zAlgol was just on paper.zAll systems programming was done in

assembler.zMost commercial programming was done

in now-obsolete proprietary languages.

3

1960szSome outgrowths from the ’50syFortran was extended and standardized.yCOBOL became very widely used; it was the

first standardized language on multiple platforms.yBurroughs adopted Algol as its systems

programming language.yLISP became widely used in AI (Artificial

Intelligence) work.

4

1960s II

z1964: BASICz“Beginner’s All-Purpose Symbolic Instruction

Code”zJohn Kemeny and Thomas Kurtz (Dartmouth)zRunnable from terminals on time-sharing

systems; built-in editorzGood error checkingzLine numberszNo parameters or local variableszOriginally compiled; mostly interpreted

5

1960s IIIz1965: PL/Iz“Programming Language One”zFirst ran on IBM System/360 series.zStructured like AlgolzNumeric power of FortranzData processing power of COBOLzData structures, generic functionszSuitable for systems programmingzSupports multi-tasking

6

1960s IV

z1962: Simula Iz“Simulation Language”zOle-Johan Dahl (Norway)zInherent multi-taskingzLed to…

7

1960s V

z1967: Simula 67zA general-purpose languagezThe first language with objects, classes,

and subclasses

8

1960s VI

z1968-1969: PascalzNiklaus Wirth (ETH, Zurich)zModeled after AlgolzNo GOTOzVery strongly typedzProcedures nested inside each otherzDesigned for teaching programming

9

1960s VII

z1968: Structured Programming by Dijkstra, Dahl, and Hoare.

10

Where Were We By 1970?

zCOBOL was the most widely used language, especially in business.zFortran was the most widely used language

for science and engineering.zAlmost no one had heard of Simula or Pascal.zMost systems programming was still being

done in assembly language.

11

1970s

zSome outgrowths from the ’60syTimesharing became common.yMinicomputers became common.yCOBOL and Fortran kept rolling along.yThe need for structured programming

techniques started to be recognized.

12

1970s II

zSome developmentsy1971: Microprocessor inventedy1974-1975: First microcomputersy1975: Microsoft BASIC for the AltairxBill Gates, Paul Allen

y1977: Apple II, Commodore PET, and Radio Shack TRS-80 introduced, all running BASIC.yARPAnet and Usenet founded.

13

1970s IIIz1972: Prologz“Programming in Logic”zPhilippe Roussel (France)zBased on rules, facts, and queries.

14

1970s IVz1973: CzSuccessor to B, which was stripped-down

BCPL.zKen Thompson (Bell Labs)zHigh-level constructs and low-level powerzVery suitable for systems programmingyUnix was written as 20K lines of C plus 1K

likes of assembler.

15

1970s V (C continued)zFeaturesyStructured like AlgolyData structuresyPointersyCall by value or referenceyName scope:xLocalxGlobal (named)xStatic (within a source file)

16

1970s VI

z1978: UCSD Pascal for the Apple IIzCompiled into p-code, the machine

language of an ideal machine.zThe p-code was then interpreted.zInterpreters were developed for several

other platforms.zA microprocessor was eventually designed

to run p-code.

17

1970s VII

z1974-1978: AdazNamed after Ada Augusta.zInstigated by the Department of DefensezJean Ichbiah (France)zDesigned for systems programming,

especially embedded systems.zInspired by PL/I and Pascal.

18

1970s VIIIz1972-1980: SmalltalkzAlan Kay, Adele Goldberg (Xerox PARC)zGraphics-richyGUIyFonts

zObject-orientedyEverything is an objectyObjects communicate through messages

19

1970s IXzc. 1972: HAL/SzIntermetricszSystems programming language for the

Space Shuttle.zInspired by PL/IzVariables included units, e.g. x inches.

20

1970s Xz1974: SchemezGerald Sussman & Guy Steele at MITzVariant of LISP, with lexical scoping.yOriginal LISP had only global variables.ySimpler than LISP.

21

Where Were We in 1980?

zCOBOL and Fortran were still rolling along.y“I don’t know what the programming language of

the year 2000 will look like, but it will be called Fortran.” – E. Dijkstra, 1975.

zLISP being used in AI research and specialized applications.ye.g. Implementing “toy” languages.

zBASIC had spawned a new generation of amateur and professional programmers.

22

Where Were We in 1980? II

zProlog was the basis for the Japanese “Fifth Generation” project.zSome Pascal was being taught.zSome people were excited about Unix / C.zMost systems programming was still being

done in assembly language.

23

1980s

zSome outgrowths from the ’70syMinicomputers and timesharing became

common at colleges and some companies.xMost access through hard-copy terminals at

computer centers

yWorkstations running Unix spread into graphics, science, and engineering.yLANs spread.yARPAnet became Internet and reached many

colleges and high-tech companies.

24

1980s II

zSome more outgrowths from the ’70syPersonal computers spread in business and

at home.yWord processing, spreadsheets, etc. reduced

the need for programming.yBBSs and on-line servicesyMany beginning students learned Pascal.yMany advanced students learned C.yStructured analysis and design began.yCOBOL and Fortran kept rolling along.

25

1980s III

z1979-1983: C++zOriginally thought of as “C with classes”.zBjarne Stroustrop (Bell Labs)zFirst widely-accepted object-oriented

language.zFirst implemented as a pre-processor for

the C compiler.zAll the power of C, plus objects.

26

Where Were We in 1990?

zCOBOL and Fortran were starting to flag.zLISP and Scheme were being widely

taught, but not widely used.zBASIC was the most widely used

language in the world.zC was the most popular systems

programming language.zThe Japanese “Fifth Generation” project

had failed.

27

Where Were We in 1990? IIzUnix workstations were widely used at

colleges and high-tech companies.zAlmost every company had at least some

PCs.zLarger companies had LANs.zSome people had home PCs.zAlmost every college and high-tech company

had Usenet, but only some had direct Internet connections.

28

1990s

zSome outgrowths from the ’80syPCs became ubiquitous at work, school, and home.yThe Internet became widely commercially

available.yGUIs became ubiquitous.yThe World Wide Web became ubiquitous.yObject-oriented analysis, design, and programming

spread.

29

1990s II

z1991-1994: HTMLz“Hypertext Markup Language”yLanguage of the World Wide Web.

zTim Berners-Lee (CERN)zA markup language, not a programming

language.zMarks features of a document, not how it

must be displayed.

30

1990s III

z1991-1995: JavazJames Gosling (Sun)zStarted as “Oak” for running set-top

boxes.zApplications or AppletszObject-oriented

31

1990s IV (Java continued)

zGarbage collectionzCompiled into “byte code”, then

interpreted.yMicroprocessors now available.

zGraphical, lots of libraries, multi-tasking, networkingzPortabley“Write once, run anywhere”

32

1990s V

zGrowth of frameworksyPre-written skeletons of programsyFaster developmentyLibraries for GUI, multi-tasking, etc.

zEmphasis on cross-platform developmentyOperating systemsyHardwareyPC, game console, cell phone

33

1990s VI

zLanguages for the Web:yJava applets and servletsyScripting languages, e.g. PERL.xCGI or Apache modulexSimple but powerful.

yLanguages within Web pagesxServer-side includesxPHP

34

1990s VII

zWho knows what people in the next decade will consider the important languages of the ’90s?z…or of the 20th Century?

35

Where Are We In 2004?

zPCs are ubiquitous at home, school, and work.zThe Internet and Web are ubiquitous.zLANs are almost everywhere people have

multiple computers.zMS-Windows is ubiquitous.zUnix still strong, Linux growing.

36

Where Are We In 2004? II

zC and C++ are the most widely used systems programming languages.zJava is exploding.zMost students learning C / C++ or Java.zIncreasing interest in Scheme.zCOBOL, 4GLs, and Java are used for

business.

37

Where Are We In 2004? III

zFortran is the main language on supercomputers.yC++ is growing.yObject-Oriented Fortran 2000.

zScripting languages growing, especially on Web servers.zObject-Oriented COBOL?

38

Where Are We In 2004? IV

zMicrosoft .NETyMultiple languagesxC++xC#xVisual BasicxCOBOLxFortranxEiffel

yCommon virtual machineyWeb services

39

Where Are We In 2004? V

zWho knows what people in the future will consider the important languages of this current decade?z…or of the 21st Century?

40

Next Time

zAn introduction to Logic Programming and Prolog