我想问一下它是否有意义,如果有,是否有任何尝试?设计优化编译器时是否考虑过遗传算法?
澄清的问题:
当编译器制造商的优化工作,他们试图使编译器根据目标架构右吐最好的装配顺序?因此,从这个意义上说,他们必须想象在X情况下最好的指令是什么。因此,我想象在设计过程中,他们通过直觉使用他们的装配知识,以及一些试验/错误过程和典型案例的基准测试(代码片段),它们针对优化器。
但是,如果汇编代码的编译器输出选择可以通过遗传算法来决定,那么遗传算法只会用两个标准来尝试一切:“尊重客户意图不变”和“执行测试中速度越快越好”。
使用这个,似乎有可能通过向元优化器提供数千个代码片段来优化,学习优化它们的最佳方法,然后最终优化器作业来准备优化器(例如“最终的优化器编译器“)将检测哪个片段与要解析的客户端代码相似并应用翻译。
我希望我很清楚。我并不是建议编译器在客户端代码编译期间使用GO,而是编写一个嵌入GO(在编译器制造商的实验室中运行)中找到的静态结果的编译器。
遗传算法链接到一个PDF似乎最适合的问题本质上是模拟的。很难想象,将一个指令(序列)的一半与另一个指令(序列)结合起来,从而获得可行的结果 - 更不用说更好的解决方案了。 –