## 2.1 Batch Compiler Modes

The batch compiler can operate in one of several mutually exclusive modes selected by the options below:

`-h`, `-?`, `--help`

  Prints out information on all legal options, then exits.

`-c`, `--dump`

  > `ozc -c` ...`` FILE`.oz` ...

  Compiles and evaluates the expression in file FILE`.oz`, then pickles the resulting value into the output file, FILE`.ozf` by default.

`-e`, `--execute`

  > `ozc -e` ...`` FILE`.oz` ...

  Compiles and executes the statement in file FILE`.oz`. This is the default mode of operation.

`-E`, `--core`

  > `ozc -E` ...`` FILE`.oz` ...

  Translates the statement in file FILE`.oz` into the core language, then writes this expanded form into the output file, FILE`.ozi` by default.

`-S`, `--scode`

  > `ozc -S` ...`` FILE`.oz` ...

  Compiles the statement in file FILE`.oz` into the assembly bytecode format, then writes it to the output file, FILE`.ozm` by default.

`-s`, `--ecode`

  > `ozc -s` ...`` FILE`.oz` ...

  Like `--scode`, except that the file is compiled as an expression instead of as a statement.

`-x`, `--executable`

  > `ozc -x` ...`` FILE`.oz` ...

  Much like `-c`, compiles and evaluates the expression in file FILE`.oz`, then writes the resulting value into the output file, by default FILE (without extension) under Unix or FILE`.exe` under Windows. Additionally, it makes the output file executable. Thus, if `Foo.oz` contains an application functor,

  > `ozc -x Foo.oz`

  creates the file `Foo` (`Foo.exe` under Windows), which is executable and can be invoked directly from the shell. Note also that you can always run an application functor as follows:

  > `ozengine` url`` args`` ...

  where url is a URL or pathname that references the application functor.