Ad

A. de Groot

info

Please Note

2 records found

Master thesis (2025) - A. de Groot, J.G.H. Cockx, M.A. Costea, A.S. Zwaan, J.B. Dönszelmann
The Statix meta-language is a domain-specific language that is used to describe specifications for type systems using high-level declarative inference rules. Type checkers
can be automatically generated from these rules, saving one from the burden of writing
it manually. One of the problems with these generated type checkers is performance;
handwritten type checkers usually outperform the generated ones. Statix uses the formalism of scope graphs to represent name binding, and querying these scope graphs is
known to be the main performance bottleneck. Improving the performance of queries
means improving the performance of the type checkers generated by Statix.

In this thesis, we propose a memoised variant of the current state-of-the-art query
resolution algorithm that memoises data encountered during graph traversal, reducing
future queries to a cache lookup. We also identify common patterns in real-world scope
graphs and link those to the name binding structure that created them. We construct a
synthetic dataset with these patterns that is used to evaluate query resolution algorithms
with microbenchmarks. This gives us more granular information on what name binding
structures benefit most, if at all, from memoisation.

The results of these benchmarks are the performance differences between the memoised algorithm and the current state-of-the-art algorithm per identified pattern. They
show that our proposed algorithm breaks even in terms of performance after only two
queries for most patterns. Furthermore, we demonstrate that our proposed algorithm
and the current state-of-the-art provide identical efficacy. The tradeoffs are twofold: the
cache increases the memory usage of query resolution significantly and the query resolution parameters were tweaked to make caching possible, but less versatile. The changed
query parameters’ limitations should only be theoretical however, the Statix specification
for Java 1.5 has 23 out of 25 fully compatible queries. ...
60 million people around the world have epilepsy, which is a neurological disorder that severely impacts their day to day life negatively. Currently available methods to reduce the effects of epilepsy are either ineffective or require expensive and invasive surgery. A new method has been found that can suppress epilepsy without the need of surgery, called Transcutaneous Vagus Nerve Stimulation (t-VNS). Detecting epileptic seizures is important for this method, as the stimulation should only be used during a seizure. Traditionally, detecting epilepsy is done using scalp-Electroencephalography (EEG), which requires a controlled environment and is hard to use in day to day life. Recently, advancements have been made in ear-EEG, which allows for EEG outside a controlled environment. This study focuses on detecting epilepsy using ear-EEG. Ear-EEG was simulated using scalp-EEG channels close to the ear. After low-pass filtering and downsampling the results were obtained using features obtained from the Wavelet Transform (WT) and Fourier Transform (FT) in combination with several Machine Learning (ML) models; these being a random forest, a Support Vector Machine (SVM), and a Neural Network (NN). Furthermore PCA was also applied to the features, with a threshold of 0%, 95% and 99%. The results clearly show that using the WT outperforms features from the FT. Furthermore, out of the three models, the NN consistently has the best sensitivity for detecting seizures. The best sensitivity was achieved using WT features with a NN and a threshold of 99% for the PCA. The accuracy and sensitivity are 99.3% and 83.5% respectively, which is comparable to previous ear-EEG based research detecting epileptic seizures.
...