Active Projects
ExhaustiveMatching.Analyzer
ExhaustiveMatching.Analyzer adds exhaustive matching to C# switch statements.
Get compiler errors for missing cases in a switch statement. Mark which switch statements should have
exhaustiveness checking by throwing an exception in the default case. Exhaustiveness checking works not just
for enums, but for classes and interfaces. Turn them into
discriminated unions (aka sum types) by marking them
with the Closed
attribute and listing the cases. ExhaustiveMatching.Analyzer goes beyond what
other languages support by handling full inheritance hierarchies.
semver NuGet Package
I am a major contributor to the semver NuGet package. It is a SemVer implementation in .Net based on v2.0.0 of the spec found at semver.org.
VSON (Very Simple Object Notation)
VSON is a lightweight data-interchange format. It is a successor and superset of the popular JSON (JavaScript Object Notation) format. VSON improves on human readability and writablity, date and time support, Unicode handling and data portability.
Examples
Comparison of an Algorithm in Rust, C# and C++
This project implements the DFA minimization algorithm described in “Fast brief practical DFA minimization” by Valmari (2011) in Rust and C# in order to evaluate Rust as compared to C# and C++.
Archived Projects
Adamant Language Blog
The Adamant programming language blog contains posts on topics relevant to the Adamant language and programming language creation.
Adamant Programming Language
Adamant was to be a general-purpose language with high performance, deterministic safe resource management, and guaranteed thread safety.
- Draft Language Reference
- Alpha Compiler Source Code
Adamantworks.Amazon.DynamoDB
The Adamantworks DynamoDB alternative API. Provides an API for DynamoDB in .NET that follows .NET conventions and provides higher-level abstractions.