Hasty Briefsbeta

双语

When functions dissolve (2020)

6 months ago
  • #functions
  • #optimization
  • #assembly
  • 高级语言中的函数抽象了程序逻辑,但编译为汇编后会丧失模块性
  • 系统设计中的模块性强度各异,从弱(共享地址空间)到强(独立进程)不等
  • 汇编中的子程序缺乏独立内存空间,相比高级语言函数其模块性更'软'
  • 尾调用优化消除了不必要的返回地址,提升了执行效率
  • 尾递归可被优化为循环结构,从而减少调用开销
  • 协程通过多入口点泛化了子程序概念,现见于Python、C#等现代语言
  • 汇编代码将函数混合成'指令汤',其重排序和优化会破坏原始结构