COP
Controller Oriented Programming
Controller Oriented Programming
Traditionally, software engineering has viewed runtime efficiency and adaptability as a trade-off, with tight coupling allowing efficiency and loose coupling allowing adaptability. Apogee developed the idea of Controller-Oriented Programming (COP), a new programming language paradigm designed to facilitate partially coupled implementations, which are efficient and adaptable simultaneously. COP introduces two new programming language concepts: 1) partitions, which capture sets of implementation options that are extensionally rather than intentionally equivalent, and 2) controllers, which dynamically select among these options and manage side effects and other couplings to enable systems to act like they are decoupled. Together, partitions and controllers allow programmers to avoid making premature choices, while preserving both implementation flexibility and runtime performance. This practice, which we call deferring concretization, facilitates the use of partial coupling to create implementations that mirror the couplings inherent in the problem and are both as adaptable and as efficient as the problem allows.
Apogee is both developing new programming languages built around COP (e.g. SymLang) and applying these ideas to solve operationally relevant problems for the DoD.