This book concerns existence and necessary conditions, such as Potryagin's maximum principle, for optimal control problems described by ordinary and partial differential equations. The author obtains these necessary conditions from Kuhn-Tucker theorems for nonlinear programming problems in infinite dimensional spaces. The optimal control problems include control constraints, state constraints and target conditions. Fattorini studies evolution partial differential equations using semigroup theory, abstract differential equations in linear spaces, integral equations and interpolation theory. The author establishes existence of optimal controls for arbitrary control sets by means of a general theory of relaxed controls. Applications include nonlinear systems described by partial differential equations of hyperbolic and parabolic type and results on convergence of suboptimal controls.