IEEE Spectrum July, 2011 - 48

Ammann wrote a Pascal compiler and output operations, allowing you, for
Urs Ammann, a student of Wirth's at the
Swiss Federal Institute of Technology that generated what he called "p-code" example, to access data in the middle of a
Zurich, had recently devised the per- for a p-machine, which was used to bring file without having to read everything that
fect solution: Create a "p-machine" (the Pascal to several different mainframes. came before it first. The group also added
something called units, which
p stands for pseudo), which
were modules of code, each
is to say a virtual machine,
with a well-defined interface
in software.
to other system components.
To appreciate what such
Units were a step toward moda virtual machine is, you
ern object-oriented design, in
need to understand somewhich the building blocks of a
thing about how computer
program are cohesive, reusable
programming is done. The
software modules that packcentral processing unit of a
age data and code together.
computer carries out very
In addition, the UCSD
simple instructions-add
p-System included a fi le hanone number to another,
dler, a debugger, and a text
that sort of thing. These
editor for writing programs-
instructions are encoded
a l l d e ve lop e d i n P a s c a l
and passed to the procesand compiled into p-code.
sor in the form of binary
Graduate student Richard
numbers, a sequence of 1s
Kaufmann wrote the editor,
and 0s.
one of the earliest to offer a
Wr it i ng a pr o g r a m
full screen of text and a curdirectly in machine code
sor that could be moved anyis tedious in the extreme.
where on the page using key
People generally program
commands. These software
in higher-level languages,
tools included drop-down
whose instructions are
menus, which appeared again
considerably easier to
much later in Apple's Lisa
understand: "If A equals
and Macintosh computers.
B , execute com ma nd
Although the initial UCSD
C," for instance. Special
p-System was developed for a
software translates such
PDP-11 minicomputer, some of
high-level instructions
Bowles's students also impleinto the machine code
mented a p-machine for microthat the processor actucomputers that used Zilog's
ally runs. That special
Z80 microprocessor. The first
software is typically a
test of the system's portability,
compiler that is specific
carried out soon after that chip
to the lang uage you're
was introduced in July 1976,
using to write the proRAINBOW COALITION: Ken Bowles teamed up with Apple computer,
was an ambitious one: running
gram and the machine which sold ucSD pascal (rebranded as Apple pascal) for its Apple ii
the p-code for Kaufmann's text
you want it to run on. A microcomputer, as evidenced by this colorful syntax chart for the language.
editor on a Z80. It operated
compiler that works on
flawlessly on the first attempt.
a Windows computer, for
example, will not compile your pro- Bowles recognized the beauty of this The UCSD p-System was later ported
approach, and his UCSD team adopted to work with other chips, including the
gram to run on an iPad.
The UCSD p-System included a com- this strategy for use on micro- and MOS 6502 (of Apple II fame), the Motorola
piler that translated high-level instruc- minicomputers. UCSD's p-machine was 68000 (the original Macintosh chip), and
tions into a machine code of sorts-but not slimmed down in some ways compared the Intel 8086 family of microprocessors
one that would run on any computer of the with Ammann's to meet the limitations (used in the first IBM PCs).
day. The code was designed for a machine of the many small computers of the time.
that didn't exist. A processor could in prin- By early 1976, Bowles's students had proowles and his students hoped
ciple be built to run this flavor of machine grammed the fi rst UCSD p-machine in
the p-System would revolutioncode, but that wasn't the idea. Rather, the assembly language on a PDP-11.
ize how someone got an education.
To Wirth's relatively bare-bones defi- But for that to happen, they needed to get
strategy was to write another piece of software that could translate this code on the nition of Pascal, the UCSD group added their software out to the world, which
fly into the current machine's native oper- variables that could represent charac- was no small trick in the pre-Web era.
ations. With such software, your com- ter strings (up to that point, the available
Their first plan was to distribute the
puter-no matter what kind of processor kinds of variables could hold only num- software themselves. Starting in 1978,
it had at its heart-could become, at least bers or at most one character each). The UCSD students copied the p- System
researchers included more powerful input onto floppy disks and sent them to anyvirtually, a p-machine.
48

NA * iEEE SpEctrum * July 2011

spectrum.ieee.org

JEF RASKIN

b


http://spectrum.ieee.org

Table of Contents for the Digital Edition of IEEE Spectrum July, 2011

IEEE Spectrum July, 2011 - Cover1
IEEE Spectrum July, 2011 - Cover2
IEEE Spectrum July, 2011 - 1
IEEE Spectrum July, 2011 - 2
IEEE Spectrum July, 2011 - 3
IEEE Spectrum July, 2011 - 4
IEEE Spectrum July, 2011 - 5
IEEE Spectrum July, 2011 - 6
IEEE Spectrum July, 2011 - 7
IEEE Spectrum July, 2011 - 8
IEEE Spectrum July, 2011 - 9
IEEE Spectrum July, 2011 - 10
IEEE Spectrum July, 2011 - 11
IEEE Spectrum July, 2011 - 12
IEEE Spectrum July, 2011 - 13
IEEE Spectrum July, 2011 - 14
IEEE Spectrum July, 2011 - 15
IEEE Spectrum July, 2011 - 16
IEEE Spectrum July, 2011 - 17
IEEE Spectrum July, 2011 - 18
IEEE Spectrum July, 2011 - 19
IEEE Spectrum July, 2011 - 20
IEEE Spectrum July, 2011 - 21
IEEE Spectrum July, 2011 - 22
IEEE Spectrum July, 2011 - 23
IEEE Spectrum July, 2011 - 24
IEEE Spectrum July, 2011 - 25
IEEE Spectrum July, 2011 - 26
IEEE Spectrum July, 2011 - 27
IEEE Spectrum July, 2011 - 28
IEEE Spectrum July, 2011 - 29
IEEE Spectrum July, 2011 - 30
IEEE Spectrum July, 2011 - 31
IEEE Spectrum July, 2011 - 32
IEEE Spectrum July, 2011 - 33
IEEE Spectrum July, 2011 - 34
IEEE Spectrum July, 2011 - 35
IEEE Spectrum July, 2011 - 36
IEEE Spectrum July, 2011 - 37
IEEE Spectrum July, 2011 - 38
IEEE Spectrum July, 2011 - 39
IEEE Spectrum July, 2011 - 40
IEEE Spectrum July, 2011 - 41
IEEE Spectrum July, 2011 - 42
IEEE Spectrum July, 2011 - 43
IEEE Spectrum July, 2011 - 44
IEEE Spectrum July, 2011 - 45
IEEE Spectrum July, 2011 - 46
IEEE Spectrum July, 2011 - 47
IEEE Spectrum July, 2011 - 48
IEEE Spectrum July, 2011 - 49
IEEE Spectrum July, 2011 - 50
IEEE Spectrum July, 2011 - 51
IEEE Spectrum July, 2011 - 52
IEEE Spectrum July, 2011 - 53
IEEE Spectrum July, 2011 - 54
IEEE Spectrum July, 2011 - 55
IEEE Spectrum July, 2011 - 56
IEEE Spectrum July, 2011 - 57
IEEE Spectrum July, 2011 - 58
IEEE Spectrum July, 2011 - 59
IEEE Spectrum July, 2011 - 60
IEEE Spectrum July, 2011 - 61
IEEE Spectrum July, 2011 - 62
IEEE Spectrum July, 2011 - 63
IEEE Spectrum July, 2011 - 64
IEEE Spectrum July, 2011 - 65
IEEE Spectrum July, 2011 - 66
IEEE Spectrum July, 2011 - 67
IEEE Spectrum July, 2011 - 68
IEEE Spectrum July, 2011 - Cover3
IEEE Spectrum July, 2011 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1217
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1117
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1017
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0917
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0817
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0717
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0617
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0517
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0417
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0317
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0217
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0117
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1216
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1116
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1016
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0916
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0816
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0716
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0616
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0516
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0416
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0316
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0216
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0116
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1215
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1115
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1015
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0915
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0815
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0715
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0615
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0515
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0415
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0315
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0215
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0115
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1214
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1114
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1014
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0914
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0814
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0714
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0614
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0514
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0414
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0314
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0214
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0114
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1213
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1113
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1013
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0913
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0813
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0713
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0613
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0513
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0413
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0313
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0213
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0113
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1212
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1112
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1012
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0912
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0812
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0712
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0612
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0512
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0412
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0312
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0212
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0112
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1211
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1111
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1011
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0911
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0811
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0711
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0611
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0511
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0411
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0311
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0211
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0111
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1210
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1110
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1010
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0910
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0810
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0710
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0610
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0510
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0410
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0310
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0210
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0110
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1209
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1109
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1009
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0909
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0809
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0709
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0609
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0509
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0409
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0309
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0209
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0109
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1208
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1108
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1008
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0908
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0808
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0708
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0608
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0508
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0408
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0308
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0208
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0108
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1207
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1107
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1007
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0907
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0807
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0707
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0607
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0507
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0407
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0307
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0207
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0107
https://www.nxtbookmedia.com