Described is an application program interface (API) that enables dynamic
modification to applications executing in a heterogeneous distributed
computing environment. The application program interface includes a
navigation function, a query function, a thread management function, and
a modifier function. The navigation function returns program information
for a local or remote computer (i.e., specified computing device). The
query function returns information about a program on the specified
computing device. The thread management function controls execution of
other programs on the specified computing device. The modifier function
modifies a system memory on the specified computing device that stores
the heterogeneous program. The API works in conjunction with a
hierarchical intermediate representation of the heterogeneous program
such that pre-defined program tools can modify the intermediate
representation and write these modifications to the specified computing
device while the heterogeneous program remains operational.