I’d like to note that in Focal, arrays don’t need to be declared before use. There is a source claiming that the dynamic nature of arrays is possible because subscripts are stored in a manner similar to variables, implying that their addressing requires some kind of search. The same source claims that arrays can be multi-dimensional in at least one popular implementation.
Basic, however, is both compiled and interpreted, depending on implementation, and thus it misses out on a feature like this.