kharp: Trình thông dịch ngôn ngữ K phiên bản 3 viết bằng C#
kharp là một trình thông dịch toàn diện cho ngôn ngữ lập trình K phiên bản 3, một ngôn ngữ lập trình vector thuộc họ APL, được xây dựng trên nền tảng C#. Dự án hiện đã đạt trạng thái Beta với đầy đủ các tính năng cốt lõi, bao gồm hệ thống FFI để tích hợp sâu với hệ sinh thái .NET.

kharp: Trình thông dịch ngôn ngữ K phiên bản 3 viết bằng C#
kharp là một dự án mã nguồn mở nhằm mục đích triển khai đầy đủ ngôn ngữ lập trình K phiên bản 3. Đây là một ngôn ngữ lập trình vector (vector programming) thuộc họ APL, nổi tiếng với cú pháp ngắn gọn và khả năng xử lý dữ liệu mảng cực kỳ mạnh mẽ. Dự án được viết bằng ngôn ngữ C# và chạy trên nền tảng .NET 8.0.
Tính năng nổi bật
Trình thông dịch này đã triển khai toàn bộ các tính năng cốt lõi được mô tả trong K Reference Manual:
- Hệ thống dữ liệu: Hỗ trợ đầy đủ các kiểu dữ liệu nguyên thủy (Integer, Float, Character, Symbol) và các kiểu tập hợp (List, Dictionary, Tensor).
- Toán tử và Phó từ (Adverbs): Cung cấp hệ thống các toán tử vector và các phó từ lặp (Over, Scan, Each, Each-Left, Each-Right, Each-Pair) cho phép viết mã cực kỳ súc tích.
- Hệ thống hàm: Hỗ trợ hàm ẩn danh (anonymous functions), phép chiếu (projections) và các câu điều kiện.
- I/O và IPC: Hỗ trợ đọc/ghi file, truyền thông liên tiến trình (IPC) đầy đủ với các động từ 3: và 4:.
Tích hợp .NET và FFI
Một trong những điểm nâng cấp quan trọng nhất của kharp so với ngôn ngữ K gốc là khả năng tương tác sâu với Microsoft .NET thông qua Giao diện Hàm Ngoại (Foreign Function Interface - FFI).
- Gọi hàm .NET: Người dùng có thể gọi các phương thức của .NET trực tiếp từ mã K.
- Cây
_dotnet: Các thư viện và kiểu dữ liệu .NET được tải vào cây toàn cục_dotnetđể dễ dàng truy cập. - Quản lý đối tượng: Hệ thống hỗ trợ khởi tạo, sử dụng và hủy bỏ đối tượng .NET một cách tự động hoặc thủ công thông qua
_dispose.
Cải tiến so với K phiên bản 3
Dựa trên nền tảng .NET, kharp mang lại một số cải tiến và tính năng mở rộng:
- Số nguyên 64-bit: Hỗ trợ đầy đủ số nguyên dài (long integers) với hậu tố
j. - Phân tích và thực thi (Parse & Eval): Cung cấp các động từ
_parsevà_evalđể thao tác trực tiếp trên cây cú pháp. - Hệ thống gợi ý (Hint System): Cho phép kiểm soát việc chuyển đổi kiểu dữ liệu giữa K và .NET thông qua
_gethintvà_sethint. - An toàn bộ nhớ: Nhờ chạy trên .NET VM, kharp tận dụng được bộ thu gom rác (Garbage Collector), giúp tránh các lỗi truy cập bộ nhớ thường thấy trong các triển khai native.
Trạng thái và Hiệu suất
Dự án hiện đang ở trạng thái Beta. Tác giả tuyên bố rằng toàn bộ bộ kiểm thử (test suite) gồm 1549 bài kiểm tra đều đã vượt qua với tỷ lệ thành công 100%.
Về hiệu suất, mặc dù không thể cạnh tranh tốc độ với các bản triển khai native của K do chi phí của môi trường quản lý (managed environment), kharp bù đắp bằng sự an toàn, khả năng mở rộng và hệ sinh thái phong phú của .NET.
Cách cài đặt và Chạy
Để sử dụng kharp, bạn cần cài đặt .NET 8.0 SDK.
Các bước chạy nhanh trên terminal:
# Clone kho chứa mã nguồn
git clone https://github.com/ERufian/ksharp.git
cd ksharp/K3CSharp
# Chạy trình thông dịch
dotnet run
Dự án được cấp phép theo MIT License với Commons Clause, cho phép sử dụng và sửa đổi tự do (bao gồm cả trong sản phẩm thương mại) miễn là có ghi nhận nguồn tác giả và không bán trực tiếp phần mềm này.
Kết luận
Với việc hoàn thiện các tính năng cốt lõi và khả năng kết nối mạnh mẽ với .NET, kharp là một công cụ hấp dẫn cho những nhà phát triển muốn khám phá sức mạnh của ngôn ngữ K trên nền tảng hiện đại. Đây là một bước tiến thú vị trong việc bảo tồn và phát triển các ngôn ngữ lập trình mảng cổ điển.
Bài viết liên quan

Công nghệ
Cerebras, đối tác thân thiết của OpenAI, sẵn sàng cho đợt IPO kỷ lục định giá tới 26,6 tỷ USD
04 tháng 5, 2026

Công nghệ
Microsoft giới thiệu Surface Pro 12 và Surface Laptop 8: Sức mạnh chip Intel, giá thành gây sốc
19 tháng 5, 2026

Công nghệ
Substrate (YC S24) tuyển dụng Technical Success Manager cho nền tảng AI chuyên xử lý thanh toán y tế
13 tháng 5, 2026
