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
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
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
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)