9875329 Jonathan G. Rossie Jr. The research focuses on programming-language support for the behavioral characterization of observable components in terms of logical finite-state machines. Observable components support two-way messaging protocols with their client code, keeping the clients informed of significant state changes that affect the component's outward utility. The logical state machines provide a vocabulary for this protocol, serving as enforceable characterizations of the component's dynamic protocol. The research objective is to develop practical language mechanisms, rigorous formal foundations, and efficient implementation techniques to support observable components and to exploit the enforceable state machines to improve the safety of component reuse. A safe implementation would protect components from receiving messages out of sequence, and would also protect clients from components that are not faithful to their declared state machines. An essential technology in developing and using these components is a notion of safe substitutability that would account for the state machine and its implied two-way protocols. The research plan includes formal foundations for safe substitutability of components, as well as robust and efficient implementation technology in sequential and concurrent contexts.