Expressions offer an alternative to difficult keyframing tasks similar to Set Driven Key. With Set Driven Key, attribute relationships can be set up and are defined using animation curves. Unlike Set Driven Key, an expression does not use an animation curve to define the animation of the attribute but calculates the attribute values over time from the formula defined in the expression.
It is possible to create custom attributes for objects and control them in conjunction with expressions. It is not possible to mix expressions with other animation techniques for the same attribute on an object (keyframing, path animation, set driven key).