مودليكا
Paradigm | declarative language |
---|---|
First appeared | 1997 |
الإصدار المستقر | 3.3
/ May 9, 2012 |
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 = ثلاثة * 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). (PDF). Wiley-IEEE Press. ISBN .
- 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 |
هندسة برامج | |