Forward compatibility

Forward compatibility or upward compatibility is a design characteristic that allows a system to accept input intended for a later version of itself. The concept can be applied to entire systems, electrical interfaces, telecommunication signals, data communication protocols, file formats, and computer programming languages. A standard supports forward compatibility if a product that complies with earlier versions can "gracefully" process input designed for later versions of the standard, ignoring new parts which it does not understand.

The objective for forward compatible technology is for old devices to recognise when data has been generated for new devices.[1]

Forward compatibility for the older system usually means backward compatibility for the new system, i.e. the ability to process data from the old system; the new system usually has full compatibility with the older one, by being able to both process and generate data in the format of the older system.

Forward compatibility is not the same as extensibility. A forward compatible design can process at least some of the data from a future version of itself. An extensible design makes upgrading easy. An example of both design ideas can be found in web browsers. At any point in time, a current browser is forward compatible if it gracefully accepts a newer version of HTML. Whereas how easily the browser code can be upgraded to process the newer HTML determines how extensible it is.


Telecommunication standards

The introduction of FM stereo transmission, or color television, allowed forward compatibility, since monophonic FM radio receivers and black-and-white TV sets still could receive a signal from a new transmitter.[1] It also allowed backward compatibility since new receivers could receive monophonic or black-and-white signals generated by old transmitters.

Video gaming


HTML is designed to treat all tags in the same way (as inert, unstyled inline elements) unless their appearance or behavior is overridden; either by the browser's default settings, or by scripts or styles included in the page.[5] This makes most new features degrade gracefully in older browsers. One case where this did not work as intended was script and style blocks, whose content is meant to be interpreted by the browser instead of being part of the page. Such cases were dealt with by enclosing the content within comment blocks.[6]

NUC (not upwardly compatible)

Some products are not designed to be forward compatible, which has been referred to as NUC (not upwardly compatible). In some cases this might be intentional by the designers as a form of vendor lock-in or software regression.

For example, a cubicle producer considers changing their cubicle design. One designer promotes changing the footprint from 4 foot square to 1.2 meter square. Immediately, the sales manager calls "NUC" and the problem is understood: if the footprint changes and existing customers are considering buying more from the producer, they will have to fit a different sized unit in an office designed for the 4 foot square cubicle.

Planned obsolescence is a type of upward compatibility, but rather than adopting a policy of backwards compatibility, companies adopt a commercial policy of backwards incompatibility so that newer apps require newer devices.

See also


  1. ^ a b Tulach, Jaroslav (2008). Practical API Design: Confessions of a Java Framework Architect. Apress. p. 233. ISBN 978-1-4302-0973-7.
  2. ^ Game Boy - Compatibility Chart. Nintendo of America. Retrieved 3 October 2017.
  3. ^ "Will the ps2 controller work on a ps1?". Retrieved 2017-12-27.
  4. ^ Newhouse, Alex (2014-07-01). "PlayStation 4 Controller Now Works Wirelessly With PlayStation 3". GameSpot. Retrieved 2017-12-27.
  5. ^ Really undoing html.css by Eric A. Meyer.
  6. ^ HTML <!--...--> Tag at 'You can also use the comment tag to "hide" scripts from browsers without support for scripts [...]'.

This article is based on material taken from the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.

External links


1080p (1920×1080 px; also known as Full HD or FHD and BT.709) is a set of HDTV high-definition video modes characterized by 1,920 pixels displayed across the screen horizontally and 1,080 pixels down the screen vertically; the p stands for progressive scan, i.e. non-interlaced. The term usually assumes a widescreen aspect ratio of 16:9, implying a resolution of 2.1 megapixels. It is often marketed as full HD, to contrast 1080p with 720p resolution screens.

1080p video signals are supported by ATSC standards in the United States and DVB standards in Europe. Applications of the 1080p standard include television broadcasts, Blu-ray Discs, smartphones, Internet content such as YouTube videos and Netflix TV shows and movies, consumer-grade televisions and projectors, computer monitors and video game consoles. Small camcorders, smartphones and digital cameras can capture still and moving images in 1080p resolution.

Apple Thunderbolt Display

The Apple Thunderbolt Display is a 27-inch flat panel computer monitor sold by Apple Inc. from July 2011 to June 2016. As of January 2019, it is the final standalone display designed and sold by Apple. It replaced the former Apple LED Cinema Display. New to the Thunderbolt Display was the switch from Mini DisplayPort and USB to a single Thunderbolt connection for data transfer between computer and display. The increased throughput from switching to Thunderbolt enabled inclusion of a Gigabit Ethernet port and a FireWire 800 port on the display. Older model Macs introduced prior to 2011 with Mini DisplayPort are incompatible with the Thunderbolt Display.


GNU Autoconf is a tool for producing configure scripts for building, installing and packaging software on computer systems where a Bourne shell is available.

Autoconf is agnostic about the programming languages used, but it is often used for projects using C, C++, Fortran, Fortran 77, Erlang or Objective-C.

A configure script configures a software package for installation on a particular target system. After running a series of tests on the target system, the configure script generates header files and a makefile from templates, thus customizing the software package for the target system. Together with Automake and Libtool, Autoconf forms the GNU Build System, which comprises several other tools, notably Autoheader.

Backward compatibility

Backward compatibility is a property of a system, product, or technology that allows for interoperability with an older legacy system, or with input designed for such a system, especially in telecommunications and computing. Backward compatibility is sometimes also called downward compatibility.Modifying a system in a way that does not allow backward compatibility is sometimes called "breaking" backward compatibility.A complementary concept is forward compatibility. A design that is forward-compatible usually has a roadmap for compatibility with future standards and products.

Compatibility mode

A compatibility mode is a software mechanism in which a software either emulates an older version of software, or mimics another operating system in order to allow older or incompatible software or files to remain compatible with the computer's newer hardware or software. Examples of the software using the mode are operating systems and Internet Explorer.

Computer compatibility

A family of computer models is said to be compatible if certain software that runs on one of the models can also be run on all other models of the family. The computer models may differ in performance, reliability or some other characteristic. These differences may affect the outcome of the running of the software.


DVB 3D-TV is a new standard that partially came out at the end of 2010 which included techniques and procedures to send a three-dimensional video signal through actual DVB transmission standards (Cable, Terrestrial or Satellite). Currently there is a commercial requirement text for 3D TV broadcasters and Set-top box manufacturers, but no technical information is in there.

Nowadays 3D television technology is already in its first steps regarding its standardization, now the major 3D market is in theaters and Blu-ray Disc players with stereoscopic systems, but in the near future it will be extended to diffusion, and later Free viewpoint television will come into our homes, which means the need of new coding and transmission standards.

Digital container format

A container or wrapper format is a metafile format whose specification describes how different elements of data and metadata coexist in a computer file.Among the earliest cross-platform container formats were Distinguished Encoding Rules and the 1985 Interchange File Format. Containers are frequently used in multimedia applications.


Downcycling, or cascading, is the recycling of waste where the recycled material is of lower quality and functionality than the original material. Often, this is due the accumulation of tramp elements in secondary metals, which may exclude the latter from high-quality applications. For example, steel scrap from end-of-life vehicles is often contaminated with copper from wires and tin from coating. This contaminated scrap yields a secondary steel that does not meet the specifications for automotive steel and therefore, it is mostly applied in the construction sector.

Flag day (computing)

A flag day, as used in system administration, is a change which requires a complete restart or conversion of a sizable body of software or data. The change is large and expensive, and—in the event of failure—similarly difficult and expensive to reverse.The situation may arise if there are limitations on backward compatibility and forward compatibility among system components, which then requires that updates be performed almost simultaneously (during a "flag day cutover") for the system to function after the upgrade. This contrasts with the method of gradually phased-in upgrades, which avoids the disruption of service caused by en masse upgrades.

This systems terminology originates from a major change in the Multics operating system's definition of ASCII, which was scheduled for the United States holiday, Flag Day, on June 14, 1966.Another historical flag day was January 1, 1983, when the ARPANET changed from NCP to the TCP/IP protocol suite. This major change required all ARPANET nodes and interfaces to be shut down and restarted across the entire network.

Guitar Pro

Guitar Pro is a multitrack editor of guitar and bass tablature and musical scores, possessing a built-in MIDI-editor, a plotter of chords, a player, a metronome and other tools for guitarists and musicians. It has versions for Windows and Mac OS X (Intel processors only) and is written by the French company Arobas Music.


An identifier is a name that identifies (that is, labels the identity of) either a unique object or a unique class of objects, where the "object" or class may be an idea, physical [countable] object (or class thereof), or physical [noncountable] substance (or class thereof). The abbreviation ID often refers to identity, identification (the process of identifying), or an identifier (that is, an instance of identification). An identifier may be a word, number, letter, symbol, or any combination of those.

The words, numbers, letters, or symbols may follow an encoding system (wherein letters, digits, words, or symbols stand for (represent) ideas or longer names) or they may simply be arbitrary. When an identifier follows an encoding system, it is often referred to as a code or ID code. For instance the ISO/IEC 11179 metadata registry standard defines a code as system of valid symbols that substitute for longer values in contrast to identifiers without symbolic meaning. Identifiers that do not follow any encoding scheme are often said to be arbitrary IDs; they are arbitrarily assigned and have no greater meaning. (Sometimes identifiers are called "codes" even when they are actually arbitrary, whether because the speaker believes that they have deeper meaning or simply because they are speaking casually and imprecisely.)

The unique identifier (UID) is an identifier that refers to only one instance—only one particular object in the universe. A part number is an identifier, but it is not a unique identifier—for that, a serial number is needed, to identify each instance of the part design. Thus the identifier "Model T" identifies the class (model) of automobiles that Ford's Model T comprises; whereas the unique identifier "Model T Serial Number 159,862" identifies one specific member of that class—that is, one particular Model T car, owned by one specific person.

The concepts of name and identifier are denotatively equal, and the terms are thus denotatively synonymous; but they are not always connotatively synonymous, because code names and ID numbers are often connotatively distinguished from names in the sense of traditional natural language naming. For example, both "Jamie Zawinski" and "Netscape employee number 20" are identifiers for the same specific human being; but normal English-language connotation may consider "Jamie Zawinski" a "name" and not an "identifier", whereas it considers "Netscape employee number 20" an "identifier" but not a "name". This is an emic indistinction rather than an etic one.

Index of software engineering articles

This is an alphabetical list of articles pertaining specifically to software engineering.

Motorola 68000

The Motorola 68000 ("'sixty-eight-thousand'"; also called the m68k or Motorola 68k, "sixty-eight-kay") is a 16/32-bit CISC microprocessor, which implements a 32-bit instruction set, with 32-bit registers and 32-bit internal data bus, but with a 16-bit data ALU and two 16-bit arithmetic ALUs and a 16-bit external data bus, designed and marketed by Motorola Semiconductor Products Sector. Introduced in 1979 with HMOS technology as the first member of the successful 32-bit Motorola 68000 series, it is generally software forward-compatible with the rest of the line despite being limited to a 16-bit wide external bus. After 39 years in production, the 68000 architecture is still in use.

Reserved word

In a computer language, a reserved word (also known as a reserved identifier) is a word that cannot be used as an identifier, such as the name of a variable, function, or label – it is "reserved from use". This is a syntactic definition, and a reserved word may have no meaning.

A closely related and often conflated notion is a keyword, which is a word with special meaning in a particular context. This is a semantic definition. By contrast, names in a standard library but not built into the language are not considered reserved words or keywords. The terms "reserved word" and "keyword" are often used interchangeably – one may say that a reserved word is "reserved for use as a keyword" – and formal use varies from language to language; for this article we distinguish as above.

In general reserved words and keywords need not coincide, but in most modern languages keywords are a subset of reserved words, as this makes parsing easier, since keywords cannot be confused with identifiers. In some languages, like C or Python, reserved words and keywords coincide, while in other languages, like Java, all keywords are reserved words, but some reserved words are not keywords – these are "reserved for future use". In yet other languages, such as the older languages ALGOL, FORTRAN and PL/I, there are keywords but no reserved words, with keywords being distinguished from identifiers by other means. This makes parsing more difficult with look-ahead parsers necessary.

Roland GS

Roland GS, or just GS, sometimes expanded as General Standard or General Sound, is an extension of General MIDI specification. It requires that all GS-compatible equipment must meet a certain set of features and it documents interpretations of some MIDI commands and bytes sequences, thus defining more instrument tones, more controllers for sound effects, etc.

GS takes into account some of the criticism of simplicity of original General MIDI standard, while retaining full forward compatibility and even some backward compatibility. GS defines 98 additional tone instruments, 15 more percussion instruments, 8 more drum kits, 3 effects (reverb/chorus/variation) and some other features,thus adding more sounds to the MIDI world. Roland also gave users their own MIDI file player, called SB-55 Sound Brush.

The Roland SC-55, the first synthesizer to support the General MIDI standard, also supports the GS standard.

Serial ATA

Serial ATA (SATA, abbreviated from Serial AT Attachment) is a computer bus interface that connects host bus adapters to mass storage devices such as hard disk drives, optical drives, and solid-state drives. Serial ATA succeeded the earlier Parallel ATA (PATA) standard to become the predominant interface for storage devices.

Serial ATA industry compatibility specifications originate from the Serial ATA International Organization (SATA-IO) which are then promulgated by the INCITS T13 subcommittee ATA Attachment

Web interoperability

Web interoperability is producing web pages viewable with standard compatible web browsers, various operating systems such as Windows, Macintosh and Linux, and devices such as personal computers (PCs), PDAs, mobile phones and tablets based on the latest web standards.

This page is based on a Wikipedia article written by authors (here).
Text is available under the CC BY-SA 3.0 license; additional terms may apply.
Images, videos and audio are available under their respective licenses.