ISO 639-2:1998, Codes for the representation of names of languages — Part 2: Alpha-3 code, is the second part of the ISO 639 standard, which lists codes for the representation of the names of languages. The three-letter codes given for each language in this part of the standard are referred to as "Alpha-3" codes. There are 487 entries in the list of ISO 639-2 codes.

The US Library of Congress is the registration authority for ISO 639-2 (referred to as ISO 639-2/RA). As registration authority, the LOC receives and reviews proposed changes; they also have representation on the ISO 639-RA Joint Advisory Committee responsible for maintaining the ISO 639 code tables.

History and relationship to other ISO 639 standards

Work was begun on the ISO 639-2 standard in 1989, because the ISO 639-1 standard, which uses only two-letter codes for languages, is not able to accommodate a sufficient number of languages. The ISO 639-2 standard was first released in 1998. 

In practice, ISO 639-2 has largely been superseded by ISO 639-3 (2007), which includes codes for all the individual languages in ISO 639-2 plus many more. It also includes the special and reserved codes, and is designed not to conflict with ISO 639-2. ISO 639-3, however, does not include any of the collective languages in ISO 639-2; most of these are included in ISO 639-5.

B and T codes
While most languages are given one code by the standard, twenty of the languages described have two three-letter codes, a "bibliographic" code (ISO 639-2/B), which is derived from the English name for the language and was a necessary legacy feature, and a "terminological" code (ISO 639-2/T), which is derived from the native name for the language and resembles the language's two-letter code in ISO 639-1. There were originally 22 B codes;  and  are now deprecated.

In general the T codes are favored; ISO 639-3 uses ISO 639-2/T.

Scopes and types
The codes in ISO 639-2 have a variety of "scopes of denotation", or types of meaning and use, some of which are described in more detail below. 
 Individual languages
 Macrolanguages (see ISO 639 macrolanguage)
 Collections of languages
 Dialects
 Reserved for local use
 Special situations

For a definition of macrolanguages and collective languages, see ISO 639-3/RA: Scope of denotation for language identifiers .

Individual languages are further classified as to type:
 Living languages
 Extinct languages
 Ancient languages
 Historic languages
 Constructed languages

Collections of languages
Some ISO 639-2 codes that are commonly used for languages do not precisely represent a particular language or some related languages (as the above macrolanguages). They are regarded as collective language codes and are excluded from ISO 639-3.

The collective language codes in ISO 639-2 are listed below.

The following code is identified as a collective code in ISO 639-2 but is (at present) missing from ISO 639-5:
 Himachali

Codes registered for 639-2 that are listed as collective codes in ISO 639-5 (and collective codes by name in ISO 639-2):

Reserved for local use
The interval from  to  is "reserved for local use" and is not used in ISO 639-2 nor in ISO 639-3. These codes are typically used privately for languages not (yet) in either standard.

Special situations
There are four generic codes for special situations:
 is listed as "uncoded languages" (originally an abbreviation for "miscellaneous")
 (for "multiple languages") is applied when several languages are used and it is not practical to specify all the appropriate language codes
 (for "undetermined") is used in situations in which a language or languages must be indicated but the language cannot be identified.
 is listed in the code list as "no linguistic content", e.g. animal sounds (code added on 11 January 2006)
These four codes are also used in ISO 639-3.

બાહ્ય કડીઓ
 
 ISO 639-2/RA Change Notice at the Library of Congress
 ISO 639-2:1998: Codes for the representation of names of languages—Part 2: Alpha-3 code at the International Organization for Standardization

ISO 639
1989 introductions
Language identifiers