Boris Bokowski

Learn More
The sharing and transfer of references in object-oriented languages is difficult to control. Without any constraint, practical experience has shown that even carefully engineered object-oriented code can be brittle, and subtle security deficiencies can go unnoticed. In this paper, we present inexpensive syntactic constraints that strengthen encapsulation by(More)
Sharing and transfer of object references is difficult to control in object-oriented languages. Unconstrained sharing poses serious problems for writing secure components in object-oriented languages. In this paper, we present a set of inexpensive syntactic constraints that strengthen encapsulation in object-oriented programs and facilitate the(More)
A number of proposals have been made as to how Java can be changed to support parameterized types. We present a new proposal that does not try to provide more powerful constructs or cleaner semantics, but instead minimizes the changes that need to be made to existing Java compilers. In particular, we found that changing only one method in Sun's Java(More)
Usually, programming languages are used according to conventions and rules. Although general rules can be enforced by lint-like tools, there is a large class of rules that cannot be built into such tools because they result from particular design decisions or the reuse of existing software. This paper presents a system, called CoffeeStrainer, that(More)
It is generally desirable to detect program errors as early as possible during software development. Statically typed languages allow many errors to be detected at compile-time. However, many errors that could be detected statically cannot be expressed using today’s type systems. In this paper, we describe a meta-programming framework for Java which allows(More)
A framework for programming graphical user interfaces (GUIs), called PIDGETS++, is presented. PIDGETS++ enables arbitrary device-independent PostScript graphics descriptions to be composed and manipulated as structured C++ objects. Not only can graphics descriptions be displayed in windows, additionally, they can be equipped with handlers which are invoked(More)
In object-oriented frameworks, the interactions between objects are often complex and difficult to understand. In this paper, “interaction protocols” are introduced as a means to describe object interactions. The interface definition language "IPDL", an extension of OMG’s IDL, is introduced for specifying object interactions. Besides making objectoriented(More)
Interactions between objects are often complex and difficult to understand. In this paper, "interaction protocols" are introduced as a means to describe object interactions on several levels of abstraction. Besides making objectoriented system descriptions more readable by explicitly representing interobject behavior, interaction protocols can be used to(More)