This book studies existence and necessary conditions, such as Pontryagin's maximum principle for optimal control problems described by ordinary and partial differential equations. These necessary conditions are obtained from Kuhn-Tucker theorems for nonlinear programming problems in infinite dimensional spaces. The optimal control problems include control constraints, state constraints, and target conditions. Evolution partial differential equations are studied using semigroup theory, abstract d