Abstract
In this paper we shall study scope issues in programming languages, from the standard binding techniques and philosophies of early languages, to the recent work in data encapsulation. First we will study the fundamental concepts of binding, then see how they appeared in early languages. The scope problems in these languages made clear the need for additional program structuring tools, leading to the development of data encapsulation mechanisms. We shall study the scope properties of data capsules, and compare the encapsulation philosophies of several modern languages. We shall use the notion of abstract data types to study modern scope issues, and to survey recent advances in several scope- related areas. Finally we shall compare the contrast several languages, both old and new, by studying solutions in each of them to a common programming problem.