Aleksander Kosicki - Abstract Of Master's Thesis

  • Uploaded by: Aleksander
  • 0
  • 0
  • April 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Aleksander Kosicki - Abstract Of Master's Thesis as PDF for free.

More details

  • Words: 502
  • Pages: 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 concepts 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 .

Related Documents


More Documents from "Micheal Axelsen"