HP3000-L Archives

August 1999, Week 4

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Lane Rollins <[log in to unmask]>
Reply To:
Lane Rollins <[log in to unmask]>
Date:
Thu, 26 Aug 1999 08:24:12 -0700
Content-Type:
text/plain
Parts/Attachments:
text/plain (64 lines)
> Something I didn't mention in my previous posting regarding the failure of
> Pascal's P-code model to capture to heart of the problem that it was intended
> to solve -- absolute portability ("write once, run anywhere") -- is that
> Java's Virtual Machine bytecode is the direct philosophical descendent of
> Pascal. Indeed, everything about JVM bytecode was designed around the
> original UCSD Pascal P-code intermediate code generation process, including
> later just-in-time compilation.

The P-Code was not part of the original Pascal model, it was purely part of
the UCSD implementation of the language. I went down in the basement and
found my copy of the "Pascal User Manual and Report, 2nd Edition" circa
1975. No mention of P-Code what so ever, the computer they talk about the
most and the one the reference is based is a CDC 6000 series. You want to
talk about a weird computer..... In the Preface, Jensen & Wirth write -

"The Report is included in the booklet to serve as a concise, ultimate
reference for both programmers and implementors. It defines Standard PASCAL
which constitutes a common base between various implementations of the
language."

later when talking about Pascal for the CDC 6000 -

"The reader is warned that reliance upon any of the characteristics peculiar
to PASCAL 6000-3.4 may render his program unacceptable to other
implementations of PASCAL. One is, therefore, advised to use only features
described as Standard Pascal in the previous chapters whenever possible, and
certainly when writing 'portable' programs."

Why is any of this important? They where telling you to stick to the base
language if you want it to be 'portable'. If you look at the language after
25 years it's missing a lot, at the time it was a big step forward from
ALGOL. The language also has a rather narrow focus and it was really meant
to run in a batch environment, it was also meant to be a teaching tool. Many
of theses things lead to the languages demise, along with the language not
evolving over time. Some of the problems were solved in Wirth's next major
language Modula-2, but how many Modula-2 compilers have you seen.

Look at BASIC... Today BASIC doesn't look anything like the first one I used
on a HP2000 system, or even Microsoft's paper tape basic on an Altair. It
has evolved to take advantage of some of the things the we have learned over
the years.

From what I've read it looks like JAVA is really an evolutionary language,
more then a revolutionary language. It's taken the best, and probably some
of the worst, from other languages. It's heart came from C. Then object
oriented concepts added, diverging from C++ and objective-C. It also took
the portability concept from UCSD Pascal.

> Pascal failed, however, in this original mission because Pascal was
> eventually made into JAPL (just another programming language) through the
> elimination of its P-code generator.

Maybe UCSD Pascal failed, but I don't think PASCAL failed. I think the
language succeeded with it's goal at the time, but times change. Wirth wrote

"The development of the Language Pascal is based on two principal aims. The
first is two make available a language suitable to teach programming as a
systematic discipline based on certeain fundamental concepts clearly and
naturally reflected by the language. The second is to develop
implementations of this language which are both reliable and efficient on
presently available computers."

-Lane

ATOM RSS1 RSS2