Compiling C to printable x86, to make an executable research paper

suckerpinch8 HN recommenders · 2018–2023
479K views · talk · evergreen · Uploaded 2017-03-31

Tom7 explains how he built a SIGBOVIK 2017 paper made only of printable ASCII bytes that is also a valid DOS executable. He writes a C compiler targeting printable x86 without self-modifying code and solves the puzzles the constraint creates.

HN fans call it a favorite engineering video and a showcase of Tom7's masterpiece-level, playful hacking.

Watch on YouTube

11 comments from Hacker News

@floatboth2018 · in “Ask HN: What’s your favorite talk from 2017?”

On The Turing Completeness of PowerPoint [LINK] Compiling C to printable x86, to make an executable research paper [VIDEO] HDR Photography in Microsoft Excel?! [LINK] Zebras All the Way Down [LINK] Solving Layout Problems with CSS Grid and Friends [LINK] Console Security - Switch [LINK] Let's move SMM out of firmware and into the kernel [LINK] Bringing Linux back to server boot ROMs with NERF and Heads [LINK] Sharing the Chisel [LINK] (looks like the actual conference video wasn't released)

@pronoiac2019 · in “Survival in chessland [pdf]”

He's a mad genius! I like his compiler that generates executables made up only of printable characters: [VIDEO] / [LINK] He's super playful and awesomely smart!

Strongly recommendsView on HN
@badrequest2019 · in “NaN Gates and Flip FLOPS”

Every one of this guy's SIGBOVIK papers/videos are pure gold. His video about the printable x86[1] is my favorite engineering video of all time. ^1: [VIDEO]

Strongly recommendsView on HN
@anitil2021 · in “Lipogram”

tom7 made a while video explaining how to create an executable only with printable characters [0]. He even write a compiler called 'ABC' for it. [0] [VIDEO]

RecommendsView on HN
@SAI_Peregrinus2021 · in “Undocumented x86 instructions to control the CPU at the microarchitecture level [pdf]”

That last one (Tom 7's executable x86 paper) is incomplete without the video where he demonstrates running the paper (or running the paper yourself). [VIDEO]

RecommendsView on HN
@asalahli2023 · in “ABC: A C compiler for printable x86”

In the accompanying video[0] at 7:36 mark, he goes to great lengths to express (A or B) as (A and B) + (A xor B). Can anybody explain why it can't simply be expressed as (A and B) xor (A xor B)? What am I missing here? 0. [VIDEO]

@x86x872023 · in “Ask HN: What are some of the most interesting YouTube channels to follow?”

A mix of various things. Google to get to the channel: pbs spacetime stuff made here ben eater's 8 bit computer mike boyd nerdforge sabine hossenfelder gotham chess uthermal 3blue1brown veritasium Numberphile Suckerpinch (all time favourite: [VIDEO] ) Stevey's tech talk leonard susskind's stanford lectures

RecommendsView on HN
@colejohnson662023 · in “Undocumented 8086 instructions, explained by the microcode”

Tom Murphy VII (tom7) did such a thing. It's a partial C89 compiler that outputs only printable characters. In meta fashion, the compiler is compiled by itself to also contain only printable characters. The TXT and EXE files below are exactly the same. Video: [VIDEO] Paper (PDF): [LINK] Paper (TXT): [LINK] Compiler (EXE): [LINK]

@nick-of-time2023 · in “GradIEEEnt half decent: The hidden power of imprecise lines [video]”

Mine are "Harder Drives"[1], "ELO World"[2], and "Printable x86"[3] [1] [LINK] [2] [LINK] [3] [VIDEO]

RecommendsView on HN
@nextaccountic2023 · in “C89 compiler produces printable executables from C code [pdf]”

The author is an absolute legend. Absolutely every video on his Youtube channel is a masterpiece [LINK] And this includes the video that explains this code (Compiling C to printable x86, to make an executable research paper) [VIDEO]

Strongly recommendsView on HN
@omgmajk2023 · in “The GlEnd() of Zelda: Automatic 3Dification of NES Games (2016)”

Love Tom7, his video "Compiling C to printable x86, to make an executable research paper" [0] is my favorite but most of his stuff is super interesting. [0] [VIDEO]

Strongly recommendsView on HN