# Interface Compilable

public interface Compilable
The optional interface implemented by ScriptEngines whose methods compile scripts to a form that can be executed repeatedly without recompilation.

Since:
  1.6

- ## Method Summary

  Modifier and Type
  Method
  Description
  `CompiledScript`
  `compile(Reader script)`
  Compiles the script (source read from `Reader`) for later execution.
  `CompiledScript`
  `compile(String script)`
  Compiles the script (source represented as a `String`) for later execution.

- ## Method Details

  - ### compile

    CompiledScript compile(String script) throws ScriptException
    Compiles the script (source represented as a `String`) for later execution.
    Parameters:
      `script` - The source of the script, represented as a `String`.
    Returns:
      An instance of a subclass of `CompiledScript` to be executed later using one of the `eval` methods of `CompiledScript`.
    Throws:
      `ScriptException` - if compilation fails.
      `NullPointerException` - if the argument is null.

  - ### compile

    CompiledScript compile(Reader script) throws ScriptException
    Compiles the script (source read from `Reader`) for later execution. Functionality is identical to `compile(String)` other than the way in which the source is passed.
    Parameters:
      `script` - The reader from which the script source is obtained.
    Returns:
      An instance of a subclass of `CompiledScript` to be executed later using one of its `eval` methods of `CompiledScript`.
    Throws:
      `ScriptException` - if compilation fails.
      `NullPointerException` - if argument is null.