This paper will review some of the methods that have been devised to bring lithography-generated patterns as close to the desired target patterns as possible, while making them also robust against inevitable deviations from the ideal conditions during the printing process. Optical proximity correction (OPC) is the first step in this process. Various ways have been developed for efficient creation of accurate process window aware OPC models. Also, the use of the actual OPC step, to transform the target patterns into actual lithography mask patterns has seen significant progress. A computational verification step then checks whether the predicted pattern shapes meet the quality requirements and identifies any residual failures or weak patterns (‘hotspots’). Once the mask is available, a second verification step, now looking at patterns on printed wafers, is performed to make sure that all critical patterns print to within the requested tolerances. Each of the steps in this flow can – and usually does – lead to corrective iterations to one of the previous steps. As the task of ensuring sufficient process margin is gradually becoming more difficult, with the ever decreasing pattern sizes, constraints are being increasingly defined on the type of patterns that can be allowed in the target layout itself (design restrictions), leading to a tendency toward more regular designs, an evolution that needs to be facilitated by the patterning technology and materials used. So the problem of ensuring good printability now also involves both layout and technology, and we will look into this aspect of the optimization problem as well.