So I basically said "interpreters are useless" in this message, and I would like to set
the record straight.
 
There are actually two important uses, for interpreters in general and for Pascal-P in 
specific:
 
1. Error checking. Pascal-P5 does more checking of the ISO 7185 source code than any
other compiler in existence since the "Model implementation of Pascal" [Welsh&Hay].
It does checks that would be impractical in a full compiler, like check if you are making
changes to variant record tags when there is a VAR reference to same outstanding
(an almost impossible check to do in machine code). 
 
In fact, if my GPC compiled code crashes, I can often compile it using Pascal-P5 itself,
run it interpretively, and it will find the error, politely stop, and tell me what occurred and
what line it happened on, as opposed to crashing and burning.
 
2. Accurate debugging. This is more of a Pascal-P6 thing, but compilers and their
associated debuggers tend to do a much worse job of debugging, especially source
level, than interpreters. Optimization will rearrange the code so that it does not look
like the source, and usually you have to turn off optimization to get reasonable
results. Even beyond that, interpreters have a 1:1 relationship with both the generated
code and the data in memory, and you just get better and more accurate results
from debugging an interpreted version.
 
Scott Franco
 
--------- Original Message ---------
Subject: RE: Re: Plan to Update GPC
From: "scott andrew franco" <samiam@moorecad.com>
Date: 8/13/20 8:02 am
To: "Schneider, Thomas (NIH/NCI) [E]" <schneidt@mail.nih.gov>, "gpc@gnu.de" <gpc@gnu.de>

Well, you need a working ISO 7185 compiler. There are actually a couple of them. I'm not sure
the Prospero compiler is still available, I used to use it. IP pascal works, but even I don't use it
at the moment, and I wrote it. It needs updating. The GPC compiler works quite well, and
I use both the 32 bit version and the 64 bit version (windows and Linux), although (as noted in
the documentation) only a single release version that has shown stability for the ISO 7185
language.
 
For your second point, I assume you are talking about the Pascal-P1-P6 thing? (not sure
I understand your point about "name change breaks the code")
 
Yes, that one is a bit odd. Realize the compiler is 47 years old. It went through "versions" P1 though
P4 long before I got it. I suppose that Niklaus Wirth wanted to clearly differentiate the versions,
which were incompatible with each other. The name Pascal-P5 was picked a long time ago 1970s
or early 1980s in fact) as being the full and not subset version of Pascal-P, which never got
actually done until I did it, which brought it to ISO 7185 status. Pascal-P5 does, in fact, have
version numbers, I believe the last is 1.3. And yes, I perpetrated Pascal-P6, because it
extends ISO 7185, and thus is quite different again.
 
GPC used to work on Mac OS, and I used to release Pascal-P5 on Mac (its 10 years old now!).
At some point, I think well documented in this mailing list, it stopped working.
 
Is Pascal-P5 useful? That's a complex question. The purpose of Pascal-P5 was to be a model
compiler, that is, be a model of how to implement the ISO 7185 language and not necessarily
a stand-alone system in itself. It also has a large body of tests and is designed to replace
(and indeed surpass) the BSI test suite for ISO 7185 Pascal, which is no longer available
(and was paidware when it was).
 
Can Pascal-P be used on the Mac? Well, actually yes. Pascal-P6 includes sufficient tooling
to port without GPC (see the interpreter written in C). I don't really push that capability
because P6 is still in development, and also because interpreters are not really my thing
(yes, I know that sounds funny). I like compilers. To me interpreters are more of a fun
toy than not, although I note that there is a group pushing interpreters as "VM"s for professional
use. Pascal-P5 has actually been written up as such. Again, not bad, just not my thing.
 
I should mention there is a branch from P5 known as P5c that that changed the compiler
into a Pascal to C translator that accomplishes porting in a different way. You would have
to look into that yourself, I'm not really up to speed on that.
 
 
Regards,
 
Scott Franco
 
--------- Original Message ---------
Subject: Re: Plan to Update GPC
From: "Schneider, Thomas (NIH/NCI) [E]" <schneidt@mail.nih.gov>
Date: 8/13/20 6:43 am
To: "gpc@gnu.de" <gpc@gnu.de>

> Hmm, is this your work https://sourceforge.net/p/pascalp5/ ?

What is this? I looked into the README and it says:

"You need a working gpc implementation."

I'm looking for a replacement for GPC on macOS since GPC no longer
works there. How would pascalp5 be useful for anything if it depends
on GPC which doesn't work on macOS?

Also, why is the name of the program changing instead of a version number?
This will break code everytime you change the name!

Tom

Thomas D. Schneider, Ph.D.
Senior Investigator
National Institutes of Health
National Cancer Institute
Center for Cancer Research
RNA Biology Laboratory
Biological Information Theory Group
Frederick, Maryland 21702-1201
schneidt@mail.nih.gov
https://alum.mit.edu/www/toms

_______________________________________________
Gpc mailing list
Gpc@gnu.de
https://www.g-n-u.de/mailman/listinfo/gpc
_______________________________________________ Gpc mailing list Gpc@gnu.de https://www.g-n-u.de/mailman/listinfo/gpc