大约一年来,我一直在考虑编写一个编写程序的程序。这主要是一个有趣的练习,可能会教给我一些新概念。我的灵感来自负熵,以及从混乱中出现秩序的能力,以及从无序中无限连续出现新混乱的能力。
更具体地说,该程序将从编写一个简短的随机字符串开始。如果字符串编译,程序将记录它以供以后比较。如果字符串没有编译,程序将尝试重写它,直到它编译为止。随着越来越多的字符串(迷你“无用”程序)被记录下来,它们可以被解析为相似之处并用于生成语法。然后可以利用该语法来编写比纯随机字符串具有更高编译概率的更多字符串。
这显然有点傻,但我认为尝试开发这样的程序会很有趣。作为副产品,我得到了一堆独特的程序,我可以将它们可视化并称之为艺术。
由于其简单的语法和动态编译,我可能会用 Ruby 编写它,然后我将使用 ruby-processing 在处理中进行可视化。
我想知道的是:
- 这种类型的编程有名称吗?
- 该领域目前存在什么?
- 谁是主要贡献者?
- 奖金!- 除了编译(y/n)之外,我可以通过哪些方式为输出程序分配值?
我可能想扩展该程序的功能以生成基于参数的程序,但我希望程序通过运行编译程序并为程序输出分配含义来定义这些参数。这个问题可能比合理的奖金更复杂,但如果你能想出一种简单的方法来在不到 23 行或一个超链接内完成这样的事情,请将它扔进你的回复中。
我知道这不是元编程,而且根据我对人工智能和生成算法的了解,它们通常比我想象的更面向目标。最佳方案是不断重写和自我改进的程序,所以我不必^_^