编程语言（C编程语言的前身）的创建者，马丁·理察德设计了阵列从0开始的索引方式，作为存取阵列开头内容的自然位置，因为表示位址的指针p值，用于存取记忆体中的p+0位址；系统分析师Mike Hoye询问Richards选用该惯例的原因。BCPL最初是用IBM 7094机器编译的；它在编译时会优化这些阵列索引提供的指针反参考运算（indirection）。在1982年艾兹赫尔·戴克斯特拉写了个相关的说明《为什么编号应该从零开始》，将阵列索引的上下界以不等式连接，来分析各种设计方案，列举出严格和标准不等式的四种