Matthias Springer

Learn More
We present ContextAmber, a framework for context-oriented programming, in Amber Smalltalk, an implementation of the Smalltalk programming language that compiles to JavaScript. ContextAmber is implemented using metaprogramming facilities and supports global, object-wise, and scoped layer activation. Current COP implementations come at the expense of(More)
We present Matriona, a module system for Squeak, a Smalltalk dialect. It supports class nesting and parameterization and is based on a hierarchical name lookup mechanism. Matriona solves a range of modularity issues in Squeak. Instead of a flat class organization, it provides a hierarchical namespace, that avoids name clashes and allows for shorter local(More)
We study a class of graph analytics SQL queries, which we call relationship queries. These queries involving aggregation, join, semijoin, intersection and selection are a wide superset of fixed-length graph reachability queries and of tree pattern queries. We present real-world OLAP scenarios, where efficient relationship queries are needed. However, row(More)
We report generation of femtosecond-laser-induced shockwaves at an air-water interface by millijoule femtosecond laser pulses. We document and discuss the main processes accompanying this phenomenon, including light emission, development of the ablation plume in the air, formation of an ablation cavity, and, subsequently, a bubble developing in water. We(More)
Class extensions are frequently used in programming languages such as Ruby and Smalltalk to add or change methods of a class that is defined in the same application or in a different one. They suffer from modularity issues if globally visible: Other applications using the same classes are then affected by the modifications. This paper presents a(More)
This paper presents implementation and optimization techniques to support objects in Ikra, an array-based parallel extension to Ruby with dynamic compilation. The high-level goal of Ikra is to allow developers to exploit GPU-based high-performance computing without paying much attention to intricate details of the underlying GPU infrastructure and CUDA.(More)
Most efficient implementations of dynamically-typed programming languages use polymorphic inline caches to determine the target of polymorphic method calls, making method lookups more efficient. In some programming languages, parameters specified in method signatures can differ from arguments passed at call sites. However, arguments are typically specific(More)
We present a method by which the spectral intensity of an ultrafast laser pulse can be accumulated at selected frequencies by a controllable amount. Using a 4-f pulse shaper we modulate the phase of the frequency components of a femtosecond laser. By inducing femtosecond filamentation with the modulated pulse, we can concentrate the spectral amplitude of(More)