Refers to hardware or software that is compatible with earlier versions of the product. Also called "downward compatible." Contrast with forward compatible.
Download Computer Desktop Encyclopedia to your PC, iPhone or Android.
|
|
This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. (June 2008) |
In telecommunications and computing, a product or technology is backward or downward compatible if it can work with input generated by an older product or technology.[1] If products designed for the new standard can receive, read, view or play older standards or formats, then the product is said to be backward-compatible; examples of such a standard include data formats and communication protocols.
The reverse is forward compatibility, which implies that old devices allow (or are expected to allow) data formats generated by new (or future) devices, perhaps without supporting all new features. A standard supports forward compatibility if older product versions can receive, read, view, or play the new standard.
For example, the introduction of FM stereo transmission allowed backward compatibility since new FM radio receivers could receive monaural signals generated by old transmitters. It also allowed forward compatibility, since old monaural FM radio receivers still could receive a signal from a new transmitter.
In programming languages, backward compatibility refers to the ability of a compiler for version N of the language to accept programs or data that worked under version N - 1.[2] (By this definition, if previous versions (N - 1, N - 2, etc.) were also backward compatible, which is often the case, then, by induction, version N will also accept input that worked under any prior version after, and including, the latest one that was not backward compatible. However, in practice, features are often deprecated and support is dropped in a later release, which is yet thought of as backward compatible.)
In other contexts, a product or a technology is said to be backward compatible when it is able to fully take the place of an older product, by inter-operating with products that were designed for the older product.[3][Need quotation to verify]
A data format is also said to be backward compatible with its predecessor if every message or file that is valid under the old format is also valid, and retains its meaning, under the new.[4]
|
Contents
|
Backward compatibility is a relationship between two components, rather than being an attribute of just one of them. More generally, a new component is said to be backward compatible if it provides all of the functionality of the old component.[citation needed]
Backward compatibility is the special case of compatibility in which the new component has a direct historical ancestral relationship with the old component. If this special relationship does not exist then it not usually spoken of as "backward" compatibility but is instead just "compatible"—a consistent interface allowing interoperability between components and products that were each developed separately.
In the case of a program that creates document files, a new version of that program ("v2") is said to be backward compatible with the old version of the program ("v1") when it can both read and write documents that work with v1. Everything that v1 could do must also be possible with v2, including saving documents that can be read by v1 (which is something that v1 could do.)
If a newer software version cannot save files that can be read by the older version, it is not backward compatible with the older version, although it may provide an irreversible upgrade capability for the old files. This situation has often been used strategically by software vendors to force customers to purchase upgrades since, over time, the number of data files usable by an old version diminishes at a rate proportional to the number of other customers that have upgraded (assuming that all customers generate files at the same the average rate.)
Levels of compatibility vary. In software, binary compatibility and source compatibility are distinguishable. Binary compatibility means that programs can work correctly with the new version of this library without requiring recompilation. Source compatibility requires recompilation but no changes to the source code.
Many platforms rely on emulation, the simulation of an older platform in software, to achieve backward compatibility.
If a newer system is attempting to achieve integration with an older system which has known flaws (or "bugs"), then the new system may be referred to as "bugwards-compatible".[5][6][7]
This entry is from Wikipedia, the leading user-contributed encyclopedia. It may not have been reviewed by professional editors (see full disclaimer)