منصوبے کے بارے میں
Slate ایک ڈائنامیکلی ٹائپڈ زبان ہے جو ساخت کے لیے انڈنٹیشن (indentation) استعمال کرتی ہے اور اس میں ایک گریجول ٹائپ چیکر موجود ہے۔ یہ ایک حقیقی ایونٹ لوپ پر async/await، جنریٹرز، ماڈیولز، پیٹرن میچنگ، پروٹو ٹائپس کے بجائے کلاسز، اور الجبریک ڈیٹا ٹائپس کو سپورٹ کرتی ہے۔ API سرورز کے لیے ڈیزائن کی گئی یہ زبان HTTP (llhttp کے ذریعے)، HTTP/2 (nghttp2 کے ذریعے)، TCP، TLS، فائل سسٹم آپریشنز، پراسیسز، regex، اور JSON کو ہینڈل کرتی ہے۔
یہ زبان JavaScript میں کمپائل ہوتی ہے، جس سے ایک ہی پروگرام اس کے اپنے انٹرپریٹر، Node.js، QuickJS، یا Lath فریم ورک کا استعمال کرتے ہوئے براؤزرز میں چل سکتا ہے۔ `slate js` کمانڈ ایک واحد سیلف-کنٹینڈ JavaScript فائل آؤٹ پٹ کرتی ہے جس میں رن ٹائم اور فریم ورک شامل ہوتے ہیں، جس سے بنڈلرز اور node_modules کی ضرورت ختم ہو جاتی ہے۔
گریجول ٹائپنگ اختیاری اینوٹیشنز کی اجازت دیتی ہے؛ ٹائپ ڈیکلریشنز پیٹرن میچنگ اور رن ٹائم چیکس دونوں کے لیے کام کرتی ہیں۔ اس کی خصوصیات میں پوسٹ فکس `match` ایکسپریشنز، جینک ریک ٹائپس، اور پرومسز واپس کرنے والے async فنکشنز شامل ہیں۔ API سرورز بلٹ ان راؤٹر اور ہینڈلر سسٹمز کا استعمال کرتے ہیں۔ اسکرپٹس shebang ایگزیکیوشن کو سپورٹ کرتے ہیں۔
اس کی امپلیمنٹیشن میں ایک اسٹیک مشین اور ٹریسنگ گربج کلیکشن (کلوزر سائیکلز کی وجہ سے) استعمال کی گئی ہے، جس کا ایونٹ لوپ libuv پر مبنی ہے۔ یہ Homebrew کے ذریعے macOS Apple silicon کے لیے دستیاب ہے؛ دیگر پلیٹ فارمز کے لیے سورس بلڈز کی ضرورت ہوتی ہے۔ دستاویزات میں زبان اور لائبریری کے حوالے شامل ہیں۔
نمایاں کمیوں میں لٹریٹ پروگرامنگ سپورٹ اور JavaScript بیک اینڈ کے لیے کچھ اسٹینڈرڈ لائبریری ماڈیولز شامل ہیں۔ گربج کلیکشن کی وجہ سے `defer` اسٹیٹمنٹ کو جان بوجھ کر خارج رکھا گیا ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.