six thoughts on generating c — wingolog

wingolog: article: six thoughts on generating c

@screwlisp @kentpitman regarding the discussion we had after the #LispyGopherClimate show ended, MiniKanren is logic programming language embedded in Scheme (sort-of like a Prolog implemented in Scheme and coded with S-expressions), and you can use machine leaning methods like neural networks to guide the search tree of the goal solver mechanism. This paper is an example of what I was talking about.

Even before LLMs were invented, MiniKanren was able to do program synthesis using purely symbolic logic. They developed a prototype called Barliman where you would provide example input->output pairs as constraints, and using a constraint solver, could generalize those examples to a function that generates any output for any input. As a simple example, you could give it the following input-output pairs:

  • () -> ()
  • (a) () -> (a)
  • () (a) -> (a)
  • (a) (a) -> (a a)
  • …and the constraint solver could determine that you are trying to implement the append function for lists and write the code automatically — without LLMs, using purely symbolic logic.

    As you might expect, the solver could be very slow, or even diverge (never returning an answer). The paper I mentioned above talks about using neural networks to try to guide the constraint solver to improve the performance and usefulness of the results returned by the solver.

    Now imagine applying this technique to other domains besides code generation or optimization, for example, auto-completion, or cache pre-fetching, and building it into a programmable computing environment like Emacs. You could have a tool like “Cursor,” but instead of using LLMs, it uses classical computing and constraint solvers, while taking a fraction of the amount of energy that LLMs use.

    #tech #software #AI #LLM #MachineLearning #NeuralNetwork #ConstraintLogic #ConstraintSolver #LogicProgramming #Prolog #MiniKanren #Emacs #Lisp #Scheme #SchemeLang #ProgramSynthesis

    Master thesis by Alexandru Dumitriu: "LLM-Driven Synthesis of Concurrent Data Structures with SMR under Weak Memory"

    "This thesis introduces a synthesis-verification pipeline that iteratively generates concurrent data structures from partial code specifications [..] We evaluate our approach using established concurrent data structure benchmarks, demonstrating rapid convergence to correct implementations"

    https://repository.tudelft.nl/record/uuid:5a857798-276f-4545-af2d-8a381e84df9a

    #ProgramSynthesis #SMR #WeakMemory #master #thesis

    LLM-Driven Synthesis of Concurrent Data Structures with SMR under Weak Memory | TU Delft Repository

    New book review!

    “Computational evolution of neural and morphological development”, Yaochu Jin, reviewed by Renske Vroomans.

    https://link.springer.com/article/10.1007/s10710-024-09499-x

    No paywall.

    #geneticprogramming #programsynthesis #alife

    Review: “Computational evolution of neural and morphological development”, Yaochu Jin, ISBN 978-981-99-1853-9, Springer, 2023 - Genetic Programming and Evolvable Machines

    SpringerLink

    New issue just announced, including several items with open access:

    https://link.springer.com/journal/10710/volumes-and-issues/25-2

    #geneticprogramming
    #programsynthesis

    Genetic Programming and Evolvable Machines | Volume 25, issue 2

    Volume 25, issue 2 articles listing for Genetic Programming and Evolvable Machines

    SpringerLink
    A Comparison of Large Language Models and Genetic Programming for Program Synthesis https://ieeexplore.ieee.org/document/10551744 #LLMs #geneticprogramming #programsynthesis
    (actually i’m really curious what #programsynthesis people’s favorite venues to publish at are — i feel like i see papers on it across all the PL confs, but idk which ones are most receptive to work that isn’t really doing “PL” innovation, rather improving synthesis methods or demonstrating & extending their use for novel applications)

    not that the world really needs more computer science conferences, but i keep wondering if there’s appetite for one focused on procedural generation/generative computation, i.e. the union of PCG, generative art, program synthesis, &c.

    mostly, it would really help to have a name for this field that people don’t mistake for consisting entirely of text2image statistical models

    #generativeArt #genartclub #generativeAI #procgen #proceduralcontentgeneration #programsynthesis #logicprogramming

    RT @[email protected]

    Introducing AutumnSynth, a step toward automating scientific discovery through program synthesis.

    AutumnSynth synthesizes the source code of a video game from seconds of play.

    paper: https://basis.ai/publications/autumn_popl23.pdf

    Blog: https://basis.ai/blog/autumn/

    Why do this? How does it work?
    🦃🧵 https://twitter.com/ZennaTavares/status/1620855534483296256

    #cogsci @cogsci #compcogsci #programinduction #programsynthesis

    #ChatGPT, #Codex, and similar models can do program synthesis. I think we in the #GeneticProgramming community aren't quite admitting this to ourselves! If a GP system could do one-tenth of the #ProgramSynthesis ChatGPT can do, it would win a best paper award at #GECCO, #EuroGP, or #GPTP. Should we just give up?