Using interface definition languages to support path expressions and programming by contract | IEEE Conference Publication | IEEE Xplore