UNITY (programming language)
یونٹی ایک پروگرامنگ زبان ہے جسے کے منی چانڈی اور جے دیو مشرا نے اپنی کتاب متوازی پروگرام ڈیزائن: اے فاؤنڈیشن کے لیے بنایا ہے۔ یہ ایک نظریاتی زبان ہے جو کہاں، کب یا کیسے کے بجائے کیا پر مرکوز ہے۔ زبان میں بہاؤ پر قابو پانے کا کوئی طریقہ نہیں ہے، اور پروگرام کے بیانات غیر متعین طریقے سے چلتے ہیں جب تک کہ بیانات پر عمل درآمد کے دوران تبدیلیاں نہیں آتی ہیں۔ یہ پروگراموں کو غیر معینہ مدت تک چلانے کی اجازت دیتا ہے، جیسے کہ آٹو پائلٹ یا پاور پلانٹ سیفٹی سسٹم، نیز وہ پروگرام جو عام طور پر ختم ہو جاتے ہیں (جو یہاں ایک مقررہ مقام پر مل جاتے ہیں)۔ تفصیل تمام بیانات تفویض ہیں، اور #سے الگ ہوتے ہیں۔ ایک بیان متعدد اسائنمنٹس پر مشتمل ہو سکتا ہے، جس کی شکل a، b، c: = x، y، z، یا a: = x | | b: = y | c: = z ہو سکتی ہے۔ آپ کے پاس ایک مقداری بیان کی فہرست بھی ہو سکتی ہے، <#x، y: اظہار:: بیان>، جہاں اظہار کو مطمئن کرنے والی اقدار میں سے x اور y کو تصادفی طور پر منتخب کیا جاتا ہے۔ ایک مقداری تفویض اسی طرح کی ہوتی ہے۔ <| x، y: اظہار:: بیان> میں، بیان کو x اور y کے تمام جوڑوں کے لیے بیک وقت انجام دیا جاتا ہے جو اظہار کو مطمئن کرتے ہیں۔ مثال کے طور پر ببل شارٹ ببل ملحقہ نمبروں کا موازنہ کرکے صف کو ترتیب دیتا ہے، اور اگر وہ غلط ترتیب میں ہیں تو ان کا تبادلہ کرتا ہے۔ متوقع وقت، پروسیسرز اور متوقع کام کا استعمال کرنا۔ آپ کے پاس صرف متوقع وقت کی وجہ یہ ہے کہ k کو ہمیشہ تصادفی طور پر منتخب کیا جاتا ہے۔ اسے k کو دستی طور پر پلٹ کر ٹھیک کیا جا سکتا ہے۔ پروگرام کے بلبلوں کا مجموعہ n: انٹیجر، A: انٹیجر کی صف [0.n-1] ابتدائی طور پر n = 20 #<| | i: 0 <= i اور i <n:: A [i] = rand ()% 100> تفویض کریں <#k: 0 <= k <2:: <| i: i% 2 = k اور 0 <= i <n-1:: A [i]، A [i + 1]: = A [i + 1]، A [i] اگر A [i]> A [i + 1]> اختتامی درجہ ترتیب آپ درجہ ترتیب کے ساتھ وقت میں ترتیب دے سکتے ہیں۔ آپ کو پروسیسرز کی ضرورت ہے، اور کام کرتے ہیں۔ پروگرام رینک سارٹ ڈیکلیئر n: انٹیجر، A، R: صف [0.n-1] انٹیجر کا ابتدائی طور پر n = 15 #<| | i: 0 <= i <n:: A [i]، R [i] = rand ()% 100، i> تفویض کریں <| i: 0 <= i <n:: R [i]: = <+ j: 0 <= j <n اور (A [j] <A [i] یا (A [j] = A [i] اور j <i)::: 1> #<| i: 0 <= i <n:: A [R [i]: = A [i]> آخر فلائیڈ وارش پروگرام کا مختصر ترین راستہ n، k: انٹیجر، D: صف [0.n-1، 0.n-1] انٹیجر کا ابتدائی طور پر n = 10 #k = 0 #<| i، j: 0 <= i <n اور 0 <= j <n:: D [i, j] = Rand ()% 100> تفویض کریں <| i, j: 0 <= i <n اور 0 <= j <n:: D [i, j]: = Min (D [i, j], D [i, k] + D [k, j])> | k: = k + 1 اگر k <n-1 اختتام ہے تو ہم یہ اور بھی تیزی سے کر سکتے ہیں۔ مندرجہ ذیل پروگرام پروسیسرز اور کام کا استعمال کرتے ہوئے وقت میں تمام جوڑوں کے مختصر ترین راستے کا حساب لگاتے ہیں۔ پروگرام شارٹسٹ پیتھ 2 اعلان کرتا ہے کہ n: انٹیجر، D: انٹیجر کی صف [0.n-1، 0.n-1] ابتدائی طور پر n = 10 #<| i، j: 0 <= i <n اور 0 <= j <n:: D [i, j] = rand ()% 10> تفویض کریں <| i، j: 0 <= i <n اور 0 <= j <n:: D [i, j]: = min (D [i, j]، <min k: 0 <= k <n::: D [i, k] + D [k, j]> اختتام کے بعد، D [i, j] میں سب سے مختصر راستے کی لمبائی ہوتی ہے اگلے دور میں، لمبائی، اور اسی طرح۔ حوالہ جات کے منی چانڈی اور جے دیو مشرا (1988) متوازی پروگرام ڈیزائن: ایک فاؤنڈیشن۔ تجرباتی پروگرامنگ زبانیں