别名分析(alias analysis),理学-计算机科学技术-计算机软件-系统软件-编译系统,别名分析(alias analysis)是一种获取程序中别名关系的静态程序分析技术。别名如果p、q两个对象代表同一可变存储位置,则p和q互为别名(alias)。程序中产生别名的情况有很多,例如数组索引、C语言的联合、Fortran语言的等价语句等等。指针、地址操作是引发别名的重要原因。如果两个指针指向同一个存储单元,则称这两个指针互为别名。别名分析经常又被称为指针分析(pointer analysis)。别名分析别名分析需回答must、may和no的问题,即两个指针总是指向同一存储单元、可能指向同一存储单元或绝不会指向同一存储单元。在优化编译器中,别名分析是众多编译优化技术的基础,如常数传播、死代码删除、自动向量化等。如果编译器能够准确地判断指针之间一定存在别名或一定不存在别名,则能够允许更多的优化。否则为保证程序的正确性,编译器往往需做出保守假设,认为指针之间可能存在别名,放弃优化机会。