A Two-Component Language for Adaptation: Design, Semantics and Program Analysis | IEEE Journals & Magazine | IEEE Xplore