It strikes me that in a language like Common Lisp, where the identifiers are not strings but symbols with a name, you could give the symbols a map from language->name and have the input language be nearly irrelevant: as long as it was standard practice to distribute source as serialized symbols rather than as text files.