←back to thread

108 points bertman | 2 comments | | HN request time: 0s | source
Show context
philipswood ◴[] No.43820279[source]
The paper he quotes is a favorite of mine and I think is has strong implications for the use of LLMs, but I don't think that this implies that LLMs can't form theories or write code effectively.

I suspect that the question to his final answer is:

> To replace human programmers, LLMs would need to be able to build theories by Ryle’s definition

replies(1): >>43820615 #
skydhash ◴[] No.43820615[source]
Having a theory of the program, means you can argue about its current state or its transition in a new state, not merely describing what it is doing.

If you see "a = b + 1" it's obvious that the variable a is taking the value of variable b incremented by one. What LLMs can't do is explaining why we have this and why it needs to change to "a = b - 1" in the new iteration. Writing code is orthogonal to this capability.

replies(1): >>43821676 #
1. philipswood ◴[] No.43821676[source]
> What LLMs can't do is explaining why we have this and why it needs to change to "a = b - 1" in the new iteration.

I did a search on Github for code containing `a=b+1` and found this:

https://github.com/haoxizhong/problem/blob/a2b934ee7bb33bbe9...

It looks to me that ChatGPT specifically does a more than OK job at explaining why we have this.

https://chatgpt.com/share/680f877d-b588-8003-bed5-b425e14a53...

While your use of 'theory' is reasonable Naur uses a specific and more elaborate definition of theory.

Example from the paper:

>Case 1 concerns a compiler. It has been developed by a group A for a Language L and worked very well on computer X. Now another group B has the task to write a compiler for a language L + M, a modest extension of L, for computer Y. Group B decides that the compiler for L developed by group A will be a good starting point for their design, and get a contract with group A that they will get support in the form of full documentation, including annotated program texts and much additional written design discussion, and also personal advice. The arrangement was effective and group B managed to develop the compiler they wanted. In the present context the significant issue is the importance of the personal advice from group A in the matters that concerned how to implement the extensions M to the language. During the design phase group B made suggestions for the manner in which the extensions should be accommodated and submitted them to group A for review. In several major cases it turned out that the solutions suggested by group B were found by group A to make no use of the facilities that were not only inherent in the structure of the existing compiler but were discussed at length in its documentation, and to be based instead on additions to that structure in the form of patches that effectively destroyed its power and simplicity. The members of group A were able to spot these cases instantly and could propose simple and effective solutions, framed entirely within the existing structure. This is an example of how the full program text and additional documentation is insufficient in conveying to even the highly motivated group B the deeper insight into the design, that theory which is immediately present to the members of group A.

replies(1): >>43823483 #
2. woah ◴[] No.43823483[source]
This is like when I was making Wordpress sites in 2010 and I would hook it up with all the awesome admin panel plugins that I could find to provide the client the ability to customize any part of the site with one click and they still called me any time they needed to switch an image in the slideshow or publish a blog post