Apparatus for optically scanning an object comprising a flat support (20) for holding the object; a linear optical sensor (12) held in a fixed position on one side of the support (20); a light source (18) held in a fixed position on the other side of the support (20) for projecting light through the object toward the optical sensor (12); and a drive mechanism (26) for moving the object along one direction to successive scanning positions. The user may create custom application computer programs for performing desired image scanning and analysis on an object. To enable this, the system stores software tools each capable of performing an image scanning or image analysis function, stores an interpreter program corresponding to a natural language identifier for the functions, and provides an interactive computer environment for the user to specify a sequence of software tools using the natural language identifiers to be executed to perform the desired image scanning and analysis.