My first fifteen compilers (2019)

(blog.sigplan.org)

72 points | by azhenley 11 days ago ago

9 comments

  • gnabgib 11 days ago ago

    (2017)

    At the time (387 points, 76 comments) https://news.ycombinator.com/item?id=15153956 https://archive.is/gUVNw

    2019 edit (388 points, 78 comments) https://news.ycombinator.com/item?id=20408011

  • lacoolj 3 days ago ago

    Every browser can smooth scroll, please stop doing this in JS, manually.

    I turn mine off, then you force it on me, and CTRL+F4 is an immediate reflex.

    • throwaway150 3 days ago ago

      You should report it to sigplan.org. Complaining about it here won't make any difference.

      There's also https://news.ycombinator.com/newsguidelines.html -

      > Please don't complain about tangential annoyances—e.g. article or website formats, name collisions, or back-button breakage. They're too common to be interesting.

    • 1718627440 2 days ago ago

      > CTRL+F4

      What does this do on your computer? On mine it changes the workspace, which makes not much sense in context.

      • lacoolj 9 hours ago ago

        Closes browser tab

        • 1718627440 8 hours ago ago

          Which browser is that? Does it support C-W ?

  • emoII 3 days ago ago

    I don’t understand how to work with the intermediate language in such a back-to-front approach, wouldn’t you need to know in advance what pass to implement next so that the input to the current pass matches the output of your next, unimplemented, pass? To me, it seems like the contract is reversed

    • Hasnep 2 days ago ago

      No, because the intermediate language of the previous step is just the target of the next step, and the target can be anything

      E.g. when JavaScript was designed, they didn't need to know that typescript would be invented to know how JavaScript would look.

    • UncleEntity 2 days ago ago

      It sounds to me that Pass 1 is basically an assembly-to-assembly compiler which becomes the target of all the other passes and optimizations.