SAS is driven by SAS programs, which define a sequence of operations to be performed on data stored as tables. Although non-programmer graphical user interfaces to SAS exist; these GUIs are most often merely a front-end that automates or facilitates the generation of SAS programs. The functionalities of SAS components are intended to be accessed via application programming interfaces, in the form of statements and procedures.
A SAS program has four major parts:
- The DATA step
- Procedure steps (effectively, everything that is not enclosed in a DATA step)
- A macro language, a metaprogramming language
- ODS (Output Delivery System) statements, which direct any output or data sets created by DATA or procedure steps to any of various file types, and apply styles and templates to the output.