In a message dated 01-27-98, Hugh Gleaves said to All about Re: Pl/i On Nt
[snip]
HG>The original compiler that I produced for DOS was never completed.
HG>It did generate 80286 DOS object files, and they could be linked with
HG>several DOS linkers.
HG>However I did not implement any builtin functions, and a lot of other
HG>stuff too.
That's a bummer -- but not necessarily fatal.
HG>It did handle arrays and structures almost completely and static,
HG>automatic and paramater storage classes.
HG>PL/I is one of the most demanding languages to write a compiler for,
HG>because of its support for condition handling, controlled storage and
HG>several other features.
Yes, most of us here know that, which is why we wouldn't consider attempting
a PL/I compiler and library ourselves.
HG>With a 286/DOS environment one has to face a maximum stack frame size
HG>of 64K, and this can lead to cumbersome machine managment algorithms
HG>for the compiler.
Actually, you can fiddle the SS/SP/BP registers to chain stacks in 64K
chunks.
HG>Furthermore the poor stability of DOS makes it very time consuming to
HG>debug the compiler, a compiler is a large and very complex system, and
HG>one must deal with very complex bugs, DOS was far too difficult to
HG>work on.
HG>NT provides so much more power for the developer, for example the
HG>compler being developed cant damage NT, it cant overwrite code, it
HG>cant crash NT, it cant cause grief without NT trapping it and letting
HG>you see whats going on.
I am familiar with NT. I have it installed here and at work. However, the
"upgrade" of the servers at work to NT manifested itself as OS/2 Warp
Server. This is because I work at a bank and they needed something that
would work all day with customers watching. NT didn't quite cut the mustard.
HG>A compiler needs to built large and elaborate data structures in
HG>memory as it goes through its various phases, but DOS is far too
HG>limited for this.
DPMI relaxes the addressing constraints of DOS.
HG>Why the interest in DOS anyway ?
Lowest common denominator. Two of my machines at work still run MS-DOS 6.22
and will never be upgraded.
HG>Why not simply run the compiler in an NT console ?
I dislike NT. It crashes far too often. [Not as much as DOS, but still too
often for my liking.]
HG>What about an NT hosted compiler that generates 286/DOS object files ?
HG>I could probably get this going a lot more easily.
I would prefer a 16-bit (or 32-bit DPMI) compiler so that the compilation
process is portable too. A Win32 console app goes nowhere. I use DOS, OS/2
and NT, and would like to target all 3, which means a DOS program that
behaves well enough to run in a VDM session.
You might care to use the VDM support of NT to finish the development of the
DOS compiler. This will not only be more robust than real DOS, but will
ensure you produce cleaner object code both in the compiler and from the
compiler. Using a DPMI DOS extender will also makes things considerably
easier.
Since you appear to be lacking a run-time library, you will likely need to
do some assembler coding too.
In which language is the compiler written?
This newsgroup seems to be the ideal forum for discussing possibilities for
completing the compiler and run-time library. There are several of us here
who have been doing "techie" things in PL/I for decades, so you shouldn't be
short of workable ideas. I, and perhaps others, might even volunteer some
coding help.
Regards
Dave
<Team PL/I>
___
* MR/2 2.25 #353 * PL/I: Understatement is the purest form of eloquence.