EXPRESS+ and SDAI+: Specification and Automatic Derivation of Higher Level Programming Interfaces