尝试追赶JIT编译器:优化内联缓存的错误方向

2025-03-13
尝试追赶JIT编译器:优化内联缓存的错误方向

这篇论文研究了通过添加动态二进制修改(DBM)到静态编译器(AoT)中来提高其性能的可能性。研究人员在Hopc AoT JavaScript编译器中添加了一种基于DBM的内联缓存(IC)优化,但实验结果表明,这种优化并没有缩短执行时间。研究发现,减少内存访问次数在现代架构上并不一定能提高速度,这挑战了以往的优化策略,并指出复杂的编译器优化只有在处理器无法自行加速代码时才值得付出努力。这一发现适用于AoT编译器和JIT编译器。

阅读更多

类型类一致性研究:Swift、Rust、Scala与Haskell的比较

2025-03-12
类型类一致性研究:Swift、Rust、Scala与Haskell的比较

类型类是实现泛型算法和数据结构的流行工具,在Haskell之后,Swift、Rust和Scala等语言也广泛采用。然而,隐式编程带来的类型推断歧义可能会破坏一致性(程序只有一个含义)。学术界对此存在分歧:一方支持上下文相关的灵活推断;另一方则主张全局唯一实例以避免歧义。本文比较了这四种语言处理类型类一致性的方法,发现尽管语法不同,但它们在规避实例唯一性限制方面策略惊人地相似。

阅读更多