1. A method for conversational computing comprising: executing code embodying a conversational virtual machine; receiving input queries and input events across different user interface modalities of different active applications; generating output messages and output events in connection with the active applications; generating a multi-modal dialog in response to the input queries and input events, and managing context associated with the active applications; providing an interface between the active applications and a conversational kernel; and registering a plurality of I/O resources with the conversational kernel.