7 comments

[ 3.4 ms ] story [ 9.2 ms ] thread
The authors of these slides also wrote a well-regarded textbook, Engineering a Compiler.
This is a good slide presentation, about three compiler papers. from 1980-1982. Date of the presentation is 2015 which should be in the thread title.
I wonder how they tested these compilers.
On PL.8 case by creating an OS for RISC research at IBM, before they decided to reboot the effort as Aix, by joining the newly UNIX workstation market.

https://dl.acm.org/doi/10.1145/800230.806977

https://news.ycombinator.com/item?id=32902737

"Our basic procedure is to compile and execute a test bucket of 150 self checking programs every night. The test run produces code which is executed on all computers and at various levels of optimization. [...] In addition, the PL.8 effort has lead to a powerful compiler testing strategy. The PL.8 compiler is written in PL.8 and compiles itself. Periodically a "fixed point" is compiled. The current source is completely reeompiled using a compiler whose operation is believed to correspond to that source. The object and listing output of this compilation is saved and also used to build a new compiler. This new compiler is then used to compile the same source again. A bit for bit comparison of the object and listing files from both compiles is then made (ignoring dates, times, and other system noise)."

That seems like a really small test suite for a compiler. I guess it was just much smaller than today's compilers.

(comment deleted)
I recently wrote a toy barebones compiler for amd64 x86_64 It cannot compile anything significant besides addition and multiplication expressions yet but I think the code is educational.

My dream is to write a JIT compiler that is similar to HolyC. I want it to be expressive and powerful and parallel and concurrent.

I do live range analysis and simple register allocation.

https://GitHub.com/samsquire/compiler