You are on page 1of 1

Dynamic Roles and Desing by Contract proposal for the Java language

This Master’s Thesis consists of a proposal and an implementation of two separate con-
cepts regarding programming languages.

The first of the concepts respects some of the Design By Contract (DbC) principles.
Author reasons that classes as programming languages abstractions can be attributed with
corresponding finite automatons which are implicitly implemented by the given classes. One
can say the classes implements finite automatons on the design level. The uniqueness of the
proposal rest upon the possibility of an explicit definition of the finite automaton inside the
class body. Such a definition allows to treat finite automaton as an element of the class
contract which turns out to be very beneficial.
The second concept concerns so called dynamic roles. The author specifies the meaning of
the dynamic roles phrase for purpose of this work. According to the the author, the concepts
describes dynamic capabilities of objects that allows them adopting various interfaces and
their functionalities in a dynamic way. During the compilation time it might not be known
what interfaces would be used by the given object. It is worth to note that the described
mechanism is not just a dynamic typing. Namely, systems with dynamic typing simply
postpone the type check until the run-time, while the given variable is still expected to hold
value of some specific type. Though, it does not mean that the given variable could adopt
it’s value to the expected type.

The second part of the work is the implementation of the previously discussed concepts. It
involves formal language specification and tool that allows the practical usage of the defined
language. The word “tool” means mostly translator for the language accompanied by the
additional libraries and programs (e.g. error localizator).
Since the second part of the work has strictly practical character and it’s purpose is
to merely demonstrate the presented concepts, the author decided to rely on the existing
programming language. Java was chosen as that base language. That results in a creation of
a new language called JavaBC. The choice of Java does not denote that author’s proposals are
constrained to that specific language or have some special connection with it. One using simple
abstraction could refer presented ideas to any object-orientated language. Still, the technical
details of syntax and semantics are based on Java as a surrounding language. The author
especially places emphasis on the integration with Java and demands his Java extension to
be strict Java superset so that every valid Java program preserves its syntactic and semantic
validity when interpreted as a program written in JavaBC.

Because of Java being used as a base language, this work can be viewed from two different
perspectives. First come the theoretical proposal where the presented concepts play main
roles and the utilization of Java seems to be only an auxiliary means. Second, the work can
be viewed as a proposal of Java extension where the language is enriched with Design by
Contract and dynamic roles capabilities .

You might also like