# Introduction

SIC (*) is a command line interpretor, written in FORTRAN and callable as a subroutine by any program. It provides a command language, with the following major features:

- resolution of command abbreviations
- definition of symbols
- macro capabilities with arguments substitution during execution
- log file
- multi-language structure
- loop buffers for repetitive actions
- variables, arithmetic and logical expressions evaluation
- structured logical tests
- error recovery
- stack buffer
- editing of command lines
- GUI interface on Motif, OS/X and MS-Windows systems
- optionally, a Python interface

This section concerns the programmer who wants to use SIC as the monitor of a simple or complex, evolutive, documented interactive program. It assumes that the reader is already familiar with all capabilities of SIC, so that he should be able to design a program (or better a system) around the SIC monitor.

It is in fact essentially a “CookBook” giving a list of recipes to build a program using SIC, or interface SIC with a preexisting ensemble of routines. Following these recipes should result in a complete success, that is, a program fulfilling the following requirements:

- Works in interactive or batch, reading commands on Standard Input This is called Read Mode.
- Can be called as a subroutine to execute a single command (Execute Mode). In case of error or if a PAUSE is encountered, the system switches to Read Mode for interactive error recovery or to read commands after the PAUSE.
- Is completed by a library version
- The library version can be used to make another language around it.
- Is portable on all Unix-like systems (including Mac OS/X) and MS-Windows.

The section describes the command vocabulary structure, and the initialization sequence of SIC. Section indicates how to write the corresponding HELP files. Section describes how to retrieve arguments from a SIC command line. Section indicates how to complete the program so that it can also be a library of routines. Finally, Section indicates how to use SIC variables, and Section give all entry points of the SIC monitor.

SIC programming interface is designed for the Fortran language. Interfacing with C language requires some system dependent precautions concerning argument passing mechanism, in particular for character strings.