موديليكا
لغة موديليكا أو مودليكا  هي لغة برمجة تستخدم في النمذجة وهي كائنيّة المنحى (شيئية أو بالإنجليزية: object-oriented) متعددة المجالات وتستخدم في النمذجة الموجّهة للمكوّنات (الهندسية مثلا) في أنظمة معقّدة مثل تلك الأنظمة التي تحوي مكوّنات جزئية ميكانيكية أو كهربية أو إلكترونية أو هيدروليكية أو حرارية أو خاصة بالتحكم أو خاصة بالقدرة الكهربائيّة أو موجّهة لعملية معيّنة. استخدامها هو أقرب إلى لغة في.إتش.دي.إل-أا.إم.إس VHDL-AMS وفِريلوج Verilog (تلك اللغات المستنبطة من صناعة الإلكترونيات) بمعنى أنها تصف النظام في صورة مجموعة من المعادلات. والمحاكي المرتبط لها مهمته إيجاد حل لمنظومة المعادلات في كل خطوة زمنية (مثلا : كل ثانية).

اللغة لها صفه أكثر عمومية من منافساتها، وتستفيد من البرمجة كائنيّة التوجه (ومبدأ توارث خصائص نموذج معيّن من خصائص نموذج آخر مما يعطي مرونة أكبر في الكتابة). ومع ذلك، فإن استخدامها حاليا محدود جدا في مجال الالكترونيات، وإن كانت مستخدمة في العديد من المجالات الأخرى.

لغة موديليكا هي لغة حرة (مجانية ومفتوحة المصدر) تم تطويرها بواسطة جمعية موديليكا وهي جمعية غير ربحيّة. اللغة والمكتبات وبعض أدوات المحاكاة لدى موديليكا هي مجانية ومفتوحة المصدر وقد تم استخدامها في التطبيقات الصناعية. والتطوير والترويج لموديليكا تنظمه جمعية موديليكا Modelica Association.
جمعية موديليكا تطور أيضا مكتبة موديليكا القياسية الحرة والتي تحوي حوالي 1360 نموذج عام للمكوّنات و 1280 وظيفة برمجيّة (دالّة برمجية) في مختلف المجالات، وذلك حتى الإصدار 3.2.1 .

الهدف والمبادئ 
الغرض من اللغة هو وصف الأنظمة الديناميكية. النماذج توصف عن طريق المعادلات التفاضلية والمعادلات الجبرية والمعادلات المتقطّعة (أو بالإنجليزية discrete) ويمكن أيضا عمل نماذج بلغة موديليكا عن طريق المعادلات التفاضلية الجزئية بعد عمل التقطيع الرياضي discretisation من أجل تحويل تلك المعادلات إلى كود برمجي. كما تتيح اللغة البرمجة الرسوميّة وتدعم سلسلة مراتب الحالة للآلات ولها العديد من المميزات الأخرى.

التطبيقات البرمجيّة 

في الواجهة الأمامية للتطبيقات البرمجيّة التجارية للغة مودليكا يأتي برنامج آمِي.سيم AMESim لشركة إيماجين إس.أا Imagine SA الفرنسية (والتي هي الآن جزء من شركة سيمنز بي.إل.إم Siemens PLM للبرمجيات)، ودايمولا Dymola لشركة دايناسيم أا.بي Dynasim AB السويدية (والتي هي الآن جزء من شركة أنظمة داسو Dassault Systemes)، وأنظمة كاتيا CATIA Systems لشركة أنظمة داسو Dassault Systemes (وأنظمة كاتيا تعتبر من الأنظمة الرئيسية المستخدمة في التصميم باستخدام الحاسب الآلي CAD)، وساي.مودليكا CyModelica لشركة معامل ساي.ديزاين CyDesign الأمريكية والتي أصبحت الآن مجموعة إي.إس.آي ESI Group، وبرنامج وولفرام سيستيم.موديلَر لنمذجة الأنظمة Wolfram SystemModeler (والذي كان يسمى سابقا ماث.مودليكا MathModelica) لشركة وولفرام ماث.كُور أا.بيWolfram MathCore AB السويدية (والتي هي الآن جزء من شركة وولفرام للأبحاث Wolfram Research)، وبرنامج سيميوليشن.إكس للمحاكاة SimulationX للشركة الألمانية آي.تي.آي المحدودة ITI GmbH، وبرنامج مابل.سيم MapleSim للشركة الكندية مابلسوفت Maplesoft.

جا.موديليكا دوت أورج JModelica.org هي منصّة مرنة ومفتوحة المصدر تم بناؤها على لغة موديليكا وتستخدم في الاستمثال (الأمثلة أو بالإنجليزية: optimization) وفي المحاكاة وتحليل النظم الديناميكية المعقدة. الهدف الرئيسي من هذا المشروع كان عمل منصّة مفتوحة المصدر صالحة للاستخدام في الأغراض الصناعية وتستخدم في المحاكاة والاستمثال لنماذج لغة موديليكا، وفي ذات الوقت، تقدّم منصّة مرنة تعمل كمعمل افتراضي يستخدم في مناهج وخوارزميات البحث والتطوير.

أوبن موديليكا (موديليكا مفتوحة المصدر أو OpenModelica) هي بيئة برمجيّة تستخدم في المحاكاة والنمذجة وهي مفتوحة المصدر ومبنيّة على لغة موديليكا وهي موجّهة للاستخدام الأكاديمي والصناعي.

وتطويرها على المدى الطويل هو مهمة منظّمة غير ربحيّة هي المجموعة المتحدة لموديليكا مفتوحة المصدر Open Source Modelica Consortium OSMC.

إن الهدف من الجهد المبذول في أوبن موديليكا OpenModelica هو بناء بيئة برمجيّة شاملة ومفتوحة المصدر تستخدم لغة موديليكا وتترجم الكود الخاص بها وتقوم بعمل المحاكاة والنمذجة بناء على برمجيّات حرّة (مجّانية ومفتوحة المصدر) يتم نشرها في الصورة الثنائية (بالإنجليزية: binary أي: التنفيذية أو بالإنجليزية: executable) بالإضافة إلى الكود المصدري (بالإنجليزبة: source code) لتستخدم في البحث والتدريس بالإضافة إلى الاستخدام الصناعي.

بيئة المحاكاة الحرة سايكوس Scicos (وهي جزء من برنامج سايلاب SciLab وتسمّى أيضا إكس.سي.أو.إس Xcos) تستخدم لغة موديليكا بشكل جزئي لنمذجة المكوّنات (الهندسيّة مثلا).

ولتلخيص ما سبق يمكن القول بأن موديليكا تستخدم في :
 البرمجيات التجارية :
 كاتيا من أنظمة داسو ، وكذلك دايمولا Dymola (Dynasim AB، السويد، والتي أصبحت جزءا من أنظمة داسو في عام 2006) ؛
 آمِي.سيم AMESim لشركة إيماجين إس.أا Imagine SA الفرنسية من LMS الدولية ;
 MapleSim من Maplesoft ، كندا ؛
 نمذجة الأنظمة من وولفرام من وولفرام للأبحاث ، السويد ؛
 SimulationX من ITI GmbH، دريسدن، ألمانيا ؛
 و في البرمجيات الحرة :
 JModelica.org من جامعة لوند و Modelon AB ، السويد ؛
 OpenModelica من جامعة لينشوبينغ ، السويد ؛
 Modelicac ويمكن تنزيله حاليا مجّانا عند تنزيل - Scilab-Xcos/Scicos.

تاريخيا 

إن السعي لتصميم لغة موديليكا قد بدأه هيلدنج المكفست في أيلول/سبتمبر عام 1996. وكان الهدف هو تطوير لغة برمجة كائنية التوجه (شيئية) تستخدم لنمذجة الأنظمة التقنية (التكنولوجية) تمكّن المهندسين من إعادة استخدام وتبادل نماذج الأنظمة الديناميكية بهيئة نمطيّة (قياسيّة أو بالإنجليزية: standardized format).

لغة موديليكا 1.0 بنيت على أطروحة من رسالة الدكتوراه الخاصة بهيلدنج المكفست وعلى خبرة لغات النمذجة: ألّان Allan ودايمولا Dymola و إن.إم.إف NMF وأوبجكت.ماث ObjectMath وأومولا Omola و +سيدوبس SIDOPS+ وسمايل Smile.

كان هيلدنج المكفست المخطط الرئيسي للغة موديليكا، ولكن العديد من الناس الآخرين ساهموا كذلك .

وفي أيلول/سبتمبر عام 1997 تم إطلاق الإصدار 1.0 من مواصفات لغة موديليكا والتي كانت الأساس للتطبيق العملي للنموذج المبدئي الذي كان من خلال نظام برنامج تجاري يدعى دايمولا Dymola.

في عام 2000 ، أنشئت جمعية غير ربحية هي جمعية موديليكا وأنشئت لكي تدير التطوير المستمر للغة موديليكا ولمكتبة موديليكا القياسية الحرة.

وفي نفس العام، بدأ استخدام لغة موديليكا في التطبيقات الصناعية.

خصائص ومميزات 

تشبه لغة مودلكا لغات البرمجة كائنية التوجه مثل سي++ أو جافا، إلا إنها تختلف عنها في جانبين من الجوانب المهمة.

الأول هو أن لغة موديليكا هي لغة نمذجة وليست لغة برمجة تقليدية.

فالأصناف (الفصائل أو بالإنجليزية: classes) في لغة موديليكا لا يتم ترجمة الكود البرمجي لها بالطريقة المعتادة، بل يتم تحويل الأصناف إلى كائنات برمجيّة (أشياء برمجيّة أو بالإنجليزية: objects) وبعد ذلك يتم التعامل معها بواسطة محرك المحاكاة (بالإنجليزية: simulation engine).

ومحرّك المحاكاة لا يتم تحديده بواسطة اللغة (أي: لغة موديليكا)، ولكن بعض الإمكانيات التي يجب أن تكون متوفرة فيه هي التي يتم تحديدها.

والجانب الثاني هو أنه بالرغم من أن الأصناف (الفصائل أو بالإنجليزية: classes) قد تحوي مكوّنات خوارزميّة تشبه تلك التي توجد في العبارات (أو الجُمل) والبلوكات البرمجيّة في لغات البرمجة التقليدية، إلا أن المحتوى الرئيسي لها هنا هو مجموعة من المعادلات الرياضيّة.

فعلى النقيض من عبارة التعيين (بالإنجليزية: assignment) المعتادة التي تشبه هذه

x := 2 + y

والتي فيها الطرف الأيسر من العبارة يتم تعيين قيمة محسوبة له عن طريق الطرف الأيمن، فالمعادلات (في لغة موديليكا) يوجد فيها تعبيرات رياضية في كلا الطرفين الأيمن والأيسر، مثل هذه المعادلة،

x + y = 3 * z

فالمعادلات هنا ليس المقصود منها وصف التعيين (بالإنجليزية: assignment) بل هي تصف التساوي (بالإنجليزية: equality).

وبمصطلحات لغة موديليكا، يمكن القول بأن المعادلات لا تحتاج إلى تعريف مسبق للمقدّمات البرمجية.

ومحرك المحاكاة قد يعالج المعادلات رمزيّا (وعادة يكون هذا ضروريا) وذلك لتحديد ترتيب عمليات التنفيذ وكذلك تحديد أي من المكونات في المعادلة قد يتم اعتبارها مدخلات وأيها قد يتم اعتبارها مخرجات.

مراجع

وصلات خارجية 
 جمعية مودليكا Modelica
 دايمولا Dymola
 سيمنز بي.إل.إم Siemens PLM للبرمجيات
 برنامج سيميوليشن.إكس للمحاكاة SimulationX للشركة الألمانية آي.تي.آي المحدودة ITI GmbH
 برنامج مابل.سيم MapleSim للشركة الكندية مابلسوفت Maplesoft

الملاحظات والمراجع 

برمجة كائنية التوجه
لغات برمجة تعريفية
لغات نمذجة البيانات
لغة موديليكا أو مودليكا هي لغة برمجة تستخدم في النمذجة و هي كائنيّة المنحى ( شيئية أو بالإنجليزية : object - oriented ) متعددة المجالات و تستخدم في النمذجة الموجّهة للمكوّنات ( الهندسية مثلا ) في أنظمة معقّدة مثل تلك الأنظمة التي تحوي مكوّنات جزئية ميكانيكية أو كهربية أو إلكترونية أو هيدروليكية أو حرارية أو خاصة بالتحكم أو خاصة بالقدرة الكهربائيّة أو موجّهة ل عملية معيّنة . استخدام ها هو أقرب إلى لغة في . إتش . دي . إل - أا . إم . إس VHDL - AMS وفِريلوج Verilog ( تلك اللغات المستنبطة من صناعة الإلكترونيات ) ب معنى أن ها تصف النظام في صورة مجموعة من المعادلات . والمحاكي المرتبط ل ها مهمة ه إيجاد حل لمنظومة المعادلات في كل خطوة زمنية ( مثلا \ : كل ثانية ) . اللغة ل ها صف ه أكثر عمومية من منافسات ها ، وتستفيد من البرمجة كائنيّة التوجه ( و مبدإ توارث خصائص نموذج معيّن من خصائص نموذج آخر مما يعطي مرونة أكبر في الكتابة ) . و مع ذلك ، ف إن استخدام ها حاليا محدود جدا في مجال الالكترونيات ، و إن كانت مستخدمة في العديد من المجالات الأخرى . لغة موديليكا هي لغة حرة ( مجانية ومفتوحة المصدر ) تم تطوير ها ب واسطة جمعية موديليكا و هي جمعية غير ربحيّة . اللغة و المكتبات و بعض أدوات المحاكاة لدى موديليكا هي مجانية ومفتوحة المصدر و قد تم استخدام ها في التطبيقات الصناعية . و التطوير و الترويج لموديليكا تنظم ه جمعية موديليكا Modelica Association . جمعية موديليكا تطور أيضا مكتبة موديليكا القياسية الحرة و التي تحوي حوالينموذج عام للمكوّنات ووظيفة برمجيّة ( دالّة برمجية ) في مختلف المجالات ، و ذٰلك حتى ال إصدار 2.1\ . الهدف والمبادئ الغرض من اللغة هو وصف الأنظمة الديناميكية . النماذج توصف عن طريق المعادلات التفاضلية والمعادلات الجبرية والمعادلات المتقطّعة ( أو بالإنجليزية discrete ) و يمكن أيضا عمل نماذج ب لغة موديليكا عن طريق المعادلات التفاضلية الجزئية بعد عمل ال تقطيع الرياضي discretisation من أجل تحويل تلك المعادلات إلى كود برمجي . كما تتيح اللغة البرمجة الرسوميّة وتدعم سلسلة مراتب الحالة للآلات و ل ها العديد من المميزات الأخرى . التطبيقات البرمجيّة في الواجهة الأمامية للتطبيقات البرمجيّة التجارية للغة مودليكا يأتي برنامج آمِي . سيم A MESim ل شركة إيماجين إس .أا Imagine S A الفرنسية ( و التي هي الآن جزء من شركة سيمنز بي . إل . إم Siemens PLM للبرمجيات ) ، ودايمولا Dym ola ل شركة دايناسيم أا . بي Dynasim AB السويدية ( و التي هي الآن جزء من شركة أنظمة داسو Dassault System es ) ، وأنظمة كاتيا CA TI A System s ل شركة أنظمة داسو Dassault Systemes ( وأنظمة كاتيا تعتبر من الأنظمة الرئيسية المستخدمة في التصميم ب استخدام الحاسب الآلي CAD ) ، وساي . مودليكا CyModelica ل شركة معامل ساي . ديزاين CyDesign الأمريكية و التي أصبحت الآن مجموعة إي . إس . آي ESI Group ، وبرنامج وولفرام سيستيم . موديلَر لنمذجة الأنظمة Wolfram SystemModeler ( و الذي كان يسمى سابقا ماث . مودليكا MathModelica ) ل شركة وولفرام ماث . كُور أا . بيWolfram Math Core AB السويدية ( و التي هي الآن جزء من شركة وولفرام ل الأبحاث Wolfram Research ) ، وبرنامج سيميوليشن . إكس للمحاكاة SimulationX ل الشركة الألمانية آي . تي . آي المحدودة ITI Gm bH ، وبرنامج مابل . سيم MapleSim ل الشركة الكندية مابلسوفت Maplesoft . جا . موديليكا دوت أورج JModelica.org هي منصّة مرنة ومفتوحة المصدر تم بناء ها على لغة موديليكا و تستخدم في الاستمثال ( ال أمثلة أو بالإنجليزية : optimization ) و في المحاكاة و تحليل النظم الديناميكية المعقدة . الهدف الرئيسي من هذا المشروع كان عمل منصّة مفتوحة المصدر صالحة ل الاستخدام في الأغراض الصناعية و تستخدم في المحاكاة والاستمثال لنماذج لغة موديليكا ، و في ذات الوقت ، تقدّم منصّة مرنة تعمل كمعمل افتراضي يستخدم في مناهج وخوارزميات البحث و التطوير . أوبن موديليكا ( موديليكا مفتوحة المصدر أو OpenModelica ) هي بيئة برمجيّة تستخدم في المحاكاة والنمذجة و هي مفتوحة المصدر ومبنيّة على لغة موديليكا و هي موجّهة ل الاستخدام الأكاديمي و الصناعي . و تطوير ها على المدى الطويل هو مهمة منظّمة غير ربحيّة هي المجموعة المتحدة لموديليكا مفتوحة المصدر Open Source Modelica Consortium OSMC . إن الهدف من الجهد المبذول في أوبن موديليكا OpenModelica هو بناء بيئة برمجيّة شاملة ومفتوحة المصدر تستخدم لغة موديليكا وتترجم الكود الخاص ب ها و تقوم بعمل المحاكاة والنمذجة بناء على برمجيّات حرّة ( مجّانية ومفتوحة المصدر ) يتم نشر ها في الصورة الثنائية ( بالإنجليزية : binary أي : التنفيذية أو بالإنجليزية : executable ) ب الإضافة إلى الكود المصدري ( بالإنجليزبة : source code ) ل تستخدم في البحث و التدريس ب الإضافة إلى الاستخدام الصناعي . بيئة المحاكاة الحرة سايكوس Scicos ( و هي جزء من برنامج سايلاب SciLab وتسمّى أيضا إكس . سي . أو . إس X cos ) تستخدم لغة موديليكا ب شكل جزئي لنمذجة المكوّنات ( الهندسيّة مثلا ) . ولتلخيص ما سبق يمكن القول ب أن موديليكا تستخدم في \ : البرمجيات التجارية \ : كاتيا من أنظمة داسو ، و كذٰلك دايمولا Dym ola ( Dynasim AB ، السويد ، و التي أصبحت جزءا من أنظمة داسو في عام ؛ آمِي . سيم A MESim ل شركة إيماجين إس .أا Imagine S A الفرنسية من LMS الدولية ; MapleSim من Maplesoft ، كندا ؛ نمذجة الأنظمة من وولفرام من وولفرام ل الأبحاث ، السويد ؛ SimulationX من ITI Gm bH ، دريسدن ، ألمانيا ؛ و في البرمجيات الحرة \ : JModelica.org من جامعة لوند و Modelon AB ، السويد ؛ OpenModelica من جامعة لينشوبينغ ، السويد ؛ Modelicac و يمكن تنزيل ه حاليا مجّانا عند تنزيل - Scilab - X cos / Scicos . تاريخيا إن السعي لتصميم لغة موديليكا قد بدأ ه هيلدنج المكفست في أيلول / سبتمبر عام و كان الهدف هو تطوير لغة برمجة كائنية التوجه ( شيئية ) تستخدم لنمذجة الأنظمة التقنية ( التكنولوجية ) تمكّن المهندسين من إعادة استخدام و تبادل نماذج الأنظمة الديناميكية ب هيئة نمطيّة ( قياسيّة أو بالإنجليزية : standardized for m at ) . لغة موديليكا 0 بنيت على أطروحة من رسالة الدكتورا ه الخاصة بهيلدنج المكفست و على خبرة لغات النمذجة : ألّان Allan ودايمولا Dym ola و إن . إم . إف NMF وأوبجكت . ماث ObjectMath وأومولا Om ola و + سيدوبس SIDOPS + وسمايل Smile . كان هيلدنج المكفست المخطط الرئيسي للغة موديليكا ، و لٰكن العديد من الناس الآخرين ساهموا كذلك \ . و في أيلول / سبتمبر عامتم إطلاق ال إصدار 0 من مواصفات لغة موديليكا و التي كانت الأساس ل التطبيق العمل ي للنموذج المبدئي الذي كان من خلال نظام برنامج تجاري يدعى دايمولا Dym ola . في عام ، أنشئت جمعية غير ربحية هي جمعية موديليكا وأنشئت لكي تدير التطوير المستمر للغة موديليكا ولمكتبة موديليكا القياسية الحرة . و في نفس العام ، بدأ استخدام لغة موديليكا في التطبيقات الصناعية . خصائص ومميزات تشبه لغة مودلكا لغات البرمجة كائنية التوجه مثل سي + + أو جافا ، إلا إن ها تختلف عن ها في جانبين من الجوانب المهمة . الأول هو أن لغة موديليكا هي لغة نمذجة و ليست لغة برمجة تقليدية . ف الأصناف ( الفصائل أو بالإنجليزية : classes ) في لغة موديليكا لا يتم ترجمة الكود البرمجي ل ها ب الطريقة المعتادة ، بل يتم تحويل ال أصناف إلى كائنات برمجيّة ( أشياء برمجيّة أو بالإنجليزية : objects ) و بعد ذلك يتم التعامل مع ها ب واسطة محرك المحاكاة ( بالإنجليزية : simulation engine ) . ومحرّك المحاكاة لا يتم تحديد ه ب واسطة اللغة ( أي : لغة موديليكا ) ، و لٰكن بعض الإمكانيات التي يجب أن تكون متوفرة في ه هي التي يتم تحديد ها . و الجانب الثاني هو أن ه ب الرغم من أن ال أصناف ( الفصائل أو بالإنجليزية : classes ) قد تحوي مكوّنات خوارزميّة تشبه تلك التي توجد في العبارات ( أو الجُمل ) والبلوكات البرمجيّة في لغات البرمجة التقليدية ، إلا أن المحتوى الرئيسي ل ها هنا هو مجموعة من المعادلات الرياضيّة . ف على النقيض من عبارة التعيين ( بالإنجليزية : assignment ) المعتادة التي تشبه هذه x\ : = + y و التي في ها الطرف الأيسر من العبارة يتم تعيين قيمة محسوبة ل ه عن طريق الطرف ال أيمن ، فالمعادلات ( في لغة موديليكا ) يوجد في ها تعبيرات رياضية في كلا الطرفين ال أيمن والأيسر ، مثل هذه المعادلة ، x + y = * z فالمعادلات هنا ليس المقصود من ها وصف التعيين ( بالإنجليزية : assignment ) بل هي تصف التساوي ( بالإنجليزية : equality ) . وبمصطلحات لغة موديليكا ، يمكن القول ب أن المعادلات لا تحتاج إلى تعريف مسبق للمقدّمات البرمجية . ومحرك المحاكاة قد يعالج المعادلات رمزيّا ( وعادة يكون هذا ضروريا ) و ذٰلك ل تحديد ترتيب عمليات التنفيذ و كذٰلك تحديد أي من المكونات في المعادلة قد يتم اعتبار ها مدخلات وأي ها قد يتم اعتبار ها مخرجات . مراجع وصلات خارجية جمعية مودليكا Modelica دايمولا Dym ola سيمنز بي . إل . إم Siemens PLM للبرمجيات برنامج سيميوليشن . إكس للمحاكاة SimulationX ل الشركة الألمانية آي . تي . آي المحدودة ITI GmbH برنامج مابل . سيم MapleSim ل الشركة الكندية مابلسوفت Maplesoft الملاحظات والمراجع برمجة كائنية التوجه لغات برمجة تعريفية لغات نمذجة البيانات