Environment > Using Procedures, Functions, SAVE Files > Overview of IDL Program Types

# Overview of IDL Program Types

In addition to being a useful interactive data analysis tool, IDL is a powerful programming language. Many of IDL’s programming language features and constructs can be used either interactively at the IDL command line or as part of a larger program — which can itself be invoked at the IDL command line or by other programs. A program may or may not be compiled before execution. The type of programs you use in IDL will depend upon your tasks.

Program Type | Description
$MAIN$ Program | Repeat a series of command line statements or interactively change variable values in a program file. These short programs or procedures are called $MAIN$ (main-level) programs. They are not explicitly named, and cannot be called from other programs. See Creating $MAIN$ Programs for details.
Named Program File (`.pro`) | Create programs and applications — you can create programs for data analysis or visualization using one or more named program files (*.pro).
Include File | You can create .pro files which can be included (embedded) within other code using the @filename statement.
Batch File | You can automate routine or lengthy processing tasks using a batch file, which contains one or more IDL statements or commands. Each line of the file is read and executed before proceeding to the next line.
SAVE File (`.sav`) | Share programs and distribute applications — you can create a SAVE file containing data or named program files in a `.sav` file to share with other users who may or may not have a full IDL installation.