ولفرام (لغة برمجة)

**ولفرام** وبالانجليزية (Wolfram Language) ( ) هي عامة متعددة نموذج لغة البرمجة  التي وضعتها أبحاث ولفرام. وهي تؤكد على الحساب الرمزي والبرمجة الوظيفية والبرمجة القائمة على القواعد  ويمكنها استخدام الهياكل والبيانات التعسفية. إنها لغة البرمجة الخاصة ببرنامج الحساب الرمزي الرياضي Mathematica .

## التاريخ
كانت لغة ولفرام جزءًا من النسخة الأولية لماثيماتيكا في عام 1988.

الجوانب الرمزية للمحرك تجعله نظام جبر حاسوبي. يمكن للغة إجراء التكامل والتفاضل ومعالجات المصفوفة وحل المعادلات التفاضلية باستخدام مجموعة من القواعد. أيضا في عام 1988 كان نموذج الكمبيوتر المحمول والقدرة على تضمين الصوت والصور، وفقا لبراءة اختراع ثيودور جراي. 
تم إصدار واجهة على الإنترنت للغة، WolframAlpha ، في عام 2009. قام ولفرام بتنفيذ هذا الموقع من خلال ترجمة بيانات اللغة الطبيعية إلى استفسارات بلغة ولفرام ترتبط بقاعدة البيانات الخاصة به. العمل المؤدي إلى Wolfram Alpha يعني أيضًا أن تطبيق Wolfram للغة أصبح له الآن وصول مدمج إلى قاعدة المعرفة بالإضافة إلى وظائف معالجة اللغة الطبيعية.

أضاف Wolfram أيضًا ميزات لمهام أكثر تعقيدًا، مثل النمذجة ثلاثية الأبعاد.

تم اعتماد اسم للغة أخيرًا في عام 2013، حيث قررت Wolfram Research إنشاء نسخة من محرك اللغة مجانًا لمستخدمي Raspberry Pi ، وكانوا بحاجة إلى ابتكار اسم لها. تم تضمينه في حزمة البرامج الموصى بها التي توفرها مؤسسة Raspberry Pi للمبتدئين، مما تسبب في بعض الجدل بسبب طبيعة ملكية لغة Wolfram.  تم الإعلان عن خطط نقل لغة Wolfram إلى Intel Edison بعد تقديم المجلس في CES 2014 ولكن لم يتم إصدارها مطلقًا. في عام 2019، تمت إضافة رابط لجعل مكتبات Wolfram متوافقة مع محرك ألعاب Unity ، مما يتيح لمطوري الألعاب الوصول إلى وظائف اللغة عالية المستوى.

## بناء الجملة
يشبه تركيب لغة Wolfram بشكل عام تعبير M في الستينيات من القرن الماضي LISP ، مع دعم مشغلي infix واستدعاءات دالة «تدوين الوظائف».

### الأساسيات
تكتب لغة Wolfram التعبيرات الحسابية الأساسية باستخدام عوامل infix
```mathematica
(* This is a comment. *)

4 + 3
(* = 7 *)

1 + 2 * (3 + 4)
(* = 15 *)
(* Note that Multiplication can be omitted: 1 + 2 (3 + 4) *)

(* Divisions return rational numbers: *)
3 / 2
(* = 3/2 *)
```
يتم الإشارة إلى استدعاءات الوظائف بأقواس مربعة:
```mathematica
Sin[Pi]
(* = 0 *)

(* This is the function to convert rationals to floating point: *)
N[3 / 2]
(* = 1.5 *)
```
القوائم محاطة بأقواس متعرجة:
```mathematica
Oddlist={1,3,5}
(* = {1,3,5} *)
```


### السكر النحوي
قد تنحرف اللغة عن نموذج التعبير M عندما تتوفر طريقة بديلة أكثر صداقة للإنسان لإظهار التعبير:

* يتم استخدام عدد من قواعد التنسيق في هذه اللغة، بما في ذلك  التنضيد و  لإدخال اللغة.
* يمكن أيضًا تطبيق الدوال باستخدام تعبير البادئة  والتعبير postfix  .
* المشتقات يمكن الرمز مع الفاصلة العليا  .
* يعتبر مشغلو infix أنفسهم «سكر» لنظام تدوين الوظائف.

 منسق FullForm بإصلاح الإدخال:
```mathematica
FullForm[1+2]
(* = Plus[1, 2] *)
```


## البرمجة الوظيفية

### نمط مطابقة
الوظائف في لغة Wolfram هي في الأساس حالة من أنماط الاستبدال البسيطة:
```mathematica
F[x_] := x ^ 0
```
 هو «عامل تشغيل SetDelayed»، بحيث لا يتم البحث عن x على الفور. x_ هو السكر   ، أي «فارغ» لأي قيمة لتحل محل x في بقية التقييم.

يتم التعبير عن تكرار فرز الفقاعة على النحو التالي:
```mathematica
sortRule := {x___,y_,z_,k___} /; y>z -> {x,z,y,k}
(* Rule[Condition[List[PatternSequence[x, BlankNullSequence[]], Pattern[y, Blank[]], Pattern[z, Blank[]], PatternSequence[k, BlankNullSequence[]]], Greater[y, z]], List[x, z, y, k]] *)
```
 عامل التشغيل هو "condition"، بحيث تنطبق القاعدة فقط عندما  . الشرطات السفلية الثلاثة عبارة عن بناء جملة لـ  ، لتسلسل يمكن أن يكون فارغًا.

استبدال مكرر  يمكن استخدام عامل التشغيل لتطبيق هذه القاعدة بشكل متكرر، حتى لا يحدث المزيد من التغيير:
```mathematica
{ 9, 5, 3, 1, 2, 4 } //. sortRule
(* = ReplaceRepeated[{ 9, 5, 3, 1, 2, 4 }, sortRule] *)
(* = {1, 2, 3, 4, 5, 9} *)
```
يؤدي نظام مطابقة الأنماط أيضًا بسهولة إلى تكامل واشتقاق قائم على القواعد. فيما يلي مقتطفات من حزمة قواعد روبي:
```mathematica
(* Reciprocal rule *)
Int[1/x_,x_Symbol] :=
  Log[x]؛
(* Power rule *)
Int[x_^m_.,x_Symbol] :=
  x^(m+1)/(m+1) /;
FreeQ[m,x] && NeQ[m,-1]
```


## تطبيقات
يكمن التنفيذ الرسمي والمرجعي للغة ولفرام في الرياضيات والخدمات المرتبطة بها عبر الإنترنت. هذه مصادر مغلقة. ومع ذلك، فقد أصدرت Wolfram Research محلل C ++ للغة بموجب ترخيص MIT مفتوح المصدر. الكتاب المرجعي مفتوح الوصول.

في ظل وجود لغة Wolfram لأكثر من ثلاثة عقود، تم أيضًا تطوير عدد من تطبيقات الطرف الثالث مفتوحة المصدر. يعتبر فيلم MockMMA لريتشارد فاتمان من عام 1991 ذا أهمية تاريخية، سواء لكونه أول إعادة تطبيق ولأنه حصل على وقف وكف من Wolfram. الحديثة لا تزال قيد الصيانة  تشمل Symja في Java ، و expreduce في Golang ، و Mathics المستندة إلى SymPy . تركز هذه التطبيقات على اللغة الأساسية ونظام الجبر الحاسوبي الذي تتضمنه، وليس على ميزات «قاعدة المعرفة» عبر الإنترنت في Wolfram.

في عام 2019،  أصدرت شركة Wolfram Research برنامجًا مجانيًا لمحرك Wolfram ، لاستخدامه كمكتبة برمجة في البرامج غير التجارية.

## التسمية
تم تسمية اللغة رسميًا في يونيو 2013، على الرغم من كونها الواجهة الخلفية لنظام الحوسبة Mathematica ، فقد تم استخدامها في أشكال مختلفة لأكثر من 30 عامًا منذ الإصدار الأولي لـ Mathematica.

## انظر أيضًا

* بايثون
* جافا
* سي ++

## المراجع



## روابط خارجية

* 

تصنيف:أنظمة جبر حاسوبي
تصنيف:برمجيات متعددة المنصات
تصنيف:برمجة وظيفية
تصنيف:جبر خطي
تصنيف:جبر خطي عددي
تصنيف:حوسبة متوازية
تصنيف:لغات البرمجة التعليمية
تصنيف:لغات برمجة أنشئت في 1988
تصنيف:لغات برمجة تعريفية
تصنيف:لغات برمجة ديناميكية النمط
تصنيف:لغات برمجة عالية المستوى
تصنيف:لغات برمجة عددية
تصنيف:لغات برمجة كائنية التوجه
تصنيف:لغات برمجة وظيفية
تصنيف:ولفرام ريسيرتش