- From: Larry Masinter <masinter@adobe.com>
- Date: Tue, 28 Apr 2009 05:48:47 -0700
- To: "www-tag@w3.org WG" <www-tag@w3.org>
Version indicators Version indicators can either be out-of-band (not within the content, but associated with the content, such as with using file extensions, MIME types or other indicators) or in-band (contained in the content), or some combination (out-of-band information overriding in-band or vice versa, or combined in some other more complex way.) In-content version indicators can either be global (readily determined by reviewing the content in a fixed location or within the head 1k bytes of the file, for example) or local. Languages can change through augmentation (adding new keywords, features, procedures, available combinations) restriction (previous options are deprecated, removed, disallowed), clarification (previously ambiguous features clarified) or changed incompatibly in some or all circumstance. Augmentations increase the set of strings that are valid or meaningful or useful instances in the language, restrictions decrease the set. Clarifications generally leave the set alone, while incompatible changes may or may not modify the set. Whether language changes can be recognized without version indicators depends on the type of change: Some augmentations might be recognized by appearance of syntax that wasn't previously recognized (i.e., the "version indictor" is the use of the feature itself). Augmentations might be ignored or merely processed incorrectly by old implementations rather than being recognized as intended with a formerly unimplemented interpretation. Restrictions, clarifications, incompatible changes cannot readily be determined by scanning, though. Even though it is possible to avoid having out-of-band or global-scope version indicators for augmentations, this does not mean that there are no advantages or uses for in-band global indicators. If there are multiple languages (whether Algol 60 vs Algol 68 or just multiple "modes", having a global-scope in-band version indicator allows for switching between one interpreter and another. Indicating the version in-band but requiring parsing of the content means that it isn't possible to evolve syntax or parsers. Larry -- http://larry.masinter.net
Received on Tuesday, 28 April 2009 12:52:35 UTC