Automatically Solving Simultaneous Type Equations for Type Difference Transformations That Redesign Code

  • Ted J. Biggerstaff
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8919)


This paper introduces a generalization of programming data types called Context Qualified Types (or CQ Typesfor short). CQ Types are a superset of programming language data types. They incorporate design features or contexts that fall outside of the programming data type domain (e.g., a planned program scope). CQ Types are functionally related to other CQ Types (and eventually to conventional data types) such that a differencing operation defined on two related types will produce a program transformation that will convert a computational instance (i.e., code) of the first type into a computational instance of the second type. Large grain abstract relationships between design contexts may be expressed as simultaneous type equations. Solving these equations, given some starting code instances, produces transformations that redesign the code from one design context (e.g., a payload context) to a different design context (e.g., a “hole” within a design framework from a reusable library).


Type differencing Context qualified types CQ Types Design frameworks Design features Functionally related types Transformations Domain driven instantiation Simultaneous type equations 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Biggerstaff, T.J.: A perspective of generative reuse. Annals of Software Engineering, 169–226 (1998)Google Scholar
  2. 2.
    Biggerstaff, T.J.: A new architecture of transformation-based generators. IEEE Transactions on Software Engineering 30(12), 1036–1054 (2004)CrossRefGoogle Scholar
  3. 3.
    Biggerstaff, T.J.: Automated partitioning of a computation for parallel or other high capability architecture. Patent no. 8,060,857, United States Patent and Trademark Office (2011)Google Scholar
  4. 4.
    Biggerstaff, T.J.: Non-localized constraints for automated program generation. Patent no. 8,225,277, United States Patent and Trademark Office (2012)Google Scholar
  5. 5.
    Biggerstaff, T.J.: Synthetic partitioning for imposing implementation design patterns onto logical architectures of computations. Patent no. 8,327,321, United States Patent and Trademark Office (2012)Google Scholar
  6. 6.
    Biggerstaff, T.J.: Reuse: Right Idea, Wrong Representation? Invited paper. In: DReMeR 2013 – International Workshop on Designing Reusable Components and Measuring Reusability, Pisa, Italy (2013)Google Scholar
  7. 7.
    Biggerstaff, T.J.: Automated Synchronization of Design Features in Disparate Code Components Using Type Differencing. Patent no. 8,713,515, United States Patent and Trademark Office (2014)Google Scholar
  8. 8.
    Cardelli, L., Wegner, P.: On Understanding Types, Data Abstractions, and Polymorphism. ACM Computing Surveys 17(4) (1985)Google Scholar
  9. 9.
    Cardelli, L.: Type Systems. In: CRC Handbook of Computer Science and Engineering, 2nd edn., ch. 97 (2004)Google Scholar
  10. 10.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Wesley (1995)Google Scholar
  11. 11.
    Liskov, B., Wing, J.: A Behavioral Notion of Subtyping. ACM Transactions on Programming Languages and Systems (1994)Google Scholar
  12. 12.
    Liskov, B., Wing, J.: A Behavioral Subtyping Using Invariants and Constraints. Carnegie Mellon Report CMU-CS-99-156 (1999)Google Scholar
  13. 13.
    Mattson, T. G., Sanders, B. A., Massingill, B. L.: Patterns for Parallel Programming. Addison Wesley (2008)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Ted J. Biggerstaff
    • 1
  1. 1.Software GeneratorsLLCAustinUSA

Personalised recommendations