This paper presents a review of advances that have taken place in the mathematical programming approach to process design and synthesis. A review is first presented on the algorithms that are available for solving MINLP problems, and its most recent variant, Generalized Disjunctive Programming models. The formulation of superstructures, models and solution strategies is also discussed for the effective solution of the corresponding optimization problems. The rest of the paper is devoted to reviewing recent mathematical programming models for the synthesis of reactor networks, distillation sequences, heat exchanger networks, mass exchanger networks, utility plants, and total flowsheets. As will be seen from this review, the progress that has been achieved in this area over the last decade is very significant.