Resolving Ambiguity in Text Rewriting

Strategies for resolving conflicts that occur when two replacement substrings overlap.

Finite-State Transducers for Text Rewriting

An overview from a set-theoretic perspective and constructions for powerful, linear-time text rewriting.

C# Channels - Async Data Pipelines

How to implement an assembly line concurrency model in .NET using channels.

C# Channels - Timeout and Cancellation

Explore cancellation and timeout techniques with channels.

C# Channels - Publish / Subscribe Workflows

Concurrency patterns in .NET using channels.

A Practical Guide to State Machines

Express application logic in a concise and declarative way using state machines and C#‘s pattern matching.

Translation using Syntactic Rules

How to describe a formal language and build a translator with ANTLR and JavaScript.

Computing Ranges in Constant Time

Range Minimum Query with Sparse Table and Dynamic Programming.

Gödel's System T in TypeScript

Experimenting with a rudimentary type system that ensures the programs always terminate.

On Recursive Functions

The Y combinator or how to implement recursion in a language that doesn’t support it.