.\" Copyright (c) 1979 The Regents of the University of California.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"	@(#)pxin0.n	5.2 (Berkeley) 4/17/91
.\"
.if !\n(xx .so tmac.p
.RP
.TL
Berkeley Pascal
PX Implementation Notes
.br
Version 2.0 \- January, 1979
.AU
William N. Joy\*(Dg
.AU
M. Kirk McKusick\*(Dd
.AI
Computer Science Division
Department of Electrical Engineering and Computer Science
University of California, Berkeley
Berkeley, California  94720
.AB
.PP
Berkeley Pascal
is designed for interactive instructional use and runs on the
.SM "VAX 11/780" .
The interpreter
.I px
executes the Pascal binaries generated by the Pascal translator
.I pi .
.PP
The
.I
PX Implementation Notes
.R
describe the general organization of
.I px ,
detail the various operations of the interpreter,
and describe the file input/output structure.
Conclusions are given on the viability of an interpreter
based approach to language implementation for an instructional environment.
.AE
.if n 'ND
.SH
Introduction
.PP
These
.I
PX Implementation Notes
.R
have been updated from the  original 
.SM "PDP 11/70"
implementation notes to reflect the interpreter that runs on the
.SM "VAX 11/780" .
These notes consist of four major parts.
The first part outlines the general organization of
.I px .
Section 2 describes the operations (instructions) of the interpreter
while section 3 focuses on input/output related activity.
A final section gives conclusions about the viability of an interpreter
based approach to language implementation for instruction.
.SH
Related Berkeley Pascal documents
.PP
The
.I "PXP Implementation Notes"
give details of the internals of the execution profiler
.I pxp;
parts of the interpreter related to
.I pxp
are discussed in section 2.10.
A paper describing the syntactic error recovery mechanism used in
.I pi
was presented at the ACM Conference on Compiler Construction
in Boulder Colorado in August, 1979.
.SH
Acknowledgements
.PP
This version of
.I px
is a
.SM "PDP 11/70"
to
.SM "VAX 11/780"
opcode mapping of the original
.I px
that was designed and implemented by Ken Thompson,
with extensive modifications and additions
by William Joy
and Charles Haley.
Without their work, this
.UP
system would never have existed.
These notes were first written by William Joy for the
.SM "PDP 11/70"
implementation.
We would also like to thank our faculty advisor Susan L. Graham
for her encouragement,
her helpful comments and suggestions
relating to
.UP
and her excellent editorial assistance.
.FS
\*(dg\ The financial support of the National Science Foundation under grants
MCS74-07644-A03 and MCS78-07291
and of an \s-2IBM\s0 Graduate Fellowship are gratefully acknowledged.
.FE
.FS
\*(dd\ The financial support of a Howard Hughes Graduate 
Fellowship is gratefully acknowledged.
.FE
.bp
