Lazo Implementation

Pfister, Remo and Thurariratnam, Keerthikan (2019) Lazo Implementation. Bachelor thesis, HSR Hochschule für Technik Rapperswil.

Full text not available from this repository.

Abstract

Introduction: This bachelor thesis focuses on implementing a compiler for the Lazo programming language. Lazo language is designed to write smart contracts for the Bazo blockchain and was specified during our previous term project. The Bazo blockchain is a research blockchain to experiment with different mechanisms and algorithms.

Approach: Before implementing the language, the language specification and the virtual machine documentation are thoroughly analyzed. Then, the compiler was implemented with the Minimum Viable Product (MVP) approach. Initially, core features were implemented, which are crucial to judge the feasibility of the Lazo language and the capability of Bazo VM to run the Lazo program. After that, more language features were added.
It was decided to use an agile approach to build the compiler. Hence, the features to implement were decided and prioritized over the course of the project in consultation with the supervisor.

Result: As a result, the four-phase compiler, consisting of a lexer, parser, type checker and code generator, was created with all the core features and some additional features such as array, struct, map etc. To verify that the compiler and virtual machine are both compatible, the virtual machine was used to test the generated code and it was possible to find and resolve or report critical bugs in the existing Bazo virtual machine and miner.
The virtual machine was extended with new functionality (opcodes) and existing opcodes were also modified and optimized. Several quality measures were introduced, such as linting, static code analysis, unit and integration tests, code reviews etc.

Item Type: Thesis (Bachelor)
Subjects: Topics > Software > Refactoring
Topics > Internet Technologies and Applications > Distributed Computing
Area of Application > Development Tools
Technologies > Programming Languages
Technologies > Virtualization
Divisions: Bachelor of Science FHO in Informatik > Bachelor Thesis
Depositing User: OST Deposit User
Contributors:
Contribution
Name
Email
Thesis advisor
Bocek, Thomas
UNSPECIFIED
Date Deposited: 30 Sep 2019 18:20
Last Modified: 30 Sep 2019 18:20
URI: https://eprints.ost.ch/id/eprint/789

Actions (login required)

View Item
View Item