lunduniversity.lu.se

Computer Science

Faculty of Engineering, LTH

Denna sida på svenska This page in English

Compiler projects fall 2020

EDAN70: Project in Computer Science

A Specialized B-Tree data structures for Datalog Evaluation in Java
Louise Adolfsson and Simon Tenggren
Abstract:
Today there is a high demand for Datalog engines to be able to handle large amounts of data quickly. By implementing a B-Tree in Java there can be significant improvements to its efficiency. In this paper we present and evaluate the Java implementation of a specialized B-Tree data structure. Our B-Tree handles parallel insertions and dense data. It uses a hint system for faster traversals in the B-Tree and has a optimistic read-write lock that allows for it to handle several threads at once efficiently. The B-Tree outperforms the TreeSet greatly and is just slightly better than the Concurrent SkipList Set in some cases. The B-Tree shows potential as a replacement for Java’s data structures from the results of the benchmarks.
(paper) (code)

Flow Based Bug Detection
Oskar Kari
Abstract:
Program analysis is an important tool in modern software developement. In this paper a program analysis tool that solves the redundant assignment problem will be described. This tool will be tested on a real program as well as on smaller test programs. The performance will be analysed and some suggestions for further work will be done.
(paper) (code)

ChocoPy compiler
Tobias Karlsson
Abstract:
The purpose of this essay is to investigate the possibility of using ChocoPy as the programming language when educating students on how to construct a compiler as well as comparing the performance of the ChocoPy compiler with a python compiler. The compiler for ChocoPy is implemented to generate assembly code, targeting X86. ChocoPy could be advantageous to use when teaching compilers since it is a simplified subset of Python. When comparisons were made between the ChocoPy compiler and python interpreter for a certain type of program, the result was that the ChocoPy compiler was between 10 and 20 times faster, depending on the size of the program. A ChocoPy compiler can be created in a compiler course since the resources and knowledge provided by the course is enough to handle all the problems that may arise.
(paper) (code)