GNU lightning
جی این یو لائٹننگ رن ٹائم پر اسمبلی زبان کا کوڈ تیار کرنے کے لیے ایک مفت سافٹ ویئر لائبریری ہے۔ ورژن 2.1.3، ستمبر 2019 میں جاری کیا گیا، SPARC (32-بٹ)، x86 (32-اور 64-بٹ)، MIPS، ARM (32-اور 64-بٹ)، IA64، HPPA، پاور پی سی (32-بٹ)، الفا، S390 اور RISC-V (64-بٹ) کے لیے بیک اینڈ کی حمایت کرتا ہے۔ دیگر کتب خانوں کے مقابلے میں فوائد جی این یو لائٹننگ کی فراہم کردہ خصوصیات اسے صرف وقت پر مرتب کرنے کے لیے مفید بناتی ہیں۔ لائبریریوں جیسے ایل ایل وی ایم یا لب جے آئی ٹی کے مقابلے میں، جی این یو لائٹننگ ایک معیاری آر آئی ایس سی اسمبلی زبان سے جمع کرنے کے لیے صرف ایک نچلے درجے کا انٹرفیس فراہم کرتا ہے-جو کہ SPARC اور MIPS آرکیٹیکچرز پر مبنی ہوتا ہے-ہدف فن تعمیر کی مشین زبان میں۔ نقصانات یہ رجسٹر الاٹمنٹ، ڈیٹا فلو یا کنٹرول فلو تجزیہ، یا اصلاح فراہم نہیں کرتا ہے۔ 2. x سے شروع کرتے ہوئے، یہ انٹرمیڈیٹ گراف کے ذریعے کوڈ تیار کرتا ہے، بجائے اس کے کہ ہر ایک سے ایک ایک کر کے۔ یہ تبدیلی انٹر انسٹرکشن آپٹیمائزیشن کی اجازت دیتی ہے جیسے رجسٹر الاٹمنٹ اور ڈیڈ کوڈ کا خاتمہ۔ انسٹرکشن سیٹ جی این یو لائٹننگ کا انسٹرکشن سیٹ موجودہ آر آئی ایس سی آرکیٹیکچرز پر مبنی ہے۔ اقسام جب ضرورت ہو تو ہدایات ان 9 اقسام کے ساتھ ڈیٹا کو سنبھالتی ہیں: وہ پروجیکٹس جو جی این یو لائٹننگ جی این یو سمال ٹاک، جی این یو گیل، اور سی ایل آئی ایس پی استعمال کرتے ہیں وہ صرف وقت پر تالیف کے لیے جی این یو لائٹننگ کا استعمال کرتے ہیں۔ جی این یو لائٹننگ کو سب سے پہلے ایک ٹول کے طور پر تیار کیا گیا تھا جسے جی این یو سمال ٹاک کے متحرک مترجم میں بائٹ کوڈز سے مقامی کوڈ میں استعمال کیا جاتا تھا۔ جی این یو گائل 2.2 اور بعد میں مقامی کوڈ نسل کے لیے جی این یو لائٹننگ 1.4 پر مبنی اپنے کانٹے کے بجائے جی این یو لائٹننگ 2. x کا استعمال بند کر دیں، کیونکہ جی این یو لائٹننگ 2. x انٹر انسٹرکشن آپٹیمائزیشن کے لیے زیادہ پیچیدگی کو وقف کرتا ہے۔ نوٹ حوالہ جات بیرونی روابط مفت سافٹ ویئر ڈائرکٹری لائٹننگ پر جی این یو لائٹننگ