Profile picture
Tim McLean @McLean0
, 4 tweets, 1 min read Read on Twitter
Programming is great because your mental model is a directed acyclic graph of data flow, but you write code that is sequential and linear, which the compiler converts into a DAG so it can write efficient sequential machine code, which the CPU converts into a DAG it can execute
OK this tweet kind of took off.

So, joking aside, a natural question to ask is whether this switching back and forth is a waste of everybody's time

The compiler DAG -> CPU DAG step makes a lot more sense if you view machine code as simply a graph serialization format.
Registers are temporary labels that we assign to outputs from graph nodes.

"Instruction scheduling" is the process of deciding what piece of the graph to write next, so that the CPU deserializes the right piece at the right time.
Higher up the stack: the programmer head => code-in-editor gap

Programming languages are UIs for compilers. It strikes me that humanity may be capable of compiler UX better than "edit a bunch of text files, and get your punctuation right, damn it". That remains to be seen though
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Tim McLean
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member and get exclusive features!

Premium member ($3.00/month or $30.00/year)

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!