4 poin oleh GN⁺ 2023-10-09 | 1 komentar | Bagikan ke WhatsApp
  • Artikel ini memperkenalkan Berry, sebuah bahasa skrip embedded bertipe dinamis yang sangat ringan.
  • Berry dirancang khusus untuk perangkat embedded dengan performa rendah.
  • Ukuran kode inti interpreter Berry kurang dari 40KiB, dan dapat berjalan dengan heap di bawah 4KiB. Hal ini diuji pada CPU ARM Cortex M4 menggunakan Thumb ISA dan kompiler ARMCC.
  • Interpreter Berry mencakup kompiler one-pass dan mesin virtual (VM) berbasis register. Semua kode ditulis dalam ANSI C99.
  • Di Berry, tidak semua tipe merupakan objek kelas. Tipe nilai sederhana seperti int, real, boolean, dan string bukan objek kelas, sedangkan list, map, dan range adalah objek kelas. Ini disebabkan oleh pertimbangan performa.
  • Dalam konteks Berry, istilah "VM berbasis register" memiliki makna yang sama seperti dalam komputasi umum.

1 komentar

 
GN⁺ 2023-10-09
Komentar Hacker News
  • Berry adalah bahasa skrip tertanam bertipe dinamis yang sangat ringan, dengan runtime 40KB namun secara mengejutkan memiliki kumpulan fitur yang kaya.
  • Bahasa ini menggunakan sintaks yang mirip Python/Ruby dan mendukung gaya prosedural, berorientasi objek, maupun fungsional.
  • Berry menonjol karena dapat membuat objek konstan terlebih dahulu dan menempatkan sebagian besarnya di ROM, sehingga menghemat RAM untuk data yang dapat berubah, sesuatu yang tidak ditemukan di MicroPython atau Lua.
  • Berry digunakan di Tasmota, sebuah platform untuk perangkat IoT.
  • Dokumentasi bahasanya sangat dipuji karena komprehensif dan juga menyertakan "manual singkat" untuk pengembang berpengalaman.
  • Beberapa pengguna menyatakan bahwa mereka menginginkan bahasa serupa dengan paradigma yang lebih sedikit dan pengetikan statis untuk digunakan sebagai bahasa konfigurasi.
  • Ada usulan untuk menyediakan binding ke bahasa lain serta pertanyaan tentang kemungkinan melanjutkan fungsi atau generator.
  • Para pengguna tertarik pada perbandingan performa dan penggunaan memori antara Berry dan Lua, serta kemampuan sandboxing untuk menjalankan kode yang tidak tepercaya.
  • Ada pertanyaan tentang kemungkinan menampilkan stack frame dengan nama fungsi skrip dalam stack trace native.