يوريك (لغة برمجة)
يوريك (Yorick) هي لغة برمجة مصممة لتفسير الأرقام، تخطيط الرسوم البيانية، و قيادة اكواد محاكاة العلمية الكبيرة. وهي سريعة جداً نتيجة بناء الجملة للمصفوفات، وويمكن توسيعها من خلال أجراءات سي (لغة برمجة) أو فورتران. تم أنشائها في عام 1996 من قبل ديفيد مونرو من مختبر لورانس ليفرمور الوطني.
يوريك (Yorick) | |
---|---|
ظهرت في | 1996 |
صممها | ديفيد مونرو |
نظام التشغيل | يونكس, لينكس, ماك, مايكروسوفت ويندوز |
الرخصة | BSD |
التطوير | |
المطور | مؤسسة كورانت للعلوم الرياضيات |
آخر إصدار | 2.1.06 |
رقم اخر اصدار | 2.2.03 (23 مايو 2014)[1] |
متفرقات | |
امتدادات الملفات | .i |
موقع ويب | صفحة يوريك |
المميزات
- الفهرسة
يوريك جيدة في معالجة العناصر الموجودة في مصفوفات ذات الأبعاد المتعددة (N-dimensional arrays) بسوهلة مع بناء جملة قوي.
- مجموعة من الأرقام القياسية (Range of indices)
يمكن الوصول إلى عدة عناصر في وقت واحد:
> x=[1,2,3,4,5,6];
> x
[1,2,3,4,5,6]
> x(3:6)
[3,4,5,6]
> x(3:6:2)
[3,5]
> x(6:3:-2)
[6,4]
- عناصر أختيارية(Arbitrary elements)
> x=[[1,2,3],[4,5,6]]
> x
[[1,2,3],[4,5,6]]
> x([2,1],[1,2])
[[2,1],[5,4]]
> list=where(1<x)
> list
[2,3,4,5,6]
> y=x(list)
> y
[2,3,4,5,6]
- فهرسة زائفة (Pseudo-index)
مثل الـ "theading" في لغة البيانات لبيرل PDL (Perl Data Language) و الإذاعة (broadcasting) في الامتدادات الرقمية في باثون Numpy ( Numeric extension for Python)، تمتلك يوريك آلة للقايم بذلك:
> x=[1,2,3]
> x
[1,2,3]
> y=[[1,2,3],[4,5,6]]
> y
[[1,2,3],[4,5,6]]
> y(-,)
[[[1],[2],[3]],[[4],[5],[6]]]
> x(-,)
[[1],[2],[3]]
> x(,-)
[[1,2,3]]
> x(,-)/y
[[1,1,1],[0,0,0]]
> y=[[1.,2,3],[4,5,6]]
> x(,-)/y
[[1,1,1],[0.25,0.4,0.5]]
- فهرسة مرنة (Rubber index)
".." هي فهرسة مرنة لتمثيل صفر أو أكثر من أبعاد المصفوفة.
> x=[[1,2,3],[4,5,6]]
> x
[[1,2,3],[4,5,6]]
> x(..,1)
[1,2,3]
> x(1,..)
[1,4]
> x(2,..,2)
5
"*" هي نوع من الفهرسة المرنة لإعادة تشكيل شريحة (جزء من المصفوفة) من المصفوفة إلى vector.
> x(*)
[1,2,3,4,5,6]
- مضاعفة الوتر (Tensor multiplication)
تمثل كما يلي في يوريك:
P(,+,,)*Q(,,+)
تعني
> x=[[1,2,3],[4,5,6]]
> x
[[1,2,3],[4,5,6]]
> y=[[7,8],[9,10],[11,12]]
> x(,+)*y(+,)
[[39,54,69],[49,68,87],[59,82,105]]
> x(+,)*y(,+)
[[58,139],[64,154]]