مودليكا
Paradigm | declarative language |
---|---|
First appeared | 1997 |
الإصدار المستقر | 3.3
/ May 9, 2012[1] |
OS | Cross-platform |
License | Modelica License Version 2 |
Website | www.modelica.org |
Major implementations | |
AMESim, CATIA Systems, CyModelica, Dymola, JModelica.org, MapleSim, Wolfram SystemModeler, OpenModelica, Scicos, SimulationX, Vertex, Xcos |
مودليكا أو موديليكا إنگليزية: Modelica هي لغة برمجة تستخدم في النمذجة وهي كائنيّة التوجّه (شيئية أو بالإنجليزية: object-oriented) متعددة المجالات وتستخدم في النمذجة الموجّهة للمكوّنات (الهندسية مثلا) في أنظمة معقّدة مثل تلك الأنظمة التي تحوي مكوّنات جزئية ميكانيكية أو كهربية أو إلكترونية أو هيدروليكية أو حرارية أو خاصة بالتحكم أو خاصة بالقدرة الكهربائيّة أو موجّهة لعملية معيّنة.
لغة مودليكا هي لغة حرة (مجانية ومفتوحة المصدر) تم تطويرها بواسطة جمعية مودليكا وهي جمعية غير ربحيّة.
جمعية مودليكا تطور أيضا مكتبة مودليكا القياسية الحرة والتي تحوي حوالي 1360 نموذج عام للمكوّنات و 1280 وظيفة برمجيّة (دالّة برمجية) في مختلف المجالات، وذلك حتى الإصدار 3.2.1 .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
الهدف والمبادئ
الغرض من اللغة هو وصف الأنظمة الديناميكية. النماذج توصف عن طريق المعادلات التفاضلية و المعادلات الجبرية والمعادلات المتقطّعة (أو بالإنجليزية discrete) ويمكن أيضا عمل نماذج بلغة موديليكا عن طريق المعادلات التفاضلية الجزئية بعد عمل التقطيع الرياضي discretisation من أجل تحويل تلك المعادلات إلى كود برمجي. كما تتيح اللغة البرمجة الرسوميّة وتدعم سلسلة مراتب الحالة للآلات ولها العديد من المميزات الأخرى.
خصائص ومميزات
تشبه لغة مودلكا لغات البرمجة كائنية التوجه مثل سي++ أو جافا، إلا إنها تختلف عنها في جانبين من الجوانب المهمة.
الأول هو أن لغة مودليكا هي لغة نمذجة وليست لغة برمجة تقليدية.
فالأصناف (الفصائل أو بالإنجليزية: classes) في لغة مودليكا لا يتم ترجمة الكود البرمجي لها بالطريقة المعتادة، بل يتم تحويل الأصناف إلى كائنات برمجيّة (أشياء برمجيّة أو بالإنجليزية: objects) وبعد ذلك يتم التعامل معها بواسطة محرك المحاكاة (بالإنجليزية: simulation engine).
ومحرّك المحاكاة لا يتم تحديده بواسطة اللغة (أي: لغة مودليكا)، ولكن بعض الإمكانيات التي يجب أن تكون متوفرة فيه هي التي يتم تحديدها.
والجانب الثاني هو أنه بالرغم من أن الأصناف (الفصائل أو بالإنجليزية: classes) قد تحوي مكوّنات خوارزميّة تشبه تلك التي توجد في العبارات (أو الجُمل) والبلوكات البرمجيّة في لغات البرمجة التقليدية، إلا أن المحتوى الرئيسي لها هنا هو مجموعة من المعادلات الرياضيّة.
فعلى النقيض من عبارة التعيين (بالإنجليزية: assignment) المعتادة التي تشبه هذه
x := 2 + y
والتي فيها الطرف الأيسر من العبارة يتم تعيين قيمة محسوبة له عن طريق الطرف الأيمن، فالمعادلات (في لغة مودليكا) يوجد فيها تعبيرات رياضية في كلا الطرفين الأيمن والأيسر، مثل هذه المعادلة،
x + y = 3 * z
فالمعادلات هنا ليس المقصود منها وصف التعيين (بالإنجليزية: assignment) بل هي تصف التساوي (بالإنجليزية: equality).
وبمصطلحات لغة مودليكا، يمكن القول بأن المعادلات لا تحتاج إلى تعريف مسبق للمقدّمات البرمجية. ومحرك المحاكاة قد يعالج المعادلات رمزيّا (وعادة يكون هذا ضروريا) وذلك لتحديد ترتيب عمليات التنفيذ وكذلك تحديد أي من المكونات في المعادلة قد يتم اعتبارها مدخلات وأيها قد يتم اعتبارها مخرجات.
تاريخيا
إن السعي لتصميم لغة مودليكا قد بدأه هيلدنج المكفست في أيلول/سبتمبر عام 1996. وكان الهدف هو تطوير لغة برمجة كائنية التوجه (شيئية) تستخدم لنمذجة الأنظمة التقنية (التكنولوجية) تمكّن المهندسين من إعادة استخدام وتبادل نماذج الأنظمة الديناميكية بهيئة نمطيّة (قياسيّة أو بالإنجليزية: standardized format).
لغة مودليكا 1.0 بنيت على أطروحة من رسالة الدكتوراه الخاصة بهيلدنج المكفست وعلى خبرة لغات النمذجة: ألّان Allan ودايمولا Dymola و إن.إم.إف NMF وأوبجكت.ماث ObjectMath وأومولا Omola و +سيدوبس SIDOPS+ وسمايل Smile.
كان هيلدنج المكفست المخطط الرئيسي للغة مودليكا، ولكن العديد من الناس الآخرين ساهموا كذلك .
وفي أيلول/سبتمبر عام 1997 تم إطلاق الإصدار 1.0 من مواصفات لغة مودليكا والتي كانت الأساس للتطبيق العملي للنموذج المبدئي الذي كان من خلال نظام برنامج تجاري يدعى دايمولا Dymola.
في عام 2000 ، أنشئت جمعية غير ربحية هي جمعية مودليكا وأنشئت لكي تدير التطوير المستمر للغة مودليكا ولمكتبة مودليكا القياسية الحرة.
وفي نفس العام، بدأ استخدام لغة مودليكا في التطبيقات الصناعية.
التطبيقات البرمجيّة
في الواجهة الأمامية للتطبيقات البرمجيّة التجارية للغة مودليكا يأتي برنامج آمِي.سيم 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) تستخدم لغة مودليكا بشكل جزئي لنمذجة المكوّنات (الهندسيّة مثلا).
انظر أيضاً
- AMESim
- AMPL
- APMonitor
- ASCEND
- Domain-Specific Modeling DSM
- Dymola
- EcosimPro: Continuous and Discrete Modelling and Simulation Software
- EMSO
- GAMS
- JModelica.org
- Openmodelica
- MapleSim
- MATLAB
- Optimica Compiler Toolkit
- SimulationX
- Wolfram SystemModeler
- Scilab/Xcos
- Kepler (Ptolemy)
الهامش
- ^ "Modelica Language Specification, Version 3.3" (PDF). Modelica Association. 2012-05-09.
المراجع
وصلات خارجية
- Modelica 3.3 language specification
- Modelica Association, the homepage of the non-profit Modelica Association (developing Modelica)
- Modelica by Example A free interactive HTML book for learning Modelica, by Michael Tiller
- Introduction to Physical Modeling with Modelica, book by Michael Tiller
- Fritzson, Peter (February 2004). Principles of Object-Oriented Modeling and Simulation with Modelica 2.1 (PDF). Wiley-IEEE Press. ISBN 978-0-471-47163-9.
- Commercial Modelica tools: Dymola, LMS Imagine.Lab AMESim, CyModelica MapleSim, Wolfram SystemModeler, Modelica Physical Modeling Toolbox for Matlab, SimulationX, Vertex
- Open source Modelica tools: OpenModelica (GPL or OSMC-PL), JModelica.org (GPL)
- Modelica Overview
لغات برمجة | |
لغات كائنية | |
سي++ ++C |
سي شارپ #C |
دلفي (لغة برمجة) Delphi |
ادا 95 Ada |
جاڤا Java |
سمولتوك Smalltalk |
روبي Ruby |
اوبجكت پاسكال Object Pascal |
لغات تقليدية | |
بيسيك Basic |
سي C |
باسكال Pascal |
كوبول COBOL |
فورتران FORTRAN |
أسمبلي Assembly |
لغات وظيفية | |
ليسپ Lisp |
پرولوگ Prolog |
پايثون Python |
پاريس Paris |
هندسة برامج | |