slop

名詞

  1. 一方向だけのfudge factor。つまり誤差の余裕だが、二方向のうち片方だけに取るもの。たとえば、10フィートの長さのワイヤが必要で、目分量で切らなければならないなら、少しでも短くしてしまうよりは、必要なら大幅にでも、確実に長めになるように切るだろう。slop(余り)はいつでも切り落とせるが、貼り戻すことはできないからだ。離散量が関わる場合、fencepost errorで損をする側に回る可能性を避けるために、しばしばslopが導入される。

  2. hand-hackingによって生成される等価なアセンブラコードの大きさに対して、コンパイラが生成する‘余分な’コードの割合。つまり、自分でやらなかったために失う空間(あるいは時間かもしれない)。この数値はしばしばコンパイラの良し悪しの尺度として使われる。5パーセント未満のslopは非常に良く、10パーセントなら通常は許容できる。現代のコンパイラ技術では、とくにRISCマシンで、コンパイラのslopは実際にになることもある。つまり、人間が同程度に良いコードを生成できないことがある。これは、アセンブラプログラミングがもはや一般的でない理由のひとつだ。