logoalt Hacker News

cesarbyesterday at 7:18 PM2 repliesview on HN

> Software as a list of requirements and that's it. [...] a document specifying hardware, interfaces, and requirements [...]

For that, you'd want the list of requirements and hardware documentation to be written in a precise, formal language. That's no different than writing them in a programming language (though a declarative one, instead of the more common imperative ones).

I've in the past (way before LLMs existed) thought about automatically generating device drivers from hardware documentation. But besides the need for very precise documentation, hardware never works exactly as documented; a human-written device driver can avoid problematic areas (perhaps even by accident), while a computer-written device driver would end up exploiting every corner case of the documentation.


Replies

dan_qyesterday at 7:26 PM

> For that, you'd want the list of requirements and hardware documentation to be written in a precise, formal language. That's no different than writing them in a programming language (though a declarative one, instead of the more common imperative ones).

From my perspective, this is a damning conclusion to the argument.

That being said, I can hear him asking Claude to generate a rebuttal as we speak.

colechristensenyesterday at 8:44 PM

Requirements ARE written in a precise, formal language. These days most people don't actually have any contact at all with real requirements though as practiced by professionals.

There is quite a bit of distance between the exactness of any human language and an sort of programming languages. When you have a language model loaded with software engineering best practices you do not need the exactness of a programming language to describe desired behavior.

Hardware documentation is indeed often lacking in plenty of ways but in a world where writing your own software through agents is commonplace, the hardware manufacturers (or the community) would make testing that documentation to find the problems an important part of hardware development.