---
format: "aidr-story-markdown/v1"
id: "fb5f137eb5a89350948a1868c5de9899a2eb5fa2d5858cc16f69054136338cec"
canonical_url: "https://aidr.today/fb5f137e?lang=vi"
title: "Compile-Time Dependent Types"
lang: "vi"
requested_lang: "vi"
available_langs: ["en","vi"]
translation_fallback: null
fallback_fields: []
published_at: "2026-10-27T14:40:12.000Z"
category: "Open Source"
topics: ["coding","open-source"]
source_urls: ["https://thenumb.at/Syl-Intro/","https://lobste.rs/s/d09iy3/compile_time_dependent_types"]
summary: "Dường như không thể tránh khỏi việc các kiểu phụ thuộc thời gian biên dịch sẽ xuất hiện trong lập trình hệ thống. C++ có templates và constexpr. Rust có const generics. Zig có comptime. Thậm chí cả C cũng có _Generic. Tuy nhiên, những tính năng này thường bị hạn chế, thiếu hệ thống kiểu đúng đắn, hoặc cả hai. Tôi đang phát triển Syl, một ngôn ngữ lập trình mãi lắm mã hóa tính toán thời gian biên dịch trong một hệ thống kiểu modal. Syl chủ yếu được lấy cảm hứng từ công trình của András Kovács về lý thuyết kiểu hai tầng, cũng như kế hoạch cho OxCaml. Trình biên dịch Syl có thể tìm thấy trên GitHub. Trong Syl, mọi giá trị đều có một chế độ đi kèm với một kiểu. Các chế độ mô tả các tính chất của giá trị độc lập với kiểu của chúng. Ví dụ, OxCaml sử dụng các chế độ để chỉ ra liệu một giá trị có được sở hữu duy nhất, có thể được ghi vào, có thể được gửi đến một luồng khác, v.v. Syl có hai trục chế độ: staticity và erasure. Trên trục staticity, một giá trị có thể là static hoặc dynamic. Trên erasure, giá trị đó có thể là erased hoặc unerased. Ví dụ, các hằng số là static unerased, vì chúng rõ ràng là có thể biết được cả ở thời gian biên dịch và thời gian chạy. Bạn có thể kiểm tra bằng các…"
---

# Compile\-Time Dependent Types

> [Open the canonical story](<https://aidr.today/fb5f137e?lang=vi>)

**Published:** 2026-10-27T14:40:12.000Z
**Category:** Open Source
**Topics:** coding, open\-source

## Summary

Dường như không thể tránh khỏi việc các kiểu phụ thuộc thời gian biên dịch sẽ xuất hiện trong lập trình hệ thống\. C\+\+ có templates và constexpr\. Rust có const generics\. Zig có comptime\. Thậm chí cả C cũng có \_Generic\. Tuy nhiên, những tính năng này thường bị hạn chế, thiếu hệ thống kiểu đúng đắn, hoặc cả hai\. Tôi đang phát triển Syl, một ngôn ngữ lập trình mãi lắm mã hóa tính toán thời gian biên dịch trong một hệ thống kiểu modal\. Syl chủ yếu được lấy cảm hứng từ công trình của András Kovács về lý thuyết kiểu hai tầng, cũng như kế hoạch cho OxCaml\. Trình biên dịch Syl có thể tìm thấy trên GitHub\. Trong Syl, mọi giá trị đều có một chế độ đi kèm với một kiểu\. Các chế độ mô tả các tính chất của giá trị độc lập với kiểu của chúng\. Ví dụ, OxCaml sử dụng các chế độ để chỉ ra liệu một giá trị có được sở hữu duy nhất, có thể được ghi vào, có thể được gửi đến một luồng khác, v\.v\. Syl có hai trục chế độ: staticity và erasure\. Trên trục staticity, một giá trị có thể là static hoặc dynamic\. Trên erasure, giá trị đó có thể là erased hoặc unerased\. Ví dụ, các hằng số là static unerased, vì chúng rõ ràng là có thể biết được cả ở thời gian biên dịch và thời gian chạy\. Bạn có thể kiểm tra bằng các…

## Sources

- [Story source](<https://thenumb.at/Syl-Intro/>)
- [Discussion](<https://lobste.rs/s/d09iy3/compile_time_dependent_types>)

