Hacker News new | ask | show | jobs
by cjensen 785 days ago
Turbo Pascal was so fast in the 80s that if I saw a syntax error further down the page it was faster to hit "compile" and let the compiler move the cursor to the error than it was for me to move the cursor myself.

It was a very special compiler and they don't make them like that anymore.

4 comments

The trick is to have language "optimized for compilation" and do not do fancy optimizations.

Java is similar (but overall infrastructure around compiler makes it slow).

Golang also quite fast.

I think LLVM missed the boat, on this, by being an early mover. A lot of the optimizations are resource-only analyses; the few that re not are "just" various levels of interpretation. That kind of implies we need a framework to define resource utilization and evaluation at the instruction/machine-code level with a standard API. Having an optimizer for an abstract IR is less useful.

The point being that compilers would then target emitting reasonable machine code at speed, and The Real LLVM would do analysis/transform on the machine code.

The tricks in the 80s were different than today's tricks.

(1) Single-pass compiler. No separate pass to convert to object or executable.

(2) Written in assembler (!). Helps that Pascal has fewer dark corners.

(3) No use of disk. A single file read or write would take 10-20s on a floppy. Instead, it's memory to memory.

It’s crazy that this is still the gold standard
We got outsteped by C and C++ industry adoption, followed by doing everything in interpreted languages.

Finally 30 years later, the pendulum is turning around.

And V 3.01 was under 40 KB (not a typo), and included a basic WordStar editor clone for program editing!
They still do. Lua is likewise extremely fast, and comes without bullshit mostly,