AIB 2005-16: Syntax-Directed Derivative Code (Part I: Tangent-Linear Code)