logoalt Hacker News

strbeantoday at 5:40 PM2 repliesview on HN

A lot of really good reasons:

1) Higher level code is easier for LLMs to review and iterate upon. The more the intent is clear from the code, the easier it is for humans and LLMs to work with.

2) LLMs get stuck or fail to solve a problem sometimes. It is preferable to have artifacts that humans can grok without the massive extra effort of parsing out assembly code.

3) Assembly code varies massively across targets. We want provable, deterministic transformation from the intent (specified in a higher level language) to the target assembly language. LLMs can't reliably output many artifacts for different platforms that behave the same.

4) Hopefully, we are still reviewing the code output by LLMs to some extent.


Replies

_fluxtoday at 6:43 PM

In addition LLMs also make bugs, and debugging assembler is more difficult, wasting more tokens, thus more money.

A very big practical reason is also that assembler code would eat context like no other.

jcgrillotoday at 5:54 PM

I'd add to that

1.5) Having a compiler in the loop that does things like enforcing type constraints (and in the case if Rust in particular, therefore memory safety guarantees) is really useful both for humans and LLMs.