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