1.   (operating system)   A name, usually short and easy to remember and type, that is translated into another name or string, usually long and difficult to remember or type. Most command interpreters (e.g. Unix's csh) allow the user to define aliases for commands, e.g. "alias l ls -al". These are loaded into memory when the interpreter starts and are expanded without needing to refer to any file.

2.   (networking)   One of several alternative hostnames with the same Internet address. E.g. in the Unix hosts database (/etc/hosts or NIS map) the first field on a line is the Internet address, the next is the official hostname (the "canonical name" or "CNAME"), and any others are aliases.

Hostname aliases often indicate that the host with that alias provides a particular network service such as archie, finger, FTP, or web. The assignment of services to computers can then be changed simply by moving an alias (e.g. from one Internet address to another, without the clients needing to be aware of the change.

3.   (file system)   The name used by Apple computer, Inc. for symbolic links when they added them to the System 7 operating system in 1991.

Last updated: 1997-10-22

4.   (programming)   Two names (identifiers), usually of local or global variables, that refer to the same resource (memory location) are said to be aliased. Although names introduced in programming languages are typically mapped to different memory locations, aliasing can be introduced by the use of address arithmetic and pointers or language-specific features, like C++ references.

Statically deciding (e.g. via a program analysis executed by a sophisticated compiler) which locations of a program will be aliased at run time is an undecidable problem.

[G. Ramalingam: "The Undecidability of Aliasing", ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 16, Issue 5, September 1994, Pages: 1467 - 1471, ISSN:0164-0925.]

Last updated: 2004-09-12