Frameworks are sometimes described as an upside-down library, since the role of user-defined code and supplied code is just reversed.