Darren Duncan wrote:
For another thing, assuming in the typical case that any time a language evolves, it still provides the means to accomplish anything it was previously capable of, then each implementation needs no backwards-compatibility internally, but just the state of the art. Backwards compatibility can be achieved with version-specific shims over top of this single core, which translate works written to an older spec to their equivalent in the new one. Because versions are explicitly declared, it is trivial to dispatch to the correct interpreter or pseudo-interpreter.

As an addendum to this thought ...

If a system is also capable of generating a source work from a parsed version that is effectively the same as the original, it should also be possible for a user to request a source translation from some older understood spec version to a newer/current one. So they can be assisted in keeping their sources up to date without having to manually keep updating them, in general. Then when support for older formats is deprecated and removed, by that time their source will have been updated so it is still interpretable without manual updates.

Of course, supporting this is optional, but its useful.

Like a Perl 5 to Perl 6 translator but on much finer and easier to do scales.

-- Darren Duncan

Reply via email to