General:
* Software
* Application
* Code
* Script
* Algorithm
* Routine
* Procedure
More specific:
* Executable (if it's a standalone program)
* Module (if it's a part of a larger program)
* Library (if it's a collection of reusable code)
* Framework (if it's a structure for building applications)
* Tool (if it's designed for a specific purpose)
* Utility (if it's a simple program that performs a single task)
Informal:
* App
* Program
* Thingamajig (a playful, informal way to refer to a program)
The best word to use will depend on the specific situation and the level of formality you want to convey.