Modelica
Tipus | llenguatge de programació i llenguatge de programació declaratiu ![]() |
---|---|
Versió inicial | 1997 ![]() |
Característiques tècniques | |
Plataforma | Multiplataforma |
Equip | |
Creador/s | Modelica Association Project (MAP) |
Més informació | |
Lloc web | www.modelica.org |
| |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/8/86/Second_derivative_1.png/304px-Second_derivative_1.png)
Modelica és un llenguatge de modelatge declaratiu, orientat a objectes i multidomini per al modelatge orientat a components de sistemes complexos, per exemple, sistemes que contenen subcomponents mecànics, elèctrics, electrònics, hidràulics, tèrmics, de control, d'energia elèctrica o orientats a processos. El llenguatge Modelica gratuït està desenvolupat per l'Associació Modelica sense ànim de lucre.[1] L'Associació Modelica també desenvolupa la biblioteca estàndard Modelica gratuïta[2] que conté uns 1400 components de model genèrics i 1200 funcions en diversos dominis, a partir de la versió 4.0.0.[3]
Tot i que Modelica s'assembla a llenguatges de programació orientats a objectes, com ara C++ o Java, difereix en dos aspectes importants. En primer lloc, Modelica és un llenguatge de modelatge més que un llenguatge de programació convencional. Les classes de Modelica no es compilen en el sentit habitual, sinó que es tradueixen en objectes que després són exercits per un motor de simulació. El motor de simulació no està especificat per l'idioma, tot i que es descriuen certes capacitats requerides.
En segon lloc, tot i que les classes poden contenir components algorítmics similars a enunciats o blocs en llenguatges de programació, el seu contingut principal és un conjunt d'equacions. En contrast amb una declaració d'assignació típica, com ara
x := 2 + y;
on al costat esquerre de la declaració se li assigna un valor calculat a partir de l'expressió del costat dret, una equació pot tenir expressions tant al costat dret com a l'esquerra, per exemple,
x + y = 3 * z;
Les equacions no descriuen l'assignació sinó la igualtat. En termes de Modelica, les equacions no tenen causalitat predefinida. El motor de simulació pot (i normalment ha de) manipular les equacions simbòlicament per determinar el seu ordre d'execució i quins components de l'equació són entrades i quins són sortides.[4]