Well this program proves what I said: it uses "late binding", then uses an undocumented "linking" step to try resolving the references:
- I don't know what it does really, but if it allows using any candidate, that it will enumerate all possible solutions, by explictly instanciating all the possible bindings, so this will still effectively a linking step, applied to each instance.
- If it just randomly select one candidate, then the results are unpredictable, and the language itself has NO practival use, it is fundamentally flawed, unsecure, non-portable at all: an implementation of the language will necessrily have to make arbitrary choices... and document them! This will create as many distinct "formal" languages as there are arbitrary choices, even if all of them use the same basic syntax. Such language is not formal, it is then actually a (possibly very large) family of languages with distinct applications working only for one of its instances.
Still we are back to the final linking step which is necessarily deterministic (otherwise it is not implementable at all an any deterministic computer or Turing machine, this informal language would be a "blackbox", an "oracle", we could refer by "only God knows").