Sawzall (programming language)
ساوزل ایک طریقہ کار ڈومین مخصوص پروگرامنگ زبان ہے، جسے گوگل بڑی تعداد میں انفرادی لاگ ریکارڈز پر کارروائی کرنے کے لیے استعمال کرتا ہے۔ ساوزل کو پہلی بار 2003 میں بیان کیا گیا تھا، اور ایس زی ایل رن ٹائم کو اگست 2010 میں اوپن سورس کیا گیا تھا۔ تاہم، چونکہ میپ ریڈیوس ٹیبل ایگریگیٹرز جاری نہیں کیے گئے ہیں، اس لیے اوپن سورس رن ٹائم شیلف سے باہر متعدد لاگ فائلوں کے بڑے پیمانے پر ڈیٹا تجزیہ کے لیے مفید نہیں ہے۔ گوگل کے اندر زیادہ تر مقاصد کے لیے ساوزل کی جگہ لنگو (گو میں لاگ ان) نے لے لی ہے۔ محرک گوگل کے سرور لاگ کو ریکارڈ کے بڑے مجموعے (پروٹوکول بفرز) کے طور پر محفوظ کیا جاتا ہے جو جی ایف ایس کے اندر بہت سی ڈسکوں پر تقسیم کیے جاتے ہیں۔ لاگ سے متعلق حسابات انجام دینے کے لیے، انجینئر C + + یا جاوا میں میپ ریڈیوس پروگرام لکھ سکتے ہیں۔ میپ ریڈیوس پروگراموں کو مرتب کرنے کی ضرورت ہے اور یہ ضرورت سے زیادہ لفظی ہو سکتے ہیں، اس لیے لاگ کا تجزیہ کرنے کے لیے پروگرام لکھنا وقت طلب ہو سکتا ہے۔ فوری اسکرپٹ لکھنے کو آسان بنانے کے لیے، روب پائیک اور دیگر۔ سوزال زبان تیار کی۔ ساؤزل رسم الخط میپ ریڈیوس کے نقشہ مرحلے کے اندر چلتا ہے اور میزوں پر اقدار کو "خارج" کرتا ہے۔ پھر کم کرنے کا مرحلہ (جس کے بارے میں اسکرپٹ رائٹر کو فکر کرنے کی ضرورت نہیں ہے) ٹیبلز کو متعدد رنوں سے ٹیبلز کے ایک سیٹ میں جمع کرتا ہے۔ فی الحال، صرف زبان کا رن ٹائم (جو ایک بار ایک ان پٹ پر ساوزل اسکرپٹ چلاتا ہے) اوپن سورس کیا گیا ہے ؛ میپ ریڈیس پر بنایا گیا سپورٹنگ پروگرام جاری نہیں کیا گیا ہے۔ خصوصیات کچھ دلچسپ خصوصیات میں شامل ہیں: ایک ساوزل اسکرپٹ میں ایک واحد ان پٹ (ایک لاگ ریکارڈ) ہوتا ہے اور یہ صرف ٹیبل پر خارج کر کے آؤٹ پٹ کر سکتا ہے۔ اسکرپٹ کے کوئی اور مضر اثرات نہیں ہو سکتے۔ ایک اسکرپٹ کسی بھی تعداد میں آؤٹ پٹ ٹیبل کی وضاحت کر سکتا ہے۔ ٹیبل کی اقسام میں شامل ہیں: مجموعہ ہر خارج شدہ قیمت کو بچاتا ہے ہر خارج شدہ قیمت کا مجموعہ بچاتا ہے زیادہ سے زیادہ (n) کسی دیئے گئے وزن پر صرف سب سے زیادہ n اقدار کو بچاتا ہے۔ اس کے علاوہ، شماریاتی جدول کی کئی اقسام ہیں جو غیر درست نتائج دیتی ہیں۔ پیرامیٹر n جتنا زیادہ ہوگا، تخمینے اتنے ہی درست ہوں گے۔ نمونہ (n) تمام خارج شدہ اقدار سے n اقدار کا بے ترتیب نمونہ دیتا ہے مقداری (n) دیئے گئے نمبروں کی مجموعی امکانات کی تقسیم کا حساب لگاتا ہے۔ سب سے اوپر (n) n اقدار دیتا ہے جو شاید خارج شدہ اقدار میں سب سے زیادہ کثرت سے ہوتی ہیں۔ منفرد (n) خارج ہونے والی منفرد اقدار کی تعداد کا تخمینہ لگاتا ہے۔ ساؤزل کا ڈیزائن طاقت پر کارکردگی اور انجن کی سادگی کا حامی ہے: ساؤزل کو مستحکم طور پر ٹائپ کیا جاتا ہے، اور انجن اسکرپٹ کو چلانے سے پہلے x86 پر مرتب کرتا ہے۔ ساوزل مرکب ڈیٹا کی اقسام کی فہرستوں، نقشوں اور ڈھانچوں کی حمایت کرتا ہے۔ تاہم، کوئی حوالہ جات یا اشارے موجود نہیں ہیں۔ تمام اسائنمنٹس اور فنکشن دلائل کاپیاں بناتے ہیں۔ اس کا مطلب یہ ہے کہ تکراری ڈیٹا ڈھانچے اور سائیکل ناممکن ہیں۔ سی کی طرح، افعال عالمی متغیرات اور مقامی متغیرات میں ترمیم کر سکتے ہیں لیکن بند نہیں ہوتے ہیں۔ ساؤزل کوڈ یہ مکمل ساؤزل پروگرام ان پٹ کو پڑھے گا اور تین نتائج پیدا کرے گا: ریکارڈ کی تعداد، اقدار کا مجموعہ، اور اقدار کے مربعوں کا مجموعہ۔ شمار: ٹیبل کا انٹیٹ کا مجموعہ ؛ کل: ٹیبل کا فلوٹ کا مجموعہ ؛ جمع کا مربع: ٹیبل کا فلوٹ کا مجموعہ ؛ x: فلوٹ = ان پٹ ؛ اخراج کا شمار <-1 ؛ اخراج کا کل <-x ؛ اخراج کا مجموعہ <-x * x ؛ سور بھی دیکھیں-اپاچی ہڈوپ ساؤمل (سافٹ ویئر) کے ساتھ استعمال کے لیے اسی طرح کا ٹول اور زبان حوالہ جات مزید پڑھنے کے لیے ایس گھیماوت، ایچ گوبیوف، ایس-ٹی لیونگ، گوگل فائل سسٹم، میں: آپریٹنگ سسٹم کے اصولوں پر 19 واں ACM سمپوزیم، کارروائی، 17 ACM پریس، 2003، پی پی۔ بیرونی روابط گوگل کوڈ آرکائیو-گوگل کوڈ پروجیکٹ ہوسٹنگ کے لیے طویل مدتی اسٹوریج۔ میپ ریڈیوس ڈومین مخصوص پروگرامنگ زبانیں طریقہ کار پروگرامنگ زبانیں گوگل سافٹ ویئر پروگرامنگ زبانیں 2003 میں اپاچی لائسنس کا استعمال کرتے ہوئے سافٹ ویئر بنائی گئیں