การเรนเดอร์th-TH

แฟบเบอร์ (Faber) — ภาษาโปรแกรมเชิงแพ็กเกจ

พร้อมสำหรับเอเจนต์

If you are an AI agent: start at /llms.txt, then read /agents/index.md and pick a skill from /.well-known/agent-skills/. Humans: use Install and Examples.

Faber เป็นภาษาโปรแกรมแบบมุ่งเน้นแพ็กเกจ ซึ่งใช้คำศัพท์เชิงพฤติกรรมแบบละติน ไวยากรณ์แบบ regular ขนาดเล็ก และระบบชนิดข้อมูลแบบสถิติโดยให้ชนิดข้อมูลเป็นหลัก ซอร์สโค้ดจะถูกคอมไพล์ผ่านคอมไพเลอร์ Radix ให้เป็น Rust ที่ตรวจสอบได้และไบนารีเนทีฟ คุณสมบัติทางสถาปัตยกรรมที่กำหนดเอกลักษณ์ของภาษานี้คือ ความหมายอยู่ในแกนเชิงความหมาย — HIR (การแทนค่าระดับกลางขั้นสูง) — ไม่ได้ผูกติดกับรูปแบบการแสดงผลใดรูปแบบหนึ่ง

ชื่อ Faber มาจากคำละตินที่หมายถึง ผู้สร้าง หรือ ช่างฝีมือ คอมไพเลอร์มีชื่อว่า Radix ซึ่งมาจากคำละติน ราก ภาษานี้พัฒนาโดย Ian Zepp และเผยแพร่ภายใต้สัญญาอนุญาต MIT

เพิ่งเริ่มใช่ไหม? เริ่มจาก ติดตั้งและดาวน์โหลด จากนั้นทำตามลำดับในเส้นทางเริ่มต้น: Hello, คำสั่ง และ โปรเจกต์

ดาวน์โหลด Faber 1.2.0#

รุ่นปัจจุบัน: Faber 1.2.0 (แท็ก faber-v1.2.0) มีไฟล์เก็บถาวร CLI ที่คอมไพล์ไว้ล่วงหน้าสำหรับ macOS และ Linux ให้แตกไฟล์ไบนารี faber-v1.2.0-<target-triple>/faber แล้ววางไว้ใน PATH

แพลตฟอร์มไฟล์เก็บถาวรchecksum
macOS arm64 (Apple Silicon)faber-v1.2.0-aarch64-apple-darwin.tar.gzsha256
Linux x64 (glibc)faber-v1.2.0-x86_64-unknown-linux-gnu.tar.gzsha256

การติดตั้งแบบรวดเร็ว (ตัวอย่าง macOS arm64):

curl -fsSL -o faber.tgz \
  https://github.com/faberlang/releases/releases/download/faber-v1.2.0/faber-v1.2.0-aarch64-apple-darwin.tar.gz
curl -fsSL -o faber.tgz.sha256 \
  https://github.com/faberlang/releases/releases/download/faber-v1.2.0/faber-v1.2.0-aarch64-apple-darwin.tar.gz.sha256
expected=$(awk '{print $1}' faber.tgz.sha256)
actual=$(shasum -a 256 faber.tgz | awk '{print $1}')
test "$actual" = "$expected"
tar -xzf faber.tgz
sudo mv faber-v1.2.0-aarch64-apple-darwin/faber /usr/local/bin/
faber --version

บันทึกประจำรุ่นและไฟล์ทั้งหมด: github.com/faberlang/releases · faber-v1.2.0 ดูขั้นตอนทีละขั้น: คู่มือการติดตั้ง รายการประวัติทั้งหมด: รุ่นที่เผยแพร่

กระบวนทัศน์มุ่งเน้นแพ็กเกจ; การจัดขั้นตอนเชิงความหมาย
ระบบชนิดข้อมูลแบบสถิติโดยให้ชนิดข้อมูลเป็นหลัก; nullable ผ่าน T ∪ nihil
อักขระสัญลักษณ์← → ∴ ≡ ∪ ⇥
ผู้ออกแบบIan Zepp
เริ่มปรากฏครั้งแรก2025
คอมไพเลอร์Radix (Rust)
เลนการคอมไพล์แอปพลิเคชัน (HIR) · ระบบ (MIR)
เป้าหมายหลักRust → ไบนารีเนทีฟ
ภาษาสำหรับผู้อ่านเปิดใช้งานแล้ว 7 ภาษา (la, ar, hi, vi, th-TH, zh-Hans, zh-Hant)
ไลบรารีมาตรฐานNorma (norma:*)
สัญญาอนุญาตMIT

เริ่มต้นที่นี่#

เส้นทางผู้ใช้เนื้อหา
ติดตั้งมนุษย์ดาวน์โหลด, PATH, และ faber check ครั้งแรก
Helloมนุษย์สร้างและเรียกใช้ salve-munde
คำสั่งมนุษย์ + เอเจนต์วงจร CLI ประจำวัน: check, build, run, test, explain
โปรเจกต์มนุษย์ + เอเจนต์เปลี่ยนจาก hello-world ไปสู่แพ็กเกจจริง
ทัวร์ด่วนมนุษย์รูปแบบของภาษาในห้านาที
ตัวอย่างมนุษย์ + เอเจนต์แพ็กเกจจริง: แอป CLI, mailspace, GPU, corpus
/llms.txtเอเจนต์ดัชนีสำหรับเครื่อง — หากคุณเป็นโมเดล ให้เริ่มที่นี่
คู่มือเอเจนต์เอเจนต์วิธีเรียนรู้ Faber และส่งมอบแพ็กเกจ
ทักษะเอเจนต์เอเจนต์คู่มือทักษะเฉพาะด้าน (การติดตั้ง, ภาษา, ตัวอย่าง, …)

สถานะพอร์ทัล#

หน้า / นี้คือ Speculum Porta สำหรับเว็บไซต์ภาษาอังกฤษ เป็นจุดเริ่มต้นที่ไม่มีการระบุภาษา ซึ่งนำผู้ใช้ไปยังหน้าติดตั้งและหน้าเริ่มต้น นำเอเจนต์ไปยังพื้นผิวสำหรับเครื่อง และแสดงสถานะแพ็กภาษาต่าง ๆ โดยไม่เจรจาภาษาขณะทำงานในเบราว์เซอร์ ระยะที่ 7 เป็นหลักฐานการทำงานหลายภาษาเพียงบางส่วน ไม่ใช่เว็บไซต์ที่แปลครบถ้วนแล้ว: มีเพียง th-TH, zh-Hans, zh-Hant, vi, ar และ hi ที่มีส่วนเนื้อหาพอร์ทัล/หน้าเริ่มต้นที่เขียนไว้พร้อมหน้าคอร์ปัสที่สร้างขึ้น และเนื้อหาร้อยแก้วยังย้อนกลับไปใช้ภาษาอังกฤษ

ภาษาสถานะหมายเหตุ
laเว็บไซต์หลักที่ใช้งานจริงเว็บไซต์ภาษาอังกฤษ/ละตินที่สร้างขึ้นครบถ้วน
th-THหลักฐานบางส่วนของระยะที่ 7ส่วนเนื้อหาพอร์ทัล/หน้าเริ่มต้นพร้อมคอร์ปัสที่สร้างขึ้น; เนื้อหาร้อยแก้วยังใช้ภาษาอังกฤษสำรอง; เอกสารที่เขียนครบถ้วนยังรอดำเนินการ
zh-Hansหลักฐานบางส่วนของระยะที่ 7ส่วนเนื้อหาพอร์ทัล/หน้าเริ่มต้นพร้อมคอร์ปัสที่สร้างขึ้น; เนื้อหาร้อยแก้วยังใช้ภาษาอังกฤษสำรอง; เอกสารที่เขียนครบถ้วนยังรอดำเนินการ
viหลักฐานบางส่วนของระยะที่ 7ส่วนเนื้อหาพอร์ทัล/หน้าเริ่มต้นพร้อมคอร์ปัสที่สร้างขึ้น; เนื้อหาร้อยแก้วยังใช้ภาษาอังกฤษสำรอง; เอกสารที่เขียนครบถ้วนยังรอดำเนินการ
zh-Hantหลักฐานบางส่วนของระยะที่ 7ส่วนเนื้อหาพอร์ทัล/หน้าเริ่มต้นพร้อมคอร์ปัสที่สร้างขึ้น; เนื้อหาร้อยแก้วยังใช้ภาษาอังกฤษสำรอง; เอกสารที่เขียนครบถ้วนยังรอดำเนินการ
arหลักฐานบางส่วนของระยะที่ 7ส่วนเนื้อหาพอร์ทัล/หน้าเริ่มต้นพร้อมคอร์ปัสที่สร้างขึ้น; เนื้อหาร้อยแก้วยังใช้ภาษาอังกฤษสำรอง; เอกสารที่เขียนครบถ้วนยังรอดำเนินการ
hiหลักฐานบางส่วนของระยะที่ 7ส่วนเนื้อหาพอร์ทัล/หน้าเริ่มต้นพร้อมคอร์ปัสที่สร้างขึ้น; เนื้อหาร้อยแก้วยังใช้ภาษาอังกฤษสำรอง; เอกสารที่เขียนครบถ้วนยังรอดำเนินการ

ตัวอย่างที่ใช้งานได้ในภาษาละตินหลัก:

ฟังก์ชัน salve(ข้อความ nomen)  ข้อความ {
    คงที่ ข้อความ msg  "Salve, §!"(nomen)
    คืน msg
}

เริ่ม {
    คงที่ ข้อความ m  salve("munde")
    บันทึก m
}

ดู ภาษาสำหรับผู้อ่าน สำหรับโปรแกรมเชิงความหมายเดียวกันที่แสดงผลผ่านแพ็กภาษาไทย จีนตัวย่อ จีนตัวเต็ม อาหรับ ฮินดี และเวียดนาม

ภาพรวม#

Faber ออกแบบขึ้นจากแนวคิดหลักว่า การแทนค่าระดับกลางคือความจริง และไม่มีเป้าหมายหรือพื้นผิวภาษามนุษย์ใดได้รับสิทธิพิเศษ โปรแกรม Faber ที่เขียนด้วยคีย์เวิร์ดละตินสามารถแสดงผลเป็นคีย์เวิร์ดภาษาไทย อาหรับ หรือจีนได้ด้วยกลไกเดียวกับที่ใช้แสดงผลเป็น Rust, Go หรือ WebAssembly — เพราะ HIR คือแหล่งอำนาจ และเอาต์พุตทุกแบบคือ การแสดงผล ของ HIR

ภาษานี้เลือกสัญญาณสำคัญสามประการโดยตั้งใจ และทั้งสามทำงานร่วมกัน:

  • การประกาศโดยให้ชนิดข้อมูลเป็นหลัก — รูปแบบชี้ไปที่การผูกค่า: textus nomen ไม่ใช่ nomen: textus
  • คำเชิงพฤติกรรมแบบละติน — การประกาศ คำสั่ง และวงจรชีวิต: ฟังก์ชัน, ชนิด, คงที่, คืน, ถ้า
  • อักขระสัญลักษณ์เชิงโครงสร้าง — การไหลของค่าและจุดเชื่อมของชนิดข้อมูล: (ผูกค่า), (ชนิดข้อมูลผลลัพธ์), (ตัวเชื่อมปิดล้อม), (ความเท่ากัน), (ยูเนียน)

ผลลัพธ์คือซอร์สโค้ดที่มีรูปแบบไวยากรณ์คงที่ สามารถตรวจสอบ แปลงรูป และลดระดับได้โดยไม่สูญเสียความเข้าใจเจตนาของผู้อ่าน

เอกสาร#

ส่วนคำอธิบาย
ประวัติไทม์ไลน์การพัฒนา อิทธิพล และประวัติรุ่นที่เผยแพร่
รุ่นที่เผยแพร่ดาวน์โหลด Faber รุ่นล่าสุด รวมถึงแท็กและไบนารีที่เผยแพร่ทุกชุด
คุณลักษณะภาษาสำหรับผู้อ่าน เลนการคอมไพล์ คำศัพท์ละติน ระบบอักขระสัญลักษณ์ และหลักการออกแบบ
ไวยากรณ์เอกสารอ้างอิงฉบับสมบูรณ์: ชนิดข้อมูล ฟังก์ชัน การควบคุมการไหล ข้อผิดพลาด เจเนอริก และคอลเลกชัน
เครื่องมือไปป์ไลน์คอมไพเลอร์ Radix, Faber CLI, เป้าหมายการสร้างโค้ด และสคริปต์
ระบบนิเวศNorma, Cista, Triga, coreutils, AI Workbench และ corpus
Corpusหน้าคีย์เวิร์ดและโครงสร้างที่สร้างจากคอร์ปัสสาธารณะ
เอกสารอ้างอิงไวยากรณ์ EBNF เอกสารการออกแบบ และคลังโค้ด

ตัวอย่างแบบรวดเร็ว#

ฟังก์ชันอย่างง่ายที่สาธิตรูปแบบสำคัญของ Faber — พารามิเตอร์ที่ให้ชนิดข้อมูลเป็นหลัก ชนิดข้อมูลผลลัพธ์ด้วยอักขระสัญลักษณ์ ยูเนียนแบบ nullable และคำควบคุมแบบละติน:

functio divide(numerus a, numerus b) → numerus ∪ nihil {
    si b ≡ 0 ergo redde nihil
    redde a / b
}

การแสดงผลจริง#

ฟังก์ชัน divide ด้านบนจะแสดงผลด้วยแพ็กภาษาละตินเป็นค่าเริ่มต้น คอมไพเลอร์สามารถแสดงผลโปรแกรมเดียวกันในภาษาสำหรับผู้อ่านทั้งเจ็ดภาษา — ไทย จีนตัวย่อ จีนตัวเต็ม อาหรับ ฮินดี และเวียดนาม — โดยแมปคีย์เวิร์ดและชนิดข้อมูลใหม่เป็นภาษานั้น ขณะที่อักขระสัญลักษณ์และตัวระบุยังคงเดิม นี่ไม่ใช่ชั้นการแปลที่นำมาใช้กับหน้าเอกสาร แต่เป็นกลไกเดียวกับที่คอมไพเลอร์ใช้สร้างซอร์สโค้ดเฉพาะภาษา

ดูเอกสาร ภาษาสำหรับผู้อ่าน สำหรับคำอธิบายฉบับเต็ม

คลังโค้ด#

คลังโค้ดบทบาท
faberlang/faberAPI เป้าหมายสาธารณะและหน้าหลักของโครงการ
faberlang/releasesไฟล์รุ่น CLI ที่มีแท็กกำกับ
faberlang/normaซอร์สโค้ดไลบรารีมาตรฐาน
faberlang/cistaCLI/ไลบรารีสำหรับจัดเก็บแพ็กเกจ
faberlang/trigaไลบรารีกราฟิก / เรขาคณิต
faberlang/examplesCorpus เส้นทางการเรียนรู้ และแพ็กเกจแอปพลิเคชัน
faberlang/faberlang.devเว็บไซต์เอกสารนี้