Hacker News new | ask | show | jobs
by dugmartin 1021 days ago
I think Borland’s Turbo Pascal was also a single pass compiler that emitted machine code as COM files.
2 comments

Surely it is a feature of all Pascal compilers that they are single pass. I thought that it was part of the specification of the language that it be possible to compile in a single pass.
It's disturbing to me that I remembered this, but the IBM Pascal Compiler for DOS (1981) had two passes. https://winworldpc.com/product/ibm-pascal-compiler/100
Not all, although the language was designed that way.

Some dialects and optimising compilers, had multiple passes.

There's a bunch of LLVM-based Pascal compilers these days. I doubt they are single pass, given how LLVM works. (And in general, any optimizing compiler is most likely doing multiple passes.)

You are right about Pascal's original design. Though I'm not sure if that's still true about modern versions of the language?

Not even old ones, if we taken optimising compilers like VMS Pascal into account.
Microsoft Pascal was a two-pass compiler. It was slower to compile than Turbo Pascal and that pissed off Bill Gates when he realized than Turbo was the most successful.
It makes development so much more fun when you see the results right away.

Pressing "build" in Turbo Pascal on my 386sx it was already done before you could even perceive any delay. Instant.

I think Turbo Pascal had the capability of generating code directly to memory without generating disk files.
It did that on floppy based systems too. The '87 equipped pcs in the physics building were much faster at 4500 line project, which I worked on for a year. So... First thing to test on a new 33Mhz 386 w/ wolf3d (install only, no source) my project loaded and 33mhz itt 387. Less than 2 seconds. If you brought everything into the ide,and hit run... It screamed.