A high-level interface for starting executables and automatically terminating them based on the RAII-pattern. A Subprocess object represents an instance of a process and automatically launches the process in the constructor. The destructor automatically terminates the process. As far as possible, the underlying operating system is abstracted from the interface.