the origins of software · 2006. 10. 25. · laning & zierler: mit whirlwind fiinterpretive...

34
The Origins of Software '2006 by Armando Fox, UC Berkeley RAD Lab Permission granted to reproduce for academic & personal use if this attribution is preserved.

Upload: others

Post on 12-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

The

Origin

s of

Soft

war

e

©2006 b

y Arm

ando F

ox,

UC B

erke

ley

RAD

Lab

Perm

issi

on g

rante

d t

o r

epro

duce

for

acad

emic

& p

erso

nal

use

if th

is a

ttribution is

pre

serv

ed.

Page 2: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Dis

clai

mer

s

�I

was

n�t t

her

e w

hen

it

hap

pen

ed

�N

ot

an e

xhau

stiv

e su

rvey

of

com

puting h

isto

ry

�Id

eas

and t

erm

s w

e�ll

use

to d

escr

ibe

thes

e ev

ents

are

applie

d in r

etro

spec

t

�Your

mile

age

may

var

y

�O

rgan

izat

ion

�Key

inte

llect

ual

conce

pts

�In

fluen

tial

peo

ple

& a

rtifac

ts (

har

d t

o s

epar

ate!

)�

Wid

er im

pact

�co

mm

erci

al,

soci

al,

inte

llect

ual

Page 3: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

What

is

soft

war

e?

Page 4: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

What

is

soft

war

e?

�Soft

war

e is

info

rmat

ion

�Soft

war

e is

a m

achin

e

�sy

mbolic

repre

senta

tion o

f so

me

task

to b

e per

form

ed b

y a

phys

ical

dev

ice

�..

.im

plie

s a

voca

bula

ry�

but

what

are

the

elem

ents

of

the

voca

bula

ry?

Page 5: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Jacq

uar

d loom

(1804)

�D

iffe

rent

thre

ads

att

ached

to

diffe

rent

spools

�H

ooks

dro

p d

ow

n,

�cat

ch�

and

pull

thre

ad t

hru

hole

in c

ard

�N

o h

ole

in c

ard =

> h

ook

is

blo

cked

and n

o w

eave

occ

urs

Edge-

on s

chem

atic

vie

w o

f ca

rd:

Page 6: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

3 a

spec

ts o

f so

ftw

are

�Lo

gic

al s

truct

ure

:th

e pat

tern

of

hole

s in

the

card

�d

escr

ibe�

what

the

finis

hed

tex

tile

looks

lik

e�

Rep

rese

nta

tion:

if w

e kn

ew t

he

card

siz

e, c

ould

en

code

a w

eave

as

a bin

ary

string

�H

ere

is 0

10110

�W

hy

wou

ld w

e nee

d t

o kn

ow

card

dim

ensi

ons?

�Rel

atio

nsh

ip t

o s

truct

ure

of

phys

ical

dev

ice

�Posi

tionin

g o

f hole

s =

= p

osi

tionin

g o

f w

eavi

ng h

ooks

�Spee

d o

f fe

edin

g c

ards

==

spee

d o

f m

ovi

ng s

hutt

le�

Car

d is

use

less

without

know

ing m

achin

e geo

met

ry,

how

diffe

rent

thre

ad s

pools

are

ord

ered

, et

c.�

Anal

ogy:

rec

ord

s/re

cord

pla

yers

, CD

�s/c

dpla

yers

...

Evo

lution o

f so

ftw

are

loose

ned

thes

e as

soci

atio

ns.

Page 7: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Soft

war

e is

how

you t

ell th

e dev

ice

what

to d

o�

A s

elf-

conta

ined

rep

rese

nta

tion o

f �i

nst

ruct

ions�

for

a m

achin

e des

igned

to

follo

w t

hem

�pre

-EN

IAC:

spec

ial purp

ose

dev

ices

, �s

oft

war

e�m

irro

rs p

hys

ical

org

aniz

atio

n�

Jacq

uar

d loom

, 1850 H

olle

rith

Cen

sus

mac

hin

e, m

echan

ical

cal

cula

tors

�c.

EN

IAC:

conce

pt

of log

ical

org

aniz

atio

nof

dev

ice

beg

ins

to p

redom

inat

e

�post

-EN

IAC:

ass

embly

languag

e�

phys

ical

configura

tion�

invi

sible

to p

rogra

mm

er�

but

asse

mbly

lan

guag

e co

nst

ruct

s st

ill m

irro

r har

dw

are

org

aniz

atio

n

�Fu

lly m

oder

n s

oft

war

e: lar

gel

y in

dep

enden

t of

har

dw

are

�Q

uas

i-hum

an-r

eadab

le r

epre

senta

tion

�Rel

y on

com

pile

rs a

nd inte

rpre

ters

to b

ridge

gap

to a

ssem

bly

lan

guag

e

Page 8: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Bab

bag

e, L

ove

lace

& t

he

Anal

ytic

al E

ngin

e (~

1837)

�Pre

curs

or:

Diffe

rence

Engin

e�

Com

pute

s poly

nom

ials

(fo

r bal

listics

ca

lcula

tions)

usi

ng �

met

hod o

f diffe

rence

s�,

whic

h r

equires

no

multip

lyin

g o

r div

idin

g�

Firs

t G

ov�

t(m

ilita

ry)

gra

nt

for

com

pute

r re

sear

ch,

budget

ove

rrun,

unfinis

hed

pro

ject

�Ess

ential

ly a

fix

ed-p

urp

ose

cal

cula

tor

�Anal

ytic

al E

ngin

e: p

rogra

mm

able

ca

lcula

tor

��I

nst

ruct

ion c

ards�

and �

variab

le c

ards�

��M

ill�

(CPU

) an

d �

store

�(m

emor

y)�

Inst

ruct

ions:

Load

, Sto

re,

arithm

etic

ops,

co

nditio

nal

, fo

rwar

d/b

ackw

ard jum

p (

skip

fo

rwar

d/b

ackw

ard in c

ard r

eader

), s

ubro

utine�

all el

emen

ts o

f m

oder

n c

om

pute

rs�

Nev

er b

uilt

until

Page 9: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Ada

Love

lace

, th

e firs

t pro

gra

mm

er (

1815-1

852)

�Brilli

ant

and m

athem

atic

ally

pre

coci

ous

dau

ghte

r of

(d

ivorc

ed)

Lord

Byr

on

�at

tended

soci

ety

�sal

ons�

due

to h

er s

oci

al s

tatu

s as

th

e �C

ounte

ss o

f Lo

vela

ce�

�bec

ame

Bab

bag

e�s

pro

tégé

afte

r bec

om

ing f

asci

nat

ed

with D

iffe

rence

Engin

e at

his

sal

on

�O

ne

of t

he

few

who u

nder

stood A

E�s

pote

ntial

�D

evis

ed A

nal

ytic

al E

ngin

e pro

cedure

for

com

puting

Ber

noulli

num

ber

s�

Like

ly t

he

worl

d�s

fir

st c

om

pute

r pro

gra

m

�Rec

ogniz

ed t

he

poss

ibili

ty for

sym

bolic

co

mputa

tion

at

a tim

e w

hen

few

eve

n u

nder

stood

what

that

mea

nt

�(I

t m

eans

AI,

gra

phic

s, M

P3 p

layb

ack,

tex

t pro

cess

ing,

Web

sea

rch,

...)

�Rew

ard:

an ill-

regar

ded

lan

guag

e nam

ed for

her

Page 10: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

The

Legac

y of

the

Cal

cula

tor

�D

ates

bac

k th

ru Z

use

, Bab

bag

e, P

asca

l, e

tc.

�1645:

Bla

ise

Pasc

al c

onst

ruct

s firs

t tr

ue

mec

han

ical

ca

lcula

tor

�Rew

ard:

an ill-

regar

ded

lan

guag

e nam

ed for

him

�M

ilita

ry h

as a

lway

s bee

n d

rivi

ng f

orc

e�

Solv

ing b

allis

tics

equat

ions

requires

eva

luat

ing n

ontr

ivia

l poly

nom

ials

, ta

king s

quar

e ro

ots

, et

c.

��D

iffe

rential

anal

yzer

s�an

d o

ther

anal

og

elec

trom

echan

ical

cal

cula

tors

wer

e cu

rren

t tr

end

�Bas

ed o

n p

hys

ical

pro

per

ties

of ca

pac

itiv

e an

d induct

ive

elec

tric

al e

lem

ents

�Id

ea o

f a

dig

ital

com

pute

r buck

ed t

hat

tren

d�

�Soft

war

e�=

pla

n f

or

doi

ng a

com

ple

x ca

lcuat

ion

Page 11: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

EN

IAC (

1945)

�Ele

ctro

nic

alN

um

eric

al I

nte

gra

tor

And C

alcu

lato

r built

for

US m

ilita

ry a

t M

oore

Sch

ool of

Engin

eeri

ng,

UPen

n�

Ele

ctro

nic

vac

uum

-tube

reim

ple

men

tation o

f se

quen

ceab

leca

lcula

tor

�Fu

nct

ional

units:

multip

lier,

div

ider

, sq

uar

e ro

ot�

20 A

ccum

ula

tors

, ea

ch c

an h

old

10-d

igit 1

0�s

-co

mple

men

t num

ber

(ab

out

4.3

byt

es,

so <

100 b

ytes

to

tal)

�Const

ant

tran

smitte

r (f

rom

dia

ls o

r punch

car

ds)

�Cyc

ling u

nit (

clock

)

�in

ter

ms

of pro

gra

mm

abili

ty,

arguab

ly les

s flex

ible

than

the

Anal

ytic

al E

ngin

e!

Page 12: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

EN

IAC:

built

1937-1

945,

dec

om

mis

sioned

1955

�42 p

anel

s, e

ach 9

�x2�x

1�, ~

200 t

ons

�H

ouse

d in r

are

forc

ed-a

ir-c

oole

d b

uild

ing

�19,0

00+

vac

uum

tubes

, 1500 r

elay

s�

3,0

00 input

switch

es�

Man

ual

cab

ling -

setu

p c

ould

tak

e day

s�

Additio

n c

ycle

0.2

ms

(5 K

Hz)

, 1000x

fast

er t

han

Diffe

rential

Anal

yzer

Page 13: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

What

would

EN

IAC

�soft

war

e�be

like?

�Consi

der

3 t

rain

ed m

onke

ys w

ith c

alcu

lato

rs�

2 c

an o

nly

add/s

ubtr

act;

3rd

can

als

o m

ultip

ly,÷

, √

�Eac

h m

onke

y lo

oks

at

a co

lore

d lam

p t

o t

ell him

w

hat

to d

o:

�Show

his

cal

cula

tor

scre

en t

o an

oth

er s

pec

ific

monke

y�

Add

num

ber

show

n t

o h

im t

o n

um

ber

on h

is s

cree

n�

Rep

lace

his

num

ber

with n

um

ber

writt

en o

n b

lack

boar

d

�G

oal

: co

mpute

�D

eliv

erab

le:

step

-by-

step

lis

t of

lam

p-l

ightings

and

what

goes

on b

lack

boar

d a

t ea

ch s

tep

x=(−

b+b2

−4a

c)2a

Page 14: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

�Pro

gra

mm

ing�

EN

IAC

�D

ata

bus

is n

ot

real

ly a

bus�

just

a c

able

tra

y�

Tru

e par

alle

lism

: VLI

W F

rom

Hel

l

Page 15: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

�Pro

gra

mm

ing�

EN

IAC,

#2

�Ex:

com

pute

(a�

b),

(b+

359),

(c+

2b+

359)

1.

A4

←ad

d 1

0�s

com

p.

of A

5 (

A4=

a-b)

A6

←A5 o

n α

(A6=

c+b)

2.

A6

←A5 o

n α

, si

nce

A5 R

epCount=

2 (

A6+

=b)

3.

A5

←359 o

n β

connec

tor

(A5+

=359)

A6

←359 o

n β

connec

tor

(A6+

=359)

4.

End s

tate

: A4=

a-b,

A5=

b+

359,

A6=

c+2b+

359

Page 16: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

EN

IAC�s

contr

ibutions

&

signific

ance

�N

ote

wort

hy.

..�

Tru

e par

alle

l ad

ditio

n (

thin

k: t

he

VLI

W F

rom

Hel

l)�

His

torica

l origin

of �a

ccum

ula

tor�

�re

flec

ts c

alcu

lato

r le

gac

y

�Eas

y to

see

lea

p t

o d

ata-

bus-

bas

ed a

rchitec

ture

w

ith t

rue

mic

roco

de

�EN

IAC:

connec

t sp

ecific

inputs

to o

utp

uts

with h

ardw

ired

ca

ble

s; d

iffe

rent

for

each

pro

ble

m t

o b

e so

lved

�tr

ue

dat

a bus:

outp

ut

from

any

unit a

vaila

ble

to

all;

oper

atio

n b

eing p

erfo

rmed

sel

ects

whic

h o

ne

read

s

�M

IT W

hirlw

ind c

om

pute

r an

d M

ark

I ca

lcula

tor

�punch

car

ds

wou

ld b

e use

d t

o do t

his

sel

ection:

hole

s in

ca

rds

route

outp

uts

to inputs

and s

elec

t oper

atio

ns

�hole

pat

tern

s on

car

d c

an b

e in

terp

rete

d a

s dat

a

Page 17: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Ram

ific

atio

ns

of

mac

hin

e la

nguag

e co

nce

pt

Deep

in

sig

ht:

Pro

gra

ms

Are

Data

�Seq

uen

ces

of

1�s

and 0

�s t

o a

ctiv

ate

mac

hin

e el

emen

ts <

=>

bin

ary

repre

senta

tions

of

num

ber

s�

Pra

ctic

al im

plica

tio

n:

pro

gra

m t

o b

e ex

ecute

d

can b

e st

ore

d in t

he

sam

e m

ediu

m a

s th

e dat

a on

whic

h it

oper

ates

(�s

tore

d-p

rogra

m c

om

pute

r�)

�Jo

hn V

on N

eum

ann u

nfa

irly

cre

dited

with idea

�N

on

-ob

vio

us

bu

t d

eep

im

plica

tio

n:

pro

gra

m

itse

lf c

an b

e oper

ated

on lik

e dat

a

Page 18: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Ala

n T

uring:

A f

orm

al m

odel

of

com

puta

tion (

1936)

�Turing m

achin

e: �

esse

nce

�of

com

puting

�Eas

y-to

-under

stan

d v

ersi

on:

Finite

stat

e m

achin

e�

Mac

hin

e�s

nex

t beh

avio

r dep

ends

only

on

curr

ent

stat

e an

d c

urr

ent

inputs

.�

Exa

mple

: 6-s

tate

FSM

for

25-c

ent

vendin

g

mac

hin

e th

at t

akes

nic

kels

and d

imes

�Slig

htly

har

der

to

under

stan

d v

ersi

on:

�In

finite

paper

tap

e div

ided

into

cel

ls h

old

ing

one

sym

bol ea

ch�

Head

exam

ines

one

cell

at a

tim

e an

d c

an

move

lef

t/right

�Tab

le o

f in

stru

ctio

ns:

�If

in s

tate

X,

and

sym

bol under

tap

e is

∑,

eras

e/w

rite

a

sym

bol [o

n t

he

tape]

, m

ove

Left

(or

Rig

ht)

, an

d e

nte

r st

ate

Y.�

�M

achin

e def

initio

n is

a finite-

length

lis

t of

tu

ple

s<

X, ∑

, Wri

te, M

ove,

Nex

t-sta

te>

that

can

be

repre

sente

d n

um

eric

ally

S 5 10

25 20 15

REJECT-COIN

DISPENSE-

CANDY

Page 19: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Implic

atio

ns:

Com

puta

bili

ty

Theo

ry a

nd U

niv

ersa

lity

�Pro

gra

ms

as d

ata:

can

subje

ct t

hem

to form

al m

anip

ula

tion

and a

nal

ysis

�Fa

mou

s re

sult:

Univ

ersa

lity,

Turing c

omple

tenes

s�

Giv

ena

des

crip

tion (

tran

scri

bed

to �

paper

tape�

) of

a par

ticu

lar

turing

mac

hin

e M

,�

one

can c

onst

ruct

a �u

niv

ersa

l�Turi

ng m

achin

e U

TM

that

can

re

ad t

hat

tape

and b

ehav

e ex

actly

as M

would

.

�Pr

actica

l im

port

ance

: phys

ical

com

pute

r w

ith p

roper

ties

of a

UTM

is

just

as

pow

erfu

l (i

n a

theo

retica

l se

nse

) as

any

oth

er c

om

pute

r�

A d

eep a

nd r

evolu

tionar

y re

sult w

e now

tak

e fo

r gra

nte

d!

�Pr

actica

l re

sult:

com

pile

rs a

nd inte

rpre

ters

�Pr

actica

l re

sult:

emula

tors

and s

imula

tors

(eg

Apple

~1997)

Page 20: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Gra

ce M

urr

ay H

opper

, th

e M

ark

I �c

om

pile

r�,

and s

ubro

utines

(1944)

�N

avy

offic

er (

even

tual

ly r

ear

adm

.) &

mat

h

pro

fess

or,

vis

itin

g P

rof.

How

ard A

iken

�s H

arva

rd

Com

puta

tion L

ab�

Mar

k I

& I

II c

om

pute

rs d

evel

oped

for

US M

ilita

ry�

�Pro

gra

mm

ing�

==

punch

a r

ow

of

24 h

ole

s in

pap

er t

ape

to r

epre

sent

one

mac

hin

e in

stru

ctio

n�

Firs

t au

tom

atic

com

pute

r, b

ut

not

store

d-p

rogra

m�

Hopper

�s insi

ght:

kee

p lib

rary

of ta

pes

of

com

monly

-use

d �

subta

sks�

(eg

squar

e ro

ot)

�But

each

tim

e use

d,

hav

e to

chan

ge

argum

ent

valu

es,

what

to d

o w

ith t

he

resu

lt,

etc.

�Id

ea:

a pro

gra

m t

o a

uto

mat

ical

ly c

om

pile

pap

er

tape

of

com

ple

te p

roce

dure

, �s

plic

ing in�

subta

sks

as n

eeded

�M

oder

n (

re)b

irth

of

the

subro

utine

conce

pt;

would

be

abse

nt

from

origin

al F

ORTRAN

!�

Eve

ntu

ally

bec

ame

A-0

�co

mpile

r�fo

r U

niv

ac 1

(1

952;

photo

c.1

962)

Page 21: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Lanin

g&

Zie

rler

: M

IT W

hirlw

ind

�Inte

rpre

tive

Pro

gra

m�

(1954)

�In

put:

alg

ebra

ic e

xpre

ssio

ns

punch

ed o

nto

car

ds

�O

utp

ut:

mac

hin

e-la

nguag

e pro

gra

m t

o d

o th

e co

mputa

tion

�W

her

e to

put

inte

rmed

iate

res

ults

�H

ow

to �

sched

ule

�co

mputa

tion o

f in

term

edia

te r

esults

�This

would

�ve

bee

n E

NIA

C�s

ass

emble

r, if

it h

ad o

ne!

�Pro

bab

ly t

he

firs

t as

sem

ble

r�

Ori

gin

: �a

ssem

blin

g�

a dec

k of

card

s fr

om

subro

utines

, co

nst

ants

, et

c.�

Voca

bula

ry o

f w

hat

to d

o is

still

tie

d t

o m

achin

e har

dw

are

�But

�house

keep

ing�

task

s m

anag

ed a

uto

mat

ical

ly�

Like

ly f

ore

runner

of

moder

n c

om

pile

rs

��s

ourc

e�an

d �

obje

ct�

code

not

sto

red in s

ame

mem

ory

��p

rogra

mm

ing�

still

see

n a

s se

par

ate

from

�co

mputing�

�Fi

rst

com

pla

ints

by

�rea

l pro

gra

mm

ers�

that

com

pile

r-gen

erat

ed c

ode

is m

uch

wors

e th

an h

and-t

uned

ass

embly

Page 22: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

John B

acku

s, F

ORTRAN

, an

d

the

IBM

704 (

1957)

�Res

emble

s al

geb

ra,

hid

es

phys

ical

im

ple

men

tation

�Im

med

iate

hit

�In

dust

ry r

ealiz

atio

n:

use

rs

wan

t to

do

work

, not

futz

w

ith a

rtifac

ts�

Not

cle

ar if th

is h

as s

unk

in

PROGRAM HYPOTENUSE

REAL X,Y,Z, T1

PRINT *,"ENTER X

and Y VALUES:"

READ *, X,Y

IF (X.EQ.0 .OR. Y.EQ.0) THEN

PRINT *, "X,Y MUST BE NON-ZERO"

ELSE

T1 = X**2 + Y**2

Z = T1**0.5

PRINT *, "HYPOTENUSE IS:", Z

END IF

END

�D

evel

oped

by

IBM

for

use

on its

pio

nee

ring

704 c

om

pute

r�

Am

ong f

irst

to h

ave

float

ing p

oin

t har

dw

are

�Com

pute

r, lan

guag

e &

com

pile

r co

-des

igned

by

John B

acku

s to

exp

loit t

his

=>

fas

t

�Com

pile

r is

its

elf

a m

achin

e co

de

pro

gra

m

on c

ards!

Page 23: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Ter

min

olo

gy:

Lo

w L

evel

, H

igh L

evel

�By

1957,

moder

n languag

es

had

beg

un t

o e

volv

e�

1937:

EN

IAC p

rogra

mm

ing is

phys

ical

rec

onfigura

tion

�1950:

Whirlw

ind p

rogra

mm

ing

conve

rts

algeb

ra e

quat

ions

to

mac

hin

e in

stru

ctio

ns

�1957:

FORTRAN

exp

ress

es t

ask

to

be

done

with n

o re

fere

nce

to

phys

ical

mac

hin

e

�N

ext

big

rev

olu

tions:

�te

chnolo

gy:

inte

gra

ted c

ircu

its

�re

sear

ch &

busi

nes

s m

odel

s re

sultin

g f

rom

�unbundlin

g�

of

soft

war

e

Con

nect

ing

cabl

es

Mac

hine

cod

e on

pun

ch

card

s

Asse

mbl

y la

ngua

ge

Early

hig

h-le

vel l

angu

ages

(F

OR

TRAN

, C)

Stru

ctur

ed p

rogr

amm

ing

lang

uage

s (P

asca

l)

Dom

ain-

spec

ific

lang

uage

s (M

ATLA

B, O

penG

L)

Scrip

ting

and

“glu

e”la

ngua

ges

(Per

l, R

uby)

Page 24: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Fred

Bro

oks

, IB

M S

yste

m/3

60,

and c

om

pat

ibili

ty

��A

rchitec

ture

�: I

BM

�s n

ew t

erm

for

360 a

ppro

ach

�Ass

embly

lan

guag

e use

d b

y pro

gra

mm

ers

reflec

ted o

nly

lo

gic

al m

achin

e or

gan

izat

ion

�M

icro

code

(diffe

rent

for

each

model

) im

ple

men

ted

asse

mbly

inst

ruct

ion in t

erm

s of phys

ical

circu

its

�In

put

& o

utp

ut

circ

uitry

sta

ndar

diz

ed �

chan

nel

�ci

rcuitry

�Res

ult:

Buy

any

360 m

odel

, upgra

de

late

r, y

our

pro

gra

ms

and I

/O p

erip

her

als

will

still

work

!

�Fi

rst

step

in t

he

tota

l dec

ouplin

g o

f H

W &

SW

�In

tel/

Mic

roso

ft s

trat

egy

~30 y

ears

lat

er

�Fr

ed B

rooks

(princi

pal

arc

hitec

t of

OS/3

60):

fir

st

�har

d les

sons�

from

a g

argan

tuan

soft

war

e pro

ject

, The

Myt

hic

al M

an-M

onth

Page 25: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Ken

Ols

en,

Dig

ital

Equip

men

t Corp

., a

nd t

he

PDP-

8 (

1965)

�D

EC:F

irst

star

tup t

o re

cruit n

ew c

olle

ge

gra

ds

(MIT

)�

Man

yim

po

rtan

t fi

rsts

of PD

P se

ries

(es

p.

PDP-8

):�

Firs

t m

inic

om

pute

r: s

ize,

pac

kagin

g,

cost

(~

$120K),

and u

se

model

�use

rs,

not

oper

ator

s�

[Gee

k] F

irst

com

mer

cial

DM

A:

fast

I/O

at

frac

tion o

f IB

M p

rice

�[G

eek]

Fir

st u

se o

f in

dir

ect

addre

ssin

g &

pagin

g t

o e

xten

d

addre

ss s

pac

e w

hile

kee

pin

g n

ativ

e in

stru

ctio

n s

ize

smal

l

�Fi

rst

open

API�s

�to

com

pet

e w

ith I

BM

, D

EC e

nco

ura

ged

its

cust

om

ers

and

pro

spec

ts t

o lea

rn a

bout,

modify,

and p

lay

with t

hei

r sy

stem

�Sim

ple

arc

hitec

ture

�co

uld

be

quic

kly

under

stood b

y an

as

sem

bly

-lan

guag

e pro

gra

mm

er

�Tri

via:

use

d f

or

firs

t co

mpute

r-co

ntr

olle

d lig

hting

(A C

horu

s Li

ne,

1975)

and B

ART info

dis

pla

ys (

1972)

�N

o r

eal en

gin

eering b

reak

thro

ugh,

but

a m

assi

ve c

ultura

l sh

ift.

..�a

hac

ker-

frie

ndly

com

pute

r�

Page 26: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Ken

Thom

pso

n,

Den

nis

Ritch

ie,

Brian

Ker

nig

han

: U

nix

& C

(1971)

�U

nix

: a

�sim

ple

�oper

atin

g s

yste

m o

rigin

ally

dev

eloped

for

PDP-

7 (

the

Ford

Esc

ort

of

min

icom

pute

rs)

�nam

e al

ludes

to M

IT M

ULT

ICS,

pio

nee

ring �

tim

eshar

e�sy

stem

�1st

ed.

1971;

for

text

pro

cess

ing o

f pat

ent

docu

men

ts w

ith

roff

�C:

a co

mpac

t an

d m

odes

t pro

gra

mm

ing lan

guag

e�

Provi

des

hig

h-l

evel

lan

guag

e co

nst

ruct

s (l

oopin

g,

subro

utines

, si

mple

dat

a st

ruct

ure

s, e

tc.)

but

does

n�t h

ide

mac

hin

e-le

vel st

ruct

ure

s

�M

ost

of

Unix

rew

ritt

en in C

~1973:

firs

t so

urc

e port

able

OS

�Ber

kele

y Soft

war

e D

istr

ibution (

BSD

) ~

1975:

AT&

T-c

onte

sted

par

ts r

ewri

tten

fro

m s

crat

ch,

port

ed t

o V

AX,

avai

lable

fre

e�

Unix

+C+

VAX

(PD

P-8 s

ucc

esso

r) s

wep

t re

sear

ch c

om

munity

�1982:

Sun d

ecid

es t

o b

ase

work

stat

ion b

usi

nes

s on U

nix

�so

urc

e port

abili

ty a

nd C

com

pile

r now

tak

en for

gra

nte

d

(gcc

)�

Linux:

wid

est

open

-sourc

e m

anifes

tation

of

this

tra

ject

ory

Page 27: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Gat

es,

Alle

n,

Rober

ts,

the

MIT

S

Altai

r, a

nd M

icro

-Soft

[si

c] B

ASIC

�M

ITS A

ltai

r -

firs

t �h

obbyi

st�

com

pute

r ki

t, o

ffer

ed in

Popula

r Ele

ctro

nic

s fo

r $395,

sold

lik

e c

razy

�But

you c

ould

n�t d

o a

nyt

hin

g w

ith it:

no I

/O d

evic

es,

pro

gra

mm

ing w

as a

ll in

bin

ary

(Inte

l 8080)�

�G

ates

& A

llen s

aw a

n o

pport

unity:

BASIC

lan

guag

e�

crea

ted in 1

964 a

t D

artm

outh

for

teac

hin

g p

rogra

mm

ing

�G

ates

& A

llen f

ounded

�M

icro

-Soft

�an

d c

reat

ed a

ver

sion o

f BASIC

for

the

Altai

r�

Late

r lic

ense

d B

ASIC

for

TRS-8

0,

Apple

II,

and m

any

oth

ers

�Big

lose

r: G

ary

Kild

all, inve

nto

r of CP/M

�Turn

ed d

ow

n I

BM

; M

icro

soft

got

contr

act,

bought

QD

OS f

or

$175K,

repac

kaged

as

MS-D

OS

�Kild

allth

ought

peo

ple

would

pay

more

for

a bet

ter

pro

duct

�W

indow

s (d

irec

t des

cendan

t of

QD

OS)

now

runs

90+

% P

C�s

�W

ould

be

repea

ted w

ith A

pple

�s M

acin

tosh

& J

ohn S

cully

Page 28: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Impac

t: s

oft

war

e as

in

form

atio

n v

s. a

s m

achin

e�

Unbundlin

g o

f so

ftw

are

and b

ackw

ard c

om

pat

ibili

ty�

Unhea

rd-o

f bef

ore

IBM

S/3

60;

impra

ctic

al b

efore

PD

P-8

�Res

ult:

cust

om

er inve

stm

ent

is m

ost

ly s

oft

war

e: lic

ensi

ng,

trai

nin

g,

support

org

aniz

atio

n,

etc.

�The

entire

busi

nes

s m

odel

of

Inte

l/M

icro

soft

�Bre

akin

g a

way

fro

m t

he

�pries

thood

�m

odel

: BSD

+VAX

�Bef

ore

DEC &

BSD

, IB

M o

wned

the

soft

war

e/co

mpute

r in

dust

ry�

today

, >

2/3

of

Web

ser

vers

rel

y on O

pen

Sourc

e so

ftw

are,

th

e sp

iritual

des

cendan

t of

PDP-

8/B

SD

Unix

�M

oore

�s L

aw (

com

pute

r sp

eeds

dou

ble

eve

ry 1

8 m

onth

s)

mak

es v

ery-

hig

h-l

evel

lan

guag

es a

fford

able

�Com

pile

rs n

o longer

slo

w�

Inte

rpre

ters

no longer

slo

w�

Languag

es c

an f

ocu

s on b

eing e

asie

r to

lea

rn:

each

lan

guag

e el

emen

t does

a lot

more

com

puting w

ork

�Eve

ryday

exa

mple

s: E

xcel

mac

ros,

MATLA

B,

Vis

ual

Bas

ic

Page 29: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Impac

t: S

oft

war

e as

fu

nct

ional

ity

(vs.

har

dw

are)

�W

hat

kin

d o

f in

telle

ctual

pro

per

ty is

soft

war

e?�

Sou

rce

code

is lik

e a

boo

k →

copyr

ight

�Soft

war

e direc

ts t

he

oper

atio

n o

f a

mac

hin

e →

pat

ent

�Sof

twar

e ca

n b

e tw

eake

d a

nd incr

emen

tally

modifie

d →

der

ivat

ive

work

�If

I d

evel

op a

new

alg

ori

thm

...

�it�s

pat

enta

ble

if

I im

ple

men

t it d

irec

tly

in s

ilico

n

(EN

IAC-s

tyle

) �

it�s

copyr

ighta

ble

if

I publis

h t

he

sourc

e co

de

�it�s

a m

ess

if I

cla

im its

�look

& f

eel�

is p

rote

ctab

le�

what

if it im

ple

men

ts a

�busi

nes

s m

ethod

�, lik

e Am

azon

1-c

lick�

©®

purc

has

ing?

�H

as s

paw

ned

a w

hole

subfiel

d o

f in

nova

tion-

stiflin

g litig

atio

n

Page 30: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Impac

t: s

oft

war

e as

abst

ract

re

pre

senta

tion

�Turing�s

form

alis

ms

mad

e it m

eanin

gfu

l to

tal

k ab

out

com

pute

r sc

ience

as

dis

tinct

fro

m e

lect

rica

l en

gin

eering,

pro

gra

mm

ing,

etc.

�D

esig

n o

f dom

ain-s

pec

ific

lan

guag

es�

Des

ign o

f pro

gra

mm

ing m

ethodolo

gie

s�

Com

pute

r la

nguag

e en

gin

eeri

ng:

build

ing t

he

pro

gra

ms

that

an

alyz

e, c

om

pile

, an

d o

ptim

ize

oth

er p

rogra

ms

�Fo

rmal

met

hods

for

pro

ving t

hin

gs

about

pro

gra

ms

�Pr

ogra

ms

are

abst

ract

des

crip

tions

of

com

puta

tion;

what

can

w

e pro

ve a

bout

those

des

crip

tions?

�Fa

mous

Turing r

esult:

the

hal

ting p

roble

m a

nd u

ndec

idab

ility

�Lo

ts o

f w

ork

in v

erific

atio

n,

pro

toco

l ch

ecki

ng,

bug f

indin

g

�Critica

l ques

tion:

what

is

actu

ally

bei

ng v

erifie

d?

�th

e gap

bet

wee

n s

oft

war

e-as

-abst

ract

ion a

nd s

oft

war

e-as

-m

achin

e has

alw

ays

bee

n w

ith u

s, a

nd p

robab

ly a

lway

s w

ill b

e

Page 31: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Impac

t: s

ourc

e port

abili

ty

�Sourc

e-port

abili

ty t

aken

for

gra

nte

d�

Incr

ease

d lev

erag

e of pro

gra

mm

ers

ever

ywher

e�

BSD

Unix

and lat

er G

NU

/FSF

mad

e it a

fford

able

(fr

ee)

�gcc

now

tak

en f

or

gra

nte

d o

n a

ny

new

arc

hitec

ture

�In

terp

rete

rs a

nd s

ourc

e-port

abili

ty�

ut

inte

rpre

ters

too s

low

for

�pro

duct

ion�

soft

war

e?�

Moore

�s L

aw fix

ed a

ll th

at�

Per

l, P

ython

, PH

P, e

tc.

now

com

mon for

web

sites

�Soft

war

e vi

rtual

mac

hin

es,

egJa

va�

Inte

rpre

ter

+ just

-in-t

ime

com

pili

ng

�Sof

twar

e VM

exp

oses

mac

hin

e-le

vel an

d O

S-l

evel

co

nce

pts

(th

read

s, s

ched

ulin

g,

I/O

prim

itiv

es,

etc.

) norm

ally

hid

den

by

hig

h-l

evel

lan

guag

es�

VM

�byt

ecode�

is its

elf in

terp

rete

d/c

om

pile

d

Page 32: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Impac

t: v

iruse

s

�Soft

war

e has

bec

om

e ove

rwhel

min

gly

com

ple

x�

Win

dow

s N

T:

~60 m

illio

n lin

es o

f so

urc

e�

Bey

ond t

he

abili

ty o

f an

y in

div

idual

to fully

gro

k

�Soft

war

e is

not

har

dw

are

�Pro

gra

mm

ers

tend t

o hav

e an

abst

ract

sta

te m

achin

e in

m

ind (

Turing)

when

des

ignin

g s

oftw

are

�But

the

syst

em o

n w

hic

h it

runs

has

man

y �p

hys

ical

ly

legal�

stat

es t

hat

don

�t c

orr

espon

d t

o a

ny

pro

gra

mm

er-

antici

pat

ed s

tate

�Annoyi

ng r

esult:

bug

�D

anger

ous

resu

lt:

bug =

= s

ecurity

hole

�Li

ke a

Murp

hy�

s La

w�

any

bug t

hat

can

be

explo

ited

as

a se

curity

hole

, w

ill b

e, a

nd a

t th

e w

ors

t poss

ible

tim

e an

d

by

evil

peo

ple

Page 33: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

Concl

usi

on

�Sep

arat

ion o

f har

dw

are

and s

oft

war

e m

ay b

e th

e m

ost

im

port

ant

inte

llect

ual

bifurc

atio

n o

f 20th

c.

�Conce

pts

go f

ar b

eyon

d d

igital

com

pute

rs!

1.

Soft

war

e as

info

rmat

ion t

hat

can

be

oper

ated

on,

anal

yzed

, et

c.2.

Soft

war

e as

an a

bst

ract

des

crip

tion o

f how

a m

achin

e sh

ould

do a

pro

cedure

3.

Rel

atio

nsh

ip b

etw

een t

he

phys

ical

mac

hin

es a

nd t

he

repre

senta

tion(s

) of

its

�so

ftw

are�

�N

ow

rep

lace

�so

ftw

are�

with �

DN

A�

and

�mac

hin

e�w

ith �

bio

logic

al s

yste

m�

�The

last

50 y

ears

witnes

sed a

pro

found r

evolu

tion fro

m

the

dev

elopm

ent

of idea

s of

com

pute

r so

ftw

are

�Both

pos

itiv

e an

d n

egat

ive

impac

ts�

Will

the

nex

t 50 b

e th

e sa

me

for

�bio

logic

al

f

Page 34: The Origins of Software · 2006. 10. 25. · Laning & Zierler: MIT Whirlwind fiInterpretive Programfl (1954) Ł Input: algebraic expressions punched onto cards Ł Output: machine-language

For

more

...

�Com

pute

r M

use

um

Vis

ible

Sto

rage,

Mounta

in

Vie

w,

CA

�Com

pute

r M

use

um

Onlin

e Tim

elin

e�w

ww

.com

pute

rhis

tory

.org

�Anal

ytic

al E

ngin

e si

mula

tor:

w

ww

.fourm

ilab.c

h/b

abbag

e�

EN

IAC o

nlin

e si

mula

tor

(Google

it)

�Turing M

achin

e onlin

e si

mula

tors

(ditto

)�

the

Hel

lo W

orld a

rchiv

e�

New

Hac

ker�s

Dic

tionar

y (o

nlin

e a/

k/a

The

Jarg

on

File

)�

Esp

. �T

he

story

of M

el,

a re

al p

rogra

mm

er�

for

insi

ghts

in

to m

enta

lity

of m

achin

e vs

. as

sem

bly

vs.

com

pile

rs