Trailing-Edge
-
PDP-10 Archives
-
decuslib10-06
-
43,50417/pascal.doc
There are 7 other files named pascal.doc in the archive. Click here to see a list.
Mitteilung 40
On DECSystem-10 Pascal
H.-H. Nagel
IFI-HH-M-40/76
Auf der DECUS-Konferenz am 9.9.76
in Munchen gehaltern Vortrag
On DECSystem-10 PASCAL
H.-H. Nagel
Institute fuer Informatik
Universitaet Hamburg
Schlueterstrasse 70
D-2000 Hamburg 13
These notes attempt to give some information about the pro-
gramming language PASCAL and its implementation for the DEC-
System-10 with the intent to induce the reader to make himself
acquainted with the literature quoted and possibly to explore
the applicability of PASCAL for his own programming tasks.
The programming language PASCAL has been defined by Wirth /1,2/
and implemented several times in his group /3,4,5/. It is
strongly recommended to read "PASCAL - User Manual and Report"
/6/ since it contains an introduction to the language and the
definition of Standard PASCAL together with the options im-
plemented for the CDC 6000 series computers. Our DECSystem-10
implementation of PASCAL strives to contain Standard PASCAL as a
subset and as many of the CDC 6000 PASCAL options as possible.
These short notes will not be able to convey a flavor of this
language - for that the reader is referred to the literature
quoted. It may suffice to indicate the intentions behind the
design of PASCAL by relating it to two other programming lan-
guages which - as PASCAL - consider ALGOL 60 as their root.
- SIMULA /7/ is a superset of ALGOL-60 which has been developped
originally to provide extensions for the simulation of multiple
process systems. The CLASS concept has been introduced with
SIMULA. This concept has later proven to be a very powerful
and fruitful addition to the field of programming languages.
-2-
Moreover, SIMULA broadens the scope of applicability by
introducing e.g. the character type as a basic ingredient.
Whereas SIMULA retained ALGOL-60 as a subset and the ensue-
ing restrictions.
- PASCAL has been designed without accepting the preceding
ALGOL-60 as a subset thus gaining the freedom to explore
new grounds. The overriding design principle has been to
strike a balance between the language capabilities and the
resulting implementation efforts as well as the requirements
for the runtime support. Therefore, PASCAL emphasizes the
practical aspects of going beyond ALGOL-60, in contrast to
- ALGOL 68 /8/ which emphasizes the theoretical aspects of
exploring the design possibilities for programming languages
beyond ALGOL-60.
Any attempt to strike a balance is likely to leave somebody
unsatisfied. It is not surprising, therefore, that the publi-
cation of PASCAL has resulted in a protracted discussion of its
advantages and shrotcomings /9-14, to quote but a few/. This
can be taken as a very healthy sign of life - PASCAL is one
of the very few languages which have fought their way to general
acceptance and wide use without the backing of a manufacture.
This claim is supported by the following list of computer
systems for which a PASCAL implementation is available
- Burroughs B5700 and B6700
- CDC 6000 and CDC 3600 and CDC 7600
- CII 10070
- HITAC 8700/8800
- IBM 360 and IBM 370
- ICL 1900
- DECSystem-10 (and DECSystem-20)
-3-
- PDP-11
- Philips P1400
- Systems Engineering Laboratories SEL 8600
- TI 980 A
- Telefunken TR 440
- UNIVAC 1100 under EXEC 8 and 1108
- Xerox Sigma 7
- Dietz MINCAL 621
Further information about PASCAL activities can be obtained
by writing to
PASCAL User's Group
c/o Andy Mickel
University Computer Center
227 Experimental Engineering Building
University of Minnesota
Minneapolis/Minnesota 55455
USA
PASCAL has not only been accepted as a practical programming
language. It has - in addition - exerted a profound influence
upon the design of programming languages. To give a few ex-
amples for this claim:
- Systems Implementation Languages /e.g. 15, 16/
- Data Base Language Extensions /e.g. 17, 18/
- Research into Program Proving /e.g. 19, 20, 21/
amoungst other things based upon the axiomatic definition
of PASCAL /22/
- Language Portability /e.g. 23, 24, 25/
- Programming languages to facilitate the formulation of par-
allel processes: CONCURRENT PASCAL /26/
Having indicated some of the more general implications of
PASCAL I would like to concentrate the remaining remarks on
the PASCAL implementation for the DECSystem-10 and the appli-
cation of this implementation.
-4-
The historical development of our implementation is given in
the following diagram
1972 }
}
} Bootstrap attempt with CDC-6400 PASCAL compiler
} (simulating a CDC-6400 on a PDP-10:
} 90 minutes for compilation)
}
}
}
1973 }
} Bootstrap of PASCAL-compiler for
} hypothetical stack machine by simulating
} this stack machine on the PDP-10: 10 minutes
}
}
1974 } Upgrading the compiler into a competitive
} tool for small program development
}
} Development of a version which generates
} relocatable object code compatible with
} LINK-10 and an interactive source level debugging
} option
}
}
1975 }
} Fully implement STANDARD PASCAL
}
}
}
1976 }
} Adapt to DECSystem-10 Concise Command Language
} Add large range of options (including most of
} the PASCAL-6000. ones) to provice a
} comfortable programming environment for
} large systems.
-5-
The first two steps up until November 1973 have been described
in /24/. The following upgrading step and the related ex-
periences are documented in /27/. The work done since autumn
1974 has been described in /28-32/.
Today, the DECSystem-10 PASCAL is used at our institute for
a wide variety of teaching and research purposes as indicated
by the following examples:
- Introductory programming courses for students in Informatik
since autumn 1973
- Transfer of the Montreal Portable Compiler Writing System
/33, 34/
- Natural Language Understanding
- Embedding of Relational Data Base Systems /18/
- Dialogue Language Research /35/
- Scene Analysis /36, 37/
A version of our PASCAL compiler distributed in July 1975 has
found widespread use as exemplified by a tabulation of instal-
lations:
Other Users of our PDP-10 PASCAL-system
_______________________________________
Universities Industry Total
& Colleges
Europe 11 4 15
USA + Canada 22 15 37
South America 2 2
Australia 1 1
__________________________________________
36 19 55
e.g. Brandeis e.g. BBN
Caltech E.I. Du Pont
Carnegie-Mellon Tektronix
Univ. of Pittsburgh
UC at Irvine
Univ. of Illinois
Cornell University
-6-
One should notice the remarkable number of non-university
installations as an indication that PASCAL has clearly out-
grown any categorization as an "academic" language. This
widespread acceptance has motivated further work on improving
our implementation /29/. This work has been completed in De-
cember 1976 including removal of errors brought to our atten-
tion and incorporating formal procedure/function parameters.
The latter has been implemented by H. Linde at our institute
based upon an addition by G. V. D. Kraats under the supervision
of Dr. C. Bron at Twente Technical Hoogeschool /38/. Our cur-
rent PASCAL compiler version may be characterized as follows:
Features of current PDP-10 PASCAL-system
________________________________________
- 1 pass compiler for superset of STANDARD PASCAL
High segment 28K - reentrant
Low segment 19K
compiles 62 lines per sec ( ~ 37 characters/line)
on KA-10
compiler and significant part of runtime support written in
PASCAL, rest of runtime support in well-commented MACRO-10.
- generates relocatable object code compatible with LINK-10
- access to FORTRAN-Library (SIN, COS, EXP, ...) built in
- Interactive source level debugging system
- Post Mortem Dump Facility
covering all declared varables
and the content of stack and heap
can be activated interactively, too
- Automatic Conversion of Scalar and SET-Variables for TEST-I/O!
- Optional runtime checks for
- value out of (sub)range
- array indices
- arithmetic overflow
- zero divide
-7-
- Can be activated via Concise Command Language
e.g. COMPILE LOAD EXECUTE
- Separate Compilation of Procedures
- Cross reference and Indentation Program
- PASCAL Manual for DECSystem-10 Implementation
According to a very recent agreement with DEC, this signifi-
cantly improved compiler version is being distributed by DECUS
starting January 1977.
It may be mentioned that PASCAL has been implemented as a
cross-compiler for Dietz MINCAL 621 minicomputers at our instal-
lation. Moreover, a two-pass cross-compiler for CONCURRENT
PASCAL /26/ incorporating an intermediate code step of very
general structure for easy adaptation to byte-oriented mini-
computers like Dietz MINCAL 621, DEC PDP-11, Interdata M85 has
been written in PASCAL /39/. This Concurrent PASCAL compiler
is being used already for prociding production programs in a
local minicomputer network for scene analysis.
-8-
/1/ N. Wirth, The Programming Language PASCAL,
Acta Informatica vol. 1, 35-63 (1971)
/2/ N. Wirth, The Programming Language PASCAL, (Revised Report),
Berichte der Fachgruppe Computerwissenschaften Nr. 5, ETH
Zurich, July 1973
/3/ N. Wirth, The Design of a PASCAL Compiler,
Software - Practice and Experience vol. 1, 309-333 (1971)
/4/ U. Ammann, The Method of Structured Programming Applied
to the Development of a Compiler,
International Computing Symposium 1973, A. Gunther et al.
(eds.), North Holland Publishing Co., Amsterdam 1974
/5/ U. Ammann, Die Entwicklung eines PASCAL Compilers nach
der Methode des Strukturierten Programmierens,
Dissertation ETH Zurich 5456, Juris Druck und Verlag,
Zurich 1975
/6/ K. Jensen and N. Wirth, PASCAL - User Manual and Report,
Lecture Notes in Computer Science vol. 18(1974) and Springer
Study Edition (1975), both Springer Verlag, Berlin-Heidelberg-
New York
/7/ O.J. Dahl and K. Nygaard, SIMULA - an ALGOL-Based Simula-
tion Language
Comm. ACM vol. 9, 671-678 (1966)
/8/ A. van Wijngaarden (ed.), B.J. Mailloux, J.E.L. Peck,
C.H.A. Koster, Report on the Algorithmic Language Algol 68,
Numerische Mathematik vol. 14, 79-218 (1969)
/9/ A.N. Habermann, Critical comments on the Programming Lan-
guage PASCAL,
Acta Informatica vol. 3, 47-57 (1973)
/10/ O. Lecarme and P. Desjardins, Reply to a Paper by
A.N. Habermann on the Programming Language PASCAL,
SIGPLAN Notices vol. 9, number 10, pp. 21-27 (1974)
/11/ O. Lecarme and P. Desjardins, More Comments on the Pro-
gramming Language PASCAL,
Acta Informatica vol. 4, 231-243 (1975)
/12/ R. Conradi, Further Critical Comments on PASCAL, Particular-
ly as a Systems Programming Language,
SIGPLAN Notices vol. 11, number 11, pp. 8-25 (Nov. 1976)
/13/ N. Wirth, On the Design of Programming Languages,
Information Processing 1974, J.L. Rosenfeld (ed.), pp. 386-
393, North-Holland Publ. Co., Amsterdam 1974
/14/ N. Wirth, An Assessment of the Programming Language PASCAL,
IEEE Trans. on Software Engineering vol. 1, 192-198 (1975)
-9-
/15/ B.L. Clark and F.J.B. Ham, The Project SUE, System Lan-
guage Reference Manual, Techn. Report CSRG-42,
Computer Systems Research Group, Univ. of Toronto, Canada, 1974
/16/ M. Rain et al., MARY - a Portable Machine Oriented Pro-
gramming Language,
MOL Bulletin No. 3, 1973, Computing Centre at the Univer-
sity, N-7034 Trondheim NTH Norway
/17/ J.M. Smith and D.C.P. Smith, Data Base Abstraction,
Proc. Conference on Data: Abstraction, Definition and
Structure, Salt Lake City/Utah, March 22-24, 1976;
appeared in SIGPLAN Notices vol. 11 (1976) (special issue)p.71
/18/ J.W. Schmidt, Extending PASCAL by a Data Structure Re-
lation: PASCAL as a Host Language for a Relational Data
Base,
Kurzvortrag aug der GI-Jahrestagung 29. Sept.- 1. Okt.
1976, Stuttgart
see also
J.W. Schmidt, Untersuchung einer Erweiterung von PASCAL
zu einer Datenbanksprache,
IfI-HH-M-28/76, Institut fuer Informatik der Universitaet
Hamburg, Marz 1976
/19/ Shigeru Igarashi, R.L. London and D.C. Luckham, Automatic
Program Verification I: A Logical Basis and its Implemen-
tation, STAN-CS-73-365
Stanford/Calif., May 1973
/20/ F.W. v. Henke and D.C. Luckham, Automatic Program Verifi-
cation III: A Methodology for Verifying Programs,
STAN-CS-74-474, Stanford/Calif., December 1974
/21/ E. Marmier, Automatic Verification of PASCAL Programs,
Dissertation ETH Zurich Nr. 5629 (1975)
/22/ C.A.R. Hoare and N. Wirth, An Axiomatic Definition of
the Programming Language PASCAL, Acta Informatica vol. 2,
335-355 (1973)
/23/ J. Welsh and C. Quinn, A PASCAL compiler for the ICL 1900
series computer,
Software - Practice and Experience, vol. 2, 73-77 (1972)
/24/ G. Friesland et al., A PASCAL Compiler Bootstrapped on
a DECSystem-10,
Lecture Notes in Computer Science vol. 7, 101-113, Springer
Verlag, Berlin-heidelberg-New York 1974
/25/ K.V. Nori et al., The PASCAL-(P)-Compiler Implementation Notes
Berichte der Fachgruppe Computerwissenschaften Nr. 10, ETH
Zurich, Dezember 1974
-10-
/26/ P. Brinch Hansen, The Programming Language CONNCURRENT PASCAL,
IEEE Trans. on Software Engineering vol. 1, 199-207 (1975)
/27/ C.-O. Grosse-Lindemann and H.-H. Nagel, Postlude to a
PASCAL-Compiler Bootstrap on a DECSystem-10,
Software - Practice and Experience vol. 6, 29-42 (1976)
/28/ Erweiterung von Sprachdefinition, Compiler und Laufzeit-
unterstutzung bei PASCAL-Erfahrungen und Ergebnisse eines
Praktikumsprojektes im Informatik-Grundstudium, studenti-
sche Beitrage, uberarbeitet und erganzt von H.-H. Nagel,
Mitteilung Nr. 16 des Instituts fur Informatik der Uni-
versitat Hamburg, Mai 1975
/29/ H.-H. Nagel, PASCAL for the DECSystem-10: Experiences
and further Plans,
Mitteilung Nr. 21 des Instituts fur Informatik der Univer
sitat Hamburg, November 1975
/30/ B. Nebel and B. Pretschner, Erweiterung des DECSystem-10
PASCAL-Compilers um eine Moglichkeit zur Erzeugung eines
Post-Mortem-Dump,
Mitteilung IfI-HH-M-34/76, Institut fur Informatik der
Universitat Hamburg, Juni 1976
/31/ P. Putfarken, Pruefhilfen fuer PASCAL-Programme, Diplom-
arbeit, Institut fur Informatik der Universitat Hamburg,
November 1976
/32/ E. Kisicki and H.-H. Nagel, PASCAL for the DECSystem-10,
Manual,
Mitteilung IfI-HH-M-37/76, Institut fur Informatik der
Universitat Hamburg, Dezember 1976
(This manual is available as a computer readable file)
/33/ O. Lecarme and G.V. Bockmann, A (truly) Usable and Port-
able Compiler Writing System,
Information Processing 1974, J.L. Rosenfeld (ed.),
North-Holland Publ. Co., Amsterdam 1974, pp. 218-221
/34/ M. Behrens and G. Friesland, Benutzungsanleitung fuer das
Compiler-Writing-System Montreal, angepasst an das DEC-
System-10,
IfI-HH-M-30/76, Institut fur Informatik der Universitat
Hamburg, April 1976
/35/ I. Kupka, H. Oberquelle and N. Wilsing, Projekt einer
Rahmendialogsprache - RDS,
IfI-HH-M-9/74, Institut fur Informatik der Universitat
Hamburg, Oktober 1974
/36/ H.-H. Nagel, Experiences with Yakimovsky's Algorithm
for Boundary and Object Detection in Real World Images,
Proc. 3rd International Joint conference on Pattern Re-
cognition, Coronado/Cal., November 8-11, 1976, pp. 753-758
-11-
/37/ H.-H. Nagel, Formation of an Object Concept by Analysis
of Systematic Time Variations in the Optically Percep-
tible Environment,
Computer Graphics and Image Processing (in press)
/38/ G.V.D. Kraats, Diploma Thesis, Dr. Bron (Supervisor),
Technische Hogeschool Twente, Enschede
/39/ B. Bruegge et al., Concurrent Pascal Compiler fuer Klein-
rechner,
Institut fur Informatik der Universitat Hamburg, Dezember
1976