# terrajobst/minsk

This repo contains Minsk, a handwritten compiler in C#. It illustrates basic concepts of compiler construction and how one can tool the language inside of an IDE by exposing APIs for parsing and type checking.

Repository: https://github.com/terrajobst/minsk
Canonical: https://ross.abutalabs.com/products/minsk
Homepage: http://minsk-compiler.net
Language: C#
License: MIT
License Family: permissive
Last push: 2021-07-23T19:37:36+00:00

## Health v2 (maintenance only)
Score: 32/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 35, longevity 100
- inputs: {"age_days": 2891, "days_push": 1867, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1124, forks 178 (observed 2026-08-28T04:03:40.888008+00:00)

## What it is
Minsk is a handwritten compiler written in C# that illustrates basic compiler construction concepts, inspired by Roslyn. It exposes APIs for parsing and type checking to demonstrate how a language can be tooled inside an IDE.

## Use cases
- learn how compilers work by reading a small handwritten implementation
- study lexing, parsing, binding, and type checking in C#
- build a toy programming language with an IDE-like tooling experience
- follow along with a live-coded compiler video series
- understand how Roslyn-style compiler APIs are structured

## When to choose
- you want an educational, readable codebase for learning compiler construction
- you prefer C#/.NET and want a Roslyn-inspired example
- you want to see how parsing and type-checking APIs enable IDE tooling

## When to avoid
- you need a production-ready compiler or language toolchain
- you want a high-performance or feature-complete language implementation
- you need a maintained project with active releases

## Facets
- artifact type: learning-resource
- maturity: maintenance
- function: compiler, parser, interpreter, type-system, programming-language, developer-tools
- domain: compilers, programming-languages, parsers, education, developer-tools
- platform: dotnet, cross-platform, cli
- tags: compiler-construction, roslyn-inspired, educational, live-coding, csharp, ide-tooling

## Member repositories
- terrajobst/minsk (main) score 32

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:40.888008+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:39:51.730114+00:00, confidence not recorded.
  - readme: https://github.com/terrajobst/minsk (fetched 2026-08-28T04:03:40.888008+00:00, sha e0d02d4fc63b)
  - homepage: http://minsk-compiler.net (fetched 2026-08-29T12:44:04.112326+00:00, sha 34dff894b9cd)
- Data as of 2026-08-30T08:39:29.467469+00:00.
