Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

>> I take it you're not using a compiler to generate machine code, then?

The dismissive glibness of your comment makes me wonder if it's worth it trying to point out the obvious error in the analogy you're making. Compilers translate, LLMs generate. They are two completely different things.

When you write a program in a high-level language and pass it to a compiler, the compiler translates your program to machine code, yes. But when you prompt an LLM to generate code, what are you translating? You can pretend that you are "translating natural language to code" but LLMs are not translators, they're generators, and what you're really doing is providing a prefix for the generated string. You can generate strings form an LLM with an empty prefix; but try asking a compiler to compile an empty program.

>> Even the Apollo spacecraft programmers at MIT had a black box: they offloaded the weaving of core rope memory to other people.

You're referring to core rope memory:

https://en.wikipedia.org/wiki/Core_rope_memory

There is no "black box" here. Programmers created the program and handed it over to others to code it up. That's like hiring someone to type your code for you at a keyboard, following your instructions to do so. You have to stretch things very far to see this as anything like compilation.

Also, really, compilers are not black boxes. Just because most people treat them as a scary unknowable thing doesn't mean that's what they are. LLms are "black boxes" because no matter how much we peer at their weights, arrays of numerical values, there's nothing we can ... er ... glean from them. They're incomprehensible to humans. Not so the code of a compiler. Even raw binary is comprehensible, with some experience.



I recently had used an LLM to convert a lot of Python to Rust. It got it 99% right, and it took me a short while to fix the compile-time errors, and carefully check the tests weren't broken (as I trusted the code worked when the tests passed).

Is that "compiling" or "translating"? Lots of people use language to C "compilers".


Compilation is generally deterministic with strict semantics.

LLMs are great, but they are the opposite of a compiler (in a good way)


Translating Python to Rust is translation, prompting an LLM for new Python or Rust code is generation.


Both of them are black boxes though by the author's own definition.


Which definition do you mean?


Exactly




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: