Chapters: 1: Introduction 2: Simple example 3: Invocation 4: Finer Control 5: X-Y Plots 6: Contour Plots 7: Image Plots 8: Examples 9: Gri Commands 10: Programming 11: Environment 12: Emacs Mode 13: History 14: Installation 15: Gri Bugs 16: Test Suite 17: Gri in Press 18: Acknowledgments 19: License Indices: Concepts Commands Variables | # 10: Programming in the Gri Language The Gri programming language has ``if`' statements to control program flow, and a ``while`' statement to repeat commands. There are two data types in Gri: ``variables'' (to store numbers) and ``synonyms'' (to store character strings). Gri recognizes commands by matching statements against its list of known commands. This list is extensible; it is easy to add new commands as extensions to Gri. Defaults: How Gri normally acts Online Help: Getting help from gri itself Long Command Lines: Continued lines Variables: Variables (for storing numbers) Synonyms: Synonyms (for storing character strings) If Statements: If statements Loops: Repeating command lines Mathematics: Doing mathematics on columns, grids etc rpn Mathematics: Doing mathematics on variables Text: Doing things with characters strings Adding New Commands: How to customize Gri by adding new commands Missing Values: How to specify missing data Hints: Hints for good Gri programming Debugging: Debugging Gri programs Error Messages: What to do about Gri error messages Missing Values: Missing value code Operating System: Using Gri in OS and OS in Gri Resource File: Personalizing Gri