<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="glossary.xsl" ?>
<glossary>
  <entry>
    <word>Interpreted language</word>
    <definition>
        A programming language that is translated into machine code at runtime.
    </definition>
  </entry>
  <entry>
    <word>Object Orientation</word>
    <definition>
        A programming philosophy that attempts to model real-world
        objects in programs. Uses encapsulation, inheritance and
        polymorphism.
    </definition>
  </entry>
  <entry>
    <word>Encapsulation</word>
    <definition>
       A programming technique in which parts of the 
       program are hidden (i.e. a black box). That lets the developer
       change the hidden features without affecting other parts
       of the program. One of the three pillars of object-orientation
       (others are inheritance and polymorphism).
     </definition>
   </entry>
   <entry>
     <word>Inheritance</word>
     <definition>
       A programming technique that promotes re-use in an object-
       oriented program. Inheritance lets subclasses inherit state
       and behavior from superclasses. One of the three pillars
       of object orientation (others are encapsulation and polymorphism).
     </definition>
   </entry>
   <entry>
     <word>Polymorphism</word>
     <definition>
       A programming technique that lets a subclass override behavior
       provided by a superclass. See inheritance. Polymorphism is
       one of the three pillars of object orientation, the others
       being encapsulation and inheritance.
     </definition>
   </entry>
   <entry>
     <word>JVM</word>
     <definition>
       A Java Virtual Machine provides an environment for running
       a Java program. The JVM translates the byte codes from a .class
       file into native code for execution.
     </definition>
   </entry>
   <entry>
     <word>Garbage collection</word>
     <definition>
       A technique in which the runtime environment takes care of
       de-allocating dynamic memory. In Java, the JVM 
       garbage collects by periodically
       scanning the heap and freeing objects that are not referenced.
     </definition>
   </entry>
   <entry>
     <word>Byte code</word>
     <definition>
       The binary output of the Java compiler. Byte code is an intermediate
       form that the JVM translates into native code at runtime. Since
       byte code is not machine-specific, it makes Java programs portable.
     </definition>
   </entry>
   <entry>
     <word>Applet</word>
     <definition>
       A Java program designed to run as part of an HTML page. Applets
       are hosted by a Web browser and can add programmability to
       web pages.
     </definition>
   </entry>
   <entry>
     <word>Just In Time (JIT) Compiler</word>
     <definition>
       A feature of a JVM that converts Java byte code into
       native machine code all at once, thus providing better
       performance than a true interpreter.
     </definition>
   </entry>
   <entry>
     <word>Package</word>
     <definition>
       A organizing unit that holds Java classes and/or interfaces.
       Packages correspond to file-system directories with the same name.
     </definition>
   </entry>
   <entry>
     <word>Class</word>
     <definition>
       A unit of Java code. A class defines data (also known as fields or
       instance variables) and methods. Classes act as blueprints for
       objects. 
     </definition>
   </entry>
   <entry>
     <word>Interface</word>
     <definition>
       Interfaces define one or methods but don't provide any implementation
       for the methods (the methods can have no code). A class can implement
       one or more interfaces. Thus, interfaces define sets of behavior
       that can be provided by classes.
     </definition>
   </entry>
   <entry>
     <word>Subclass and Superclass</word>
     <definition>
       With inheritance, you can extend classes by writing a new class
       that inherits behavior and state from an existing class. The new
       class is referred to as the subclass while the existing class is
       referred to as the superclass.
     </definition>
   </entry>
   <entry>
     <word></word>
     <definition>
     </definition>
   </entry>
   <entry>
     <word>Unicode</word>
     <definition>
       A system of mapping characters to binary codes. Similar to ASCII,
       but uses 16 or 32-bit characters to allow for characters from 
       most of the world's national languages.
     </definition>
   </entry>
   <entry>
     <word>Method</word>
     <definition>
       A unit of behavior within a class. Similar to functions, procedures
       or subprograms in other programming languages.
     </definition>
   </entry>
   <entry>
     <word>Instatiation</word>
     <definition>
       The act of creating an object, which are referred to as instances
       of a class. In Java, you use the "new" operator to instantiate
       objects.
     </definition>
   </entry>
   <entry>
     <word>Overriding</word>
     <definition>
       The act of writing a subclass method that has the same signature
       as a method in a superclass. The new method "overrides" the
       superclass method.
     </definition>
   </entry>
   <entry>
     <word>Signature (method)</word>
     <definition>
       The name and argument types of a method.
     </definition>
   </entry>
   <entry>
     <word>Overloading</word>
     <definition>
       The act of writing multiple methods in a class with the same
       name. The overloaded methods each must have a different
       method signature.
     </definition>
   </entry>
   <entry>
     <word>Constructor</word>
     <definition>
       A method in a class that participates in object construction. A
       constructor must have the same name as the class and have no
       return value. Most constructors initialize instance variables.
     </definition>
   </entry>
</glossary>
