ภาษาโปรแกรมใหม่ที่ออกแบบมาสำหรับ Kawaii Virtual Machine ( KVM ) ได้เกิดขึ้น แม้ว่าเอกสารประกอบจะทำให้หลายคนในชุมชนเทคโนโลยีต้องเกาหัวกันก็ตาม ภาษานี้มีเป้าหมายเพื่อให้แนวทางการเขียนโปรแกรมที่เน้นความเรียบง่ายและประสิทธิภาพ แต่การนำเสนอกลับสร้างความสับสนมากกว่าความชัดเจน
โครงการ KawaiiVM ดูเหมือนจะเป็นส่วนหนึ่งของการสนทนาที่กว้างขึ้นเกี่ยวกับเวอร์ชวลแมชชีนขนาดเล็กและแพลตฟอร์มคอมพิวเตอร์ทางเลือก การอภิปรายในชุมชนได้เปรียบเทียบกับระบบมินิมอลลิสต์อื่น ๆ โดยเฉพาะการสังเกตความคล้ายคลึงกับโครงการอย่าง Uxn และ Varvara ซึ่งมุ่งเน้นการสร้างสภาพแวดล้อมรันไทม์ที่เรียบง่ายและพกพาได้
ปรัชญาการออกแบบที่เน้นประสิทธิภาพเป็นหลัก
ภาษานี้ใช้แนวทางที่รุนแรงในการเพิ่มประสิทธิภาพโดยการกำจัดประเภทข้อมูลแบบดั้งเดิมทั้งหมด ทุกอย่างถูกเก็บเป็นไบต์ 8 บิตแบบไม่มีเครื่องหมาย โดยมีเหตุผลว่าสิ่งนี้ช่วยลดภาระของ CPU และทำให้กระบวนการคอมไพล์ง่ายขึ้น ฟังก์ชัน API จัดการการแปลงประเภทที่จำเป็น ในขณะที่ภาษาหลักทำงานด้วยการจัดการไบต์เพียงอย่างเดียว
ตัวเลือกการออกแบบนี้สะท้อนแนวโน้มที่เพิ่มขึ้นในการเขียนโปรแกรมระบบที่มุ่งสู่การลดนามธรรมให้น้อยที่สุด ภาษานี้คอมไพล์เป็นโค้ด C ซึ่งบ่งชี้ว่าทำหน้าที่เป็นชั้นกลางมากกว่าสภาพแวดล้อมการเขียนโปรแกรมแบบสแตนด์อโลน
หมายเหตุ: ภาระของ CPU หมายถึงเวลาประมวลผลเพิ่มเติมที่โปรเซสเซอร์ของคอมพิวเตอร์ต้องใช้ในการจัดการงานนอกเหนือจากตรรกะโปรแกรมหลัก
ข้อกำหนดของภาษา KawaiiVM :
- ชนิดข้อมูล: ใช้เฉพาะไบต์ขนาด 8 บิตแบบไม่มีเครื่องหมายเท่านั้น
- เป้าหมายการคอมไพล์: ภาษา C
- การเรียกใช้ API: รองรับอาร์กิวเมนต์ได้สูงสุด 2 ไบต์
- โมเดลหน่วยความจำ: แบบ Stack-based พร้อมการจัดการไบต์โดยตรง
- Parser: แนะนำให้ใช้งานใน Rust เพื่อประสิทธิภาพหน่วยความจำ
- การอนุญาตใช้งาน: ต้องได้รับอนุมัติแยกต่างหากสำหรับการแจกจ่ายซอร์สโค้ดทั้งหมด
การตอบรับของชุมชนและการเปรียบเทียบ
การตอบสนองของชุมชนเทคโนโลยีมีความหลากหลาย โดยหลายคนเปรียบเทียบกับสภาพแวดล้อมการเขียนโปรแกรมเชิงทดลองอื่น ๆ นักพัฒนาบางคนสังเกตความคล้ายคลึงกับระบบที่ใช้ Forth และเวอร์ชวลแมชชีนมินิมอลลิสต์ที่ให้ความสำคัญกับการพกพาได้มากกว่าความง่ายในการใช้งาน
พวกเขาทำสิ่งที่ฉันอยากทำมาตลอดและทำได้ดีมาก ฉันมีความสุขสำหรับพวกเขา พวกเขาต้องสนุกมากในการเขียนซอฟต์แวร์แน่ ๆ
โครงการนี้ยังถูกเปรียบเทียบกับ TempleOS ในแง่ของแนวทางดั้งเดิมและชุมชนที่ทุ่มเท แม้ว่าจะมีขนาดเล็กกว่ามาก การเปรียบเทียบนี้เน้นให้เห็นว่าภาษาโปรแกรมเฉพาะกลุ่มมักพัฒนาผู้ติดตามที่หลงใหลแม้จะมีการยอมรับในกระแสหลักที่จำกัด
ความท้าทายด้านเอกสาร
บางทีอุปสรรคที่สำคัญที่สุดต่อการยอมรับคือรูปแบบเอกสารของโครงการ ข้อกำหนดภาษาอ่านเหมือนบันทึกกระแสจิตสำนึกมากกว่าเอกสารทางเทคนิค โดยมีคำอธิบายที่มักขัดแย้งกันเองหรือลากยาวไปในทิศทางที่ไม่ชัดเจน
เอกสารกล่าวถึงคุณสมบัติอย่างความซับซ้อนทางสังคมในโครงสร้างลูปและอธิบายคอมไพเลอร์ว่าเหมือนกับคนที่คอยช่วยในโครงการซินธ์ ทำให้ผู้อ่านต้องถอดรหัสความหมายทางเทคนิคที่แท้จริง แนวทางนี้อาจเป็นไปโดยเจตนา สะท้อนธรรมชาติเชิงทดลองของโครงการ แต่สร้างอุปสรรคอย่างมากสำหรับผู้ใช้ที่มีศักยภาพ
คุณสมบัติหลักของภาษา:
byte
: ตัวระบุพื้นฐานสำหรับการอ่าน/เขียนไบต์เดี่ยวlist
: คอนเทนเนอร์สำหรับไบต์หลายตัว ใช้หลักๆ สำหรับการวนลูปstack
: ตัวอ่านพื้นที่หน่วยความจำที่มีการล้างข้อมูลอัตโนมัติcompile_again
: แมโครสำหรับการเรียกซ้ำของลูป- ไม่มีตัวคั่นแบบดั้งเดิม - การแยกวิเคราะห์ขึ้นอยู่กับลำดับ
- ไม่มีการตรวจสอบประเภทข้อมูลขณะรันไทม์ - ประเภทข้อมูลทั้งหมดมีอยู่เฉพาะในเวลาคอมไพล์เท่านั้น
บทสรุป
แม้ว่า KawaiiVM จะเป็นการทดลองที่น่าสนใจในการออกแบบภาษาแบบมินิมอล แต่ความสำเร็จน่าจะขึ้นอยู่กับเอกสารที่ชัดเจนกว่าและตัวอย่างที่ใช้งานได้จริง โครงการนี้เข้าร่วมระบบนิเวศที่เติบโตของเวอร์ชวลแมชชีนทางเลือกและภาษาโปรแกรมที่ให้ความสำคัญกับความเรียบง่ายและการพกพาได้ แม้ว่าการนำเสนอในปัจจุบันจะทำให้การประเมินเป็นเรื่องยากสำหรับนักพัฒนาส่วนใหญ่
อ้างอิง: a programming language for the Kawaii virtual machine