عن المشروع

Vult لغة بسيطة وقوية لبرمجة الخوارزميات عالية الأداء التي يمكن تشغيلها على المعالجات الدقيقة أو المتحكمات الدقيقة الصغيرة. وهي موجهة بشكل خاص لأعمال معالجة الإشارات الرقمية (DSP) مثل المؤثرات الصوتية والسنثسيزرات. مترجم Vult هو مترجم متقاطع: يأخذ مصدر Vult ويُصدر C/C++ عادي يمكن بناؤه على أي منصة باستخدام مترجم C/C++، على سبيل المثال ألواح Arduino أو Teensy باستخدام حساب النقطة الثابتة. ويمكنه أيضاً توليد JavaScript للتنفيذ المباشر في المتصفح، أو C/C++ مناسب للترجمة كملحقات Pure Data. القدرات الرئيسية الموصوفة في README: - مترجم سطر الأوامر vultc ينتج مخرجات .h/.cpp، مع ملفات التشغيل runtime/vultin.h و runtime/vultin.cpp اللازمة للربط. - حساب النقطة العائمة أو النقطة الثابتة (-real fixed، صيغة q16: 16 بت للأعداد الصحيحة، 16 بت للكسور)، مفيد على المعالجات بدون وحدة FPU مثل AVR Arduinos و Teensy 3.2 و Raspberry Pi Pico. - قوالب للأهداف بما في ذلك مكتبة Teensy Audio وملحقات Pure Data؛ مستودعات الأمثلة تغطي PicoADK و WebAudio و Pure Data و Teensy Audio. - ميزات اللغة مثل الدوال التي تعمل كوحدات معالجة كاملة، متغيرات الحالة mem لكل نسخة، جداول البحث وقت الترجمة (@[table(...)]) وتضمين ملفات wav مع أو بدون استيفاء. - خيارات التوزيع: ملفات تنفيذية أصلية، vultc المثبت عبر npm (يُلاحظ أنه أبطأ بحوالي 4 مرات من النسخة الأصلية)، مكتبة node.js (vultlib)، وسكريبت مترجم مدمج في المتصفح. - دعم المحرر عبر ملف بناء جملة Sublime Text وإضافة Visual Studio Code. - البناء من المصدر باستخدام OCaml/Opam، make، make jscompiler و make test. ينص README على أن كود DSP لوحدات Vult VCV Rack و Vult Eurorack مكتوب بلغة Vult. التوثيق والدرس التعليمي ومرجع اللغة وخيارات سطر الأوامر متاحة على موقع المشروع والويكي.