Skip Navigation

Posts
3
Comments
29
Joined
1 yr. ago

  • Generating a working assembly code is not a big deal. People were doing it before LLMs see slightest light of the day using various other heuristics including Genetic Programming. The challenge is writing an Assembly code which you can prove works well and will continue to do so :)

    That's why Genetic Programming is very rarely used to directly generate a software.

    Edit: But you can use GP for Machine Learning tasks. Tell it to generate a program, like an assembly code which plays chess well. Or can do a binary classification given a photo or other media.

  • Rust indeed has good features I enjoy having them. But the joy I can have in Lisp, I cannot have in other traditional(or ordinary?) languages. I've developed an ML backend with Rust over 3 years to learn that for algorithm research and testing, Lisp ecosystem is much better than Rust. But I haven't done the research yet to see if there is a Lisp other than CL which is performant enough. Because CL is quite obscure and has self contradicting features, thus not mature.

  • I don't have to prove anything to anyone. Nor I've got the time for this. It's up to you to do your research. I have done mine and shared the results. You can take it or leave it.

  • You have a valid point. I think currently there are assists which we know an LLM definitely can do for us. Like mechanical tasks. And tasks which we know LLM can never do. In between there is a gray area. I think we will learn about the gray area over time.

    Also I would like automatic generation of programs. But I don't think an LLM is the last stop for it. I personally research in the field of Genetic Programming. I strongly believe in future we could have tools which generate or optimize programs when guided by a human. Currently we have Evolutionary Art and Music which do the same. Tho they are far from being actually usable, this is the same with every technology in the beginning.

    Also see this talk: https://cr.yp.to/talks/2015.04.16/slides-djb-20150416-a4.pdf

  • I didn't mean humans can solve ALL undecidable problems. As I have written in me reply to wicked, a programmer usually writes loops and the turing machine cannot decide their halting, for a vast majority of them.

  • Hey. The number of problems which can are decidable are infinite as are those which are not. But as soon as there is a backward jump in your code, a Turing machine most likely won't be able to decide if it'll halt or not. The while(true) is an exception. In the real world we have a great number of programs whose loops cannot be decided by a Turing machine. But the programmer who has written the code knows when the loop will terminate.

    If we see the machine code, if there is a conditional backward jump(unlike while(true) which is unconditional), in the general case it's undecidable.

  • I personally think both pro LLM and anti LLM are wrong. One group think they are gods. The other think they are demons. LLMs can be useful for programming to some extent. But they will create a disaster if you don't know what are you doing. I have recently published a post about the matter on me blog. I think the best part is:

    I strongly believe that LLMs are useful for programming to some extent. Imagine you have a shop and you get a robot to do the moves for you. So you instead focus on the main business concerns.

    So if you want to make some changes to the code which don't require intelligence, that is they are just mechanical tasks, LLMs are good. If you want the LLMs to understand semantics of your code, you have chosen the wrong tool. Maybe in future we'll have new AI software and tools which also understand semantics to some extent. But I highly doubt a transformer will be able to do it. They just predict the next likely token.

    There is something I haven't yet added to the post. So I am writing it here. Our computers are Universal Turing Machines. There are some fundamental limits to what a turing machine can't do. Those are called undecidable problems. For instance a turing machine can never check if two pieces of code are semantically equivalent[1]. But that's what human programmers can do. That's why I emphasize on tasks which require no intelligence.

    [1] That's about the general case. Sure there are exceptions. But as we say "exception is not the rule".

  • hmm perhaps there is something enterprises use? or What? I think there are some CPUs(AMD ones?) exclusive to the Chinese market. For instance see "Hygon C86 7380"

  • Me linux distro is not the best. "The best" varies from person to person and also in accord to different positions in time.