Skip to content

Commit 3780523

Browse files
committed
doc: mention more QuEra and bloqade
1 parent cbc6869 commit 3780523

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

docs/index.md

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,28 @@
11
# Kirin
22

3-
Kirin is the **K**ernel **I**ntermediate **R**epresentation **In**frastructure. It is a compiler
4-
infrastructure for building compilers for embedded domain-specific languages (eDSLs) that target
5-
scientific computing kernels.
3+
Kirin is the **K**ernel **I**ntermediate **R**epresentation **In**frastructure developed at [QuEra Computing Inc](https://quera.com). It is a compiler infrastructure for building compilers for embedded domain-specific languages (eDSLs) that target scientific computing kernels especially for quantum computing use cases where domain-knowledge in quantum computation is critical in the implementation of a compiler. This is also the infrastructure that powers the [Bloqade SDK](https://bloqade.quera.com).
64

75
## Features
86

9-
- MLIR-like dialects as composable python packages
7+
- [MLIR](https://mlir.llvm.org/)-like dialects as composable python packages
108
- Generated Python frontend for your DSLs
119
- Pythonic API for building compiler passes
12-
- Julia-like abstract interpretation framework
10+
- [Julia](https://julialang.org)-like abstract interpretation framework
1311
- Builtin support for interpretation
1412
- Builtin support Python type system and type inference
1513
- Type hinted via modern Python type hints
1614

1715
## Kirin's mission
1816

19-
Compiler toolchain for scientists. Scientists are building domain-specific languages (DSLs) for
20-
scientific purposes. Most scientists do not have any compiler engineering background. On the other hand,
21-
these DSLs are often high-level, and their instructions are usually slower than the low-level instructions
22-
and thus result in smaller programs. No need to generate high quality LLVM IR/native binary most of the time!
23-
So there are some chances to simplify terminologies, interfaces for the none-pros, while allowing good
24-
interactivity and fast prototyping.
17+
Kirin empowers scientists to build tailored embedded domain-specific languages (eDSLs) by adhering to three core principles:
2518

26-
For the interested, please read the [Kirin's Mission](blog/2024/11/11/kirins-mission/) blog post for more details.
19+
1. **Scientists First** Kirin prioritizes enabling researchers to create compilers for scientific challenges. The toolchain is designed *by* and *for* domain experts, ensuring practicality and alignment with real-world research needs.
20+
21+
2. **Focused Scope** Unlike generic compiler frameworks, Kirin deliberately narrows its focus to scientific applications. It specializes in high-level, structurally oriented eDSLs—optimized for concise, kernel-style functions that form the backbone of computational workflows.
22+
23+
3. **Composability as a Foundation** Science thrives on interdisciplinary collaboration. Kirin treats composability—the modular integration of systems and components—as a first-class design principle. This ensures eDSLs and their compilers can seamlessly interact, mirroring the interconnected nature of scientific domains.
24+
25+
For the interested, please read the [Kirin blog post](blog/2024/11/11/kirins-mission/) blog post for more details.
2726

2827
## Acknowledgement
2928

@@ -35,11 +34,17 @@ While the mission and audience may be very different, Kirin has been deeply insp
3534
- [JAX](https://jax.readthedocs.io/en/latest/) and [numba](https://numba.pydata.org/), the frontend syntax and the way it is designed.
3635
- [Symbolics.jl](https://github.com/JuliaSymbolics/Symbolics.jl) and its predecessors, the design of rule-based rewriter.
3736

37+
## Kirin and friends
38+
39+
Kirin has been used for building several eDSLs, including:
40+
41+
- the QASM2 eDSL and its extensions for neutral atom in [Bloqade](https://bloqade.quera.com)
42+
43+
We are in the process of open-sourcing more eDSLs built on top of Kirin.
44+
3845
## Quick Example: the `food` language
3946

40-
In this example, we will mutate python's semantics to
41-
support a small eDSL (embedded domain-specific language) called `food`.
42-
It describes the process of cooking, eating food and taking food naps after.
47+
For the impatient, we prepare an example that requires no background knowledge in any specific domain. In this example, we will mutate python's semantics to support a small eDSL (embedded domain-specific language) called `food`. It describes the process of cooking, eating food and taking food naps after.
4348

4449
Before we start, let's take a look at what would our `food` language look like:
4550

0 commit comments

Comments
 (0)