4 คะแนน โดย GN⁺ 2023-10-09 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • บทความนี้แนะนำ Berry ซึ่งเป็นภาษาเขียนสคริปต์แบบฝังตัวที่มีน้ำหนักเบามากและเป็นแบบไดนามิกไทป์
  • Berry ถูกออกแบบมาเป็นพิเศษสำหรับอุปกรณ์ฝังตัวที่มีประสิทธิภาพต่ำ
  • ขนาดโค้ดของแกนอินเทอร์พรีเตอร์ของ Berry มีขนาดน้อยกว่า 40KiB และสามารถทำงานได้ด้วยฮีปต่ำกว่า 4KiB โดยได้ทดสอบบน CPU ARM Cortex M4 โดยใช้ Thumb ISA และคอมไพเลอร์ ARMCC
  • อินเทอร์พรีเตอร์ของ Berry มีทั้งคอมไพเลอร์แบบ one-pass และเครื่องเสมือน (VM) แบบ register-based โค้ดทั้งหมดเขียนด้วย ANSI C99
  • ใน Berry ไม่ใช่ทุกประเภทข้อมูลที่จะเป็นคลาสอ็อบเจ็กต์ ประเภทค่าพื้นฐานอย่าง int, real, boolean, string ไม่ใช่คลาสอ็อบเจ็กต์ ส่วน list, map, range เป็นคลาสอ็อบเจ็กต์ ทั้งนี้เป็นเพราะข้อพิจารณาด้านประสิทธิภาพ
  • ในบริบทของ Berry คำว่า "VM แบบ register-based" มีความหมายเช่นเดียวกับที่ใช้กันในการประมวลผลทั่วไป

1 ความคิดเห็น

 
GN⁺ 2023-10-09
ความคิดเห็นบน Hacker News
  • Berry เป็นภาษาเขียนสคริปต์แบบฝังตัวที่มีน้ำหนักเบามากและเป็นภาษาแบบ dynamic typing โดยมีฟีเจอร์ที่ครบครันอย่างน่าทึ่งในรันไทม์ขนาด 40KB
  • ใช้ภาษาที่คล้ายกับ Python/Ruby และรองรับทั้งสไตล์เชิงกระบวนการ เชิงวัตถุ และเชิงฟังก์ชัน
  • Berry โดดเด่นด้วยความสามารถในการสร้างอ็อบเจ็กต์คงที่ไว้ล่วงหน้าและเก็บส่วนใหญ่ไว้ใน ROM เพื่อประหยัด RAM สำหรับข้อมูลที่เปลี่ยนแปลงได้ ซึ่งไม่พบใน MicroPython หรือ Lua
  • Berry ถูกใช้งานใน Tasmota ซึ่งเป็นแพลตฟอร์มสำหรับอุปกรณ์ IoT
  • เอกสารประกอบของภาษานี้ได้รับคำชมอย่างมากว่าครอบคลุม และยังมี "คู่มือฉบับย่อ" สำหรับนักพัฒนาที่มีประสบการณ์ด้วย
  • ผู้ใช้บางรายแสดงความต้องการภาษาในลักษณะคล้ายกันแต่มีแนวคิดเชิงพาราไดม์น้อยกว่าและมี static typing เพื่อใช้เป็นภาษาสำหรับการกำหนดค่า
  • มีข้อเสนอแนะเกี่ยวกับการจัดทำ binding ให้กับภาษาอื่น และมีคำถามเกี่ยวกับความเป็นไปได้ของการทำ function resume หรือ generator
  • ผู้ใช้สนใจการเปรียบเทียบประสิทธิภาพและการใช้หน่วยความจำระหว่าง Berry กับ Lua รวมถึงความสามารถด้าน sandboxing สำหรับรันโค้ดที่ไม่น่าเชื่อถือ
  • มีคำถามเกี่ยวกับความเป็นไปได้ในการแสดงสแตกเฟรมด้วยชื่อของฟังก์ชันสคริปต์ใน native stack trace