Martin Sulzmann has a blog
This blog is mainly about my professional activaties in computer science. Check out my youtube account for what I'm up to in my spare time.
View ArticlePartial Derivative Regular Expression Pattern Matching
Regularexpressionpatternmatchingasfoundindomain-specificlanguagessuchasXDuce,CDuce,XHaskellisahighlyusefulconceptbutisnotcommonlysupportedbymainstreamlanguages.BelowIgiveanelementaryHaskellimplementati...
View ArticleActors with Multi-Headed Receive Clauses
The actor model provides high-level concurrency abstractions to coordinate simultaneous computations by message passing. Languages implementing the actor model such as Erlang commonly only support...
View ArticleMulti-set rewrite rules with guards and a parallel execution scheme
Latest news/updates Sat Dec 6 18:34:20 CET 2008: Parallel join pattern with guards and propagation extension built on top of multisetrewrite. Check here here for more information. Wed Nov 12 11:08:47...
View ArticlePlaying with regular expressions: Intersection
We implement symbolic intersection among regular expressionby adapting Antimirov's regular expression rewriting algorithm.By symbolic we mean that regular expression are not transformed to automata. We...
View ArticleFrom Join to UPPAAL and back
I'm currently teaching a course using UPPAAL for modelling and anlysis of communicating FAs (finite automatas). In this post, I will show some interesting connections between communicating FAs and...
View ArticleGossiping girls
In my class on UPPAAL (a modeling and analysis tool for communicating FAs aka CFAs), I gave the following (classic) exercise:A number of girls initially know one distinct secret each. Each girl has...
View ArticleThe BaggerProblem
Description There are n number of bags which can be filled up with either large, medium or small items. The weight of items of a specific kind is fixed. The maximum weight carried by a bag is...
View ArticleActor versus Join Concurrency
This post tries to shed some light on the differences and commonalities between actor and join style concurrency and explains its connection to multi-set rewrite rules.Recently, I've published two...
View ArticleTransactional boosting
This post is about software transactional memory (STM) and how to retain its benefits (composability) while trying to minimize its drawbacks (poor performance due to false conflicts). Software...
View ArticleHigh-level Software Transaction Protocols
The topic is how to built high-level (composable) software transaction protocols on top of highly-concurrent, low-level data structures which are not composable. Yes, this is sort of a continuation of...
View ArticleTransactions in Constraint Handling Rules
A paper to be presented at ICLP'08, Udine, Italy, December'08. My co-author Tom Schrijvers will give the presentation but here's already a draft of the talk.If you've followed my previous posts on...
View ArticleXHaskell
My PhD student Kenny has just submitted his thesis on XHaskell - Adding Regular Expression Type to Haskell.You can download the latest XHaskell implementation and Kenny's thesis draft here
View ArticleSTM with control: Communication for retrying transactions
While working on the join pattern with guards and propagation implementation, we (my PhD student Edmund and me) came across an interesting problem which points out the current limited...
View ArticleConcurrent Goal-Based Execution of Constraint Handling Rules
We (my PhD student Edmund and me) have just submitted a paper with this title to Theory and Practice of Logic Programming. The paper complements our PPDP'08 paper on parallel Constraint Handling Rules...
View ArticleParallel Join Patterns with Guards and Propagation
A paper in the works for quite some time. You can download the latest version here.Here's what the abstract says:Join patterns are a powerful concurrency abstraction to coordinate multiple events. We...
View ArticleEquality, containment and intersection among regular expressions via symbolic...
Three standard regular expression operationsdata RE a where Phi :: RE a -- empty language Empty :: RE a -- empty word L :: a -> RE a -- single letter taken from alphabet a Choice :: RE a -> RE a...
View ArticleTag-free Combinators for Binding-Time Polymorphic Program Generation
Peter Thiemann and I have written a paper on (off-line) partial evaluation for polymorphic languages using GHC's advanced typing features.The source code of the combinators is available here.Here's the...
View ArticleRegular Expression Matching using Partial Derivatives
Regular expression matching is a classical and well-studied problem.Prior work applies DFA and Thompson NFA methods for the constructionof the matching automata. We propose the novel use of derivatives...
View ArticleHaskell Actors
There's some recent interest about Actor-style concurrency in the Haskell context, e.g. see haskell-mpiErlangInHaskellMy own work in this context, see actor, is orthogonal to the above mentioned...
View ArticleConstructive Finite Trace Analysis with Linear Temporal Logic
We consider linear temporal logic (LTL) for run-time testing over limited time periods. The technical challenge is to check if the finite trace produced by the system under test matches the LTL...
View ArticleRegular Expression Sub-Matching using Partial Derivatives
Regular expression sub-matching is the problem of finding for each sub-part of a regular expression a matching sub-string. Prior work applies Thompson and Glushkov NFA methods for the construction of...
View ArticleModel Checking DSL-Generated C Source Code
We report on the application of SPIN for model-checking C source code which is generated out of a textual domain-specific language (DSL). We have built a tool which automatically generates the...
View ArticleRegular Expression Sub-Matching using Partial Derivatives
Here's our paper and the talk presented at PPDP'12. There's quite a bit of recent interest in the use of derivatives for matching and parsing, e.g. see the works by Owens/Reppy/Turon on...
View ArticleNon-injective type functions and ambiguous types
> {-# LANGUAGE ScopedTypeVariables, MultiParamTypeClasses, FunctionalDependencies, TypeFamilies #-}Type inference for standard Hindley/Milner boils down tosolving simple unification (Herbrand)...
View Article