Abstract
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).
Patent 8,713,515 [7] and separate patent pending.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Biggerstaff, T.J.: A perspective of generative reuse. Annals of Software Engineering, 169–226 (1998)
Biggerstaff, T.J.: A new architecture of transformation-based generators. IEEE Transactions on Software Engineering 30(12), 1036–1054 (2004)
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)
Biggerstaff, T.J.: Non-localized constraints for automated program generation. Patent no. 8,225,277, United States Patent and Trademark Office (2012)
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)
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)
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)
Cardelli, L., Wegner, P.: On Understanding Types, Data Abstractions, and Polymorphism. ACM Computing Surveys 17(4) (1985)
Cardelli, L.: Type Systems. In: CRC Handbook of Computer Science and Engineering, 2nd edn., ch. 97 (2004)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Wesley (1995)
Liskov, B., Wing, J.: A Behavioral Notion of Subtyping. ACM Transactions on Programming Languages and Systems (1994)
Liskov, B., Wing, J.: A Behavioral Subtyping Using Invariants and Constraints. Carnegie Mellon Report CMU-CS-99-156 (1999)
Mattson, T. G., Sanders, B. A., Massingill, B. L.: Patterns for Parallel Programming. Addison Wesley (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Biggerstaff, T.J. (2014). Automatically Solving Simultaneous Type Equations for Type Difference Transformations That Redesign Code. In: Schaefer, I., Stamelos, I. (eds) Software Reuse for Dynamic Systems in the Cloud and Beyond. ICSR 2015. Lecture Notes in Computer Science, vol 8919. Springer, Cham. https://doi.org/10.1007/978-3-319-14130-5_8
Download citation
DOI: https://doi.org/10.1007/978-3-319-14130-5_8
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-14129-9
Online ISBN: 978-3-319-14130-5
eBook Packages: Computer ScienceComputer Science (R0)