世界上是否有任何编译器为简单的函数式语言,如定义的,或可能只是方案,甚至是ML本身?也就是说,编译器将分析上述简单函数语言的代码,执行复杂的优化,如流融合并返回优化的代码?我需要这样做的原因是,我正试图将我的简单的玩具语言(几乎是lambda演算+数字和数组)编译成JavaScript,但由于天真的编译器完全没有优化,所以编译速度非常慢。函数没有被取消,像(map f (map g h))这样的东西没有融合到(map (f . g) h)中。实现<em
JavaScript将数字表示为IEEE754的双精度,这是确定性的。除此之外,我还看到一些编译器优化可以改变浮点操作的顺序,从而在不同的运行中带来不确定性的论点。因此,问题是:不使用其他非确定性来源(Math.random等),Number -> Number JavaScript函数是否总是独立于平台和引擎而产生相同的结果?