IANA-LANGUAGE-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-IDENTITY, mib-2
        FROM SNMPv2-SMI;

ianaLanguages MODULE-IDENTITY
    LAST-UPDATED "200005100000Z"  -- May 10, 2000
    ORGANIZATION "IANA"
    CONTACT-INFO
        "Internet Assigned Numbers Authority (IANA)

         Postal: ICANN
                 4676 Admiralty Way, Suite 330
                 Marina del Rey, CA 90292

         Tel:    +1 310 823 9358 x20
         E-Mail: iana&iana.org"
    DESCRIPTION
        "The MIB module registers object identifier values for
         well-known programming and scripting languages. Every
         language registration MUST describe the format used
         when transferring scripts written in this language.

         Any additions or changes to the contents of this MIB
         module require Designated Expert Review as defined in
         the Guidelines for Writing IANA Considerations Section
         document. The Designated Expert will be selected by
         the IESG Area Director of the OPS Area.

         Note, this module does not have to register all possible
         languages since languages are identified by object
         identifier values. It is therefore possible to registered 
         languages in private OID trees. The references given below are not
         normative with regard to the language version. Other
         references might be better suited to describe some newer 
         versions of this language. The references are only
         provided as `a pointer into the right direction'."

 -- Revision log, in reverse chronological order

    REVISION    "200005100000Z" -- May 10, 2000
    DESCRIPTION "Import mib-2 instead of experimental, so that
                 this module compiles"

    REVISION    "199909090900Z" -- September 9, 1999
    DESCRIPTION "Initial version as published at time of
                 publication of RFC 2591."
    ::= { mib-2 73 }

ianaLangJavaByteCode OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
        "Java byte code to be processed by a Java virtual machine.
         A script written in Java byte code is transferred by using
         the Java archive file format (JAR)."
    REFERENCE
        "The Java Virtual Machine Specification.
         ISBN 0-201-63452-X"
    ::= { ianaLanguages 1 }

ianaLangTcl OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
        "The Tool Command Language (Tcl). A script written in the
         Tcl language is transferred in Tcl source code format."
    REFERENCE
        "Tcl and the Tk Toolkit.
         ISBN 0-201-63337-X"
    ::= { ianaLanguages 2 }

ianaLangPerl OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
        "The Perl language. A script written in the Perl language
         is transferred in Perl source code format."
    REFERENCE
        "Programming Perl.
         ISBN 1-56592-149-6"
    ::= { ianaLanguages 3 }

ianaLangScheme OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
        "The Scheme language. A script written in the Scheme
         language is transferred in Scheme source code format."
    REFERENCE
        "The Revised^4 Report on the Algorithmic Language Scheme.
         MIT Press"
    ::= { ianaLanguages 4 }

ianaLangSRSL OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
        "The SNMP Script Language defined by SNMP Research. A
         script written in the SNMP Script Language is transferred
         in the SNMP Script Language source code format."
    ::= { ianaLanguages 5 }

ianaLangPSL OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
        "The Patrol Script Language defined by BMC Software. A script
         written in the Patrol Script Language is transferred in the
         Patrol Script Language source code format."
    REFERENCE
        "PATROL Script Language Reference Manual, Version 3.0,
         November 30, 1995. BMC Software, Inc. 2101 City West Blvd.,
         Houston, Texas 77042."
    ::= { ianaLanguages 6 }

ianaLangSMSL OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
        "The Systems Management Scripting Language. A script written
         in the SMSL language is transferred in the SMSL source code
         format."
    REFERENCE
        "ISO/ITU Command Sequencer.
         ISO 10164-21 or ITU X.753"
    ::= { ianaLanguages 7 }

END
