This thesis describes the programming language Atheris, which was created as an upgrade of PINS, and its compiler. PINS is a learning programming language for which the compiler is implemented during the course 'Compilers and Virtual machines'. In this thesis, programming languages and compilers are briefly explained along with their purpose. Modern practices for the development of compilers are examined as well as their structure and commonly faced problems. The core of this thesis is an extension of the existing compiler, using components which were not part of the curriculum for the afore-mentioned course. The main focus was on object-oriented components. Among these, programming language Atheris supports enumerations, tuples, classes and interfaces, and it even has a completely changed syntax. Throughout the thesis, the extensions and their implementation are fully described. The performance of Atheris is tested on practical cases. The implementation speed was measured and compared with the basic language PINS and also with Python for reference.
|