
Hard-Coding Bottom-Up Code Generation Tables to Save Time and Space (1991) [pdf] - tjalfi
http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=8E1E2F91F95973FD5873D5ABEB80A536?doi=10.1.1.15.397&rep=rep1&type=pdf
======
reitzensteinm
It's amazing how much cool stuff there is in old papers.

I forget the details, but I once came up with a technique and was quite proud.

A few months later I stumbled across a paper written in 1986, the year of my
birth, that described everything I'd thought of and a few things I hadn't.

Someone had my idea before I was born, and thought through the implications
better than I did. Doesn't get much more humbling than that...

~~~
ryan-allen
You still came up with it independently, and that's something.

What is interesting is how someone in 1986 was thinking about the same problem
and came to a similar conclusion.

I used to think my ideas were unique, but then I realised that we're all
absorbing similar information, and the likelihood of an idea being 100% unique
is rare.

But if you thought it up and someone somewhere else had a similar idea, you
still thought it up on your own.

~~~
dspillett
_> you still thought it up on your own_

Back in the very early 2000s I had an idea for efficient backups that was
essentially rsync, while tinkering with the thought I hit a block and started
looking around for implementations of, or papers about, rolling checksums and
such, and found rsync.

I wasn't put out that my idea wasn't original - I was glad twofold because not
only had someone done it better already (so I could just use it for the task
as hand), but it at least confirmed that my thinking was very much on the
right track.

------
emmanueloga_
Describes an efficient way implementation of "Code generators based on bottom-
up rewrite systems (BURS) automatically generated from machine description
grammars". There's a short Wikipedia page for BURS [1]:

"BURS (bottom-up rewrite system) theory tackles the problem of taking a
complex expression tree or intermediate language term and finding a good
translation to machine code for a particular architecture. Implementations of
BURS often employ dynamic programming to solve this problem."

1: [https://en.wikipedia.org/wiki/BURS](https://en.wikipedia.org/wiki/BURS)

------
nsajko
For some reason Chromium 81 is not able to handle this PDF. Works fine on
MuPDF, though.

Could somebody in the know please say if this BURS stuff is used in, e.g., GCC
or Clang or LLVM? Or maybe something else that might be familiar?

~~~
namibj
I expected the typical kerning/typesetting issues.

I want to note that it straight-up crashes Chromium's PDF reader.

~~~
jfk13
Interesting... Chrome on macOS seems fine with it here.

------
i_don_t_know
Also highly recommended is „Engineering a simple, efficient code-generator
generator“ (1992) by Fraser, Hansen and Proebsting.

[https://dl.acm.org/doi/pdf/10.1145/151640.151642](https://dl.acm.org/doi/pdf/10.1145/151640.151642)

------
alexdowad
Looks fascinating. I wish that in the first section, they would have shown
which instructions (for a sample architecture) might have been generated for
each application of the tree rewrite rules. It looks like the reader was
expected to understand that as a prerequisite.

It seems the authors' interest was more on how using their code generation
tables could speed up the application of those tree rewrite rules.

~~~
emmanueloga_
It just blows my mind that an "Artifact Evaluation" process wasn't proposed
until so recently [1].

"A paper consists of a constellation of artifacts that extend beyond the
document itself: software, proofs, models, test suites, benchmarks, and so on.
In some cases, the quality of these artifacts is as important as that of the
document itself, yet our conferences offer no formal means to submit and
evaluate anything but the paper."

1: [https://www.artifact-eval.org/about.html](https://www.artifact-
eval.org/about.html)

