A survey of ahead-of-time technologies in dynamic language environments