Knowledge

Kermeta

Source 📝

119:
standard. It is designed to write programs which are also models, to write transformations of models (programs that transform a model into another), to write constraints on these models, and to execute them. The goal of this model approach is to bring an additional level of abstraction on top of
177:: integrate a simple but powerful weaver for simple meta-modeling tasks. Arbitrary complex weaving is achieved using a dedicated composer written in Kermeta. This allows programmers to extend existing metamodels. Especially in order to add behavior to them by weaving behavioral 77:, but also from BasicMTL, a model transformation language implemented in 2004 in the Triskell team by D. Vojtisek and F. Fondement. It is also inspired by the previous experience on MTL, the first transformation language created by Triskell, and by the Xion action language for 120:
the "object" level and thus to see a given system like a set of concepts (and instances of concepts) that form an explicitly coherent whole, which one will call a model.
55: 1097: 178: 84:
The name Kermeta is an abbreviation for "Kernel Metamodeling" and reflects the fact that the language is conceived as a core for (meta-)modeling. The
1018: 1082: 1087: 972: 112: 967: 70: 952: 78: 947: 942: 1092: 190: 156: 100: 977: 116: 66: 59: 168: 957: 96: 88:
consonance of this name is an intentional reflection of the Triskell team's location in Brittany.
1024: 200: 184: 92: 1014: 1006: 140: 174: 162: 85: 1043: 1076: 962: 1028: 196:
statically typed: genericity for the classes and the operations, function types...
23: 998: 1010: 1005:. Lecture Notes in Computer Science. Vol. 3713. pp. 264–278. 95:
is currently available under its version 2.0.4 released in 2012. It is
187:: operations support pre and post conditions, classes use invariants. 997:
Muller, Pierre-Alain; Fleurey, Franck; Jézéquel, Jean-Marc (2005).
203:: the complete model of the program is available during execution. 130:
a real concept of model, more precisely of model type (Jim Steel).
47: 43: 133:
a concrete syntax that fits well to model and metamodel writing.
127:
all the concepts of EMOF used for the specifications of a model.
51: 39: 74: 65:
The Kermeta language borrows concepts from languages such as
152:
The main characteristics of the Kermeta language are :
38:
language was initiated by Franck Fleurey in 2005 within the
999:"Weaving Executability into Object-Oriented Meta-languages" 1067: 213: 212:
The curious reader will find further information on the
709:// Check if there is one and only one valid transition 171:: first-class concepts of associations and composition 115:
language. Its underlying metamodel conforms to the
193:: functions and first class lambda-expressions 1003:Model Driven Engineering Languages and Systems 8: 22:is a modeling and programming language for 136:two paradigms: the object, and the model. 91:Kermeta, and its execution platform under 989: 310:* Print the FSM on the standard output 7: 165:: multiple inheritance, late binding 159:: traditional structures of control 1098:Software using the Eclipse license 1044:"Version 2.0.4 is released !" 14: 16:Modeling and programming language 421:" Transition : " 181:(operational or translational). 46:(gathering researchers of the 1: 973:Model Transformation Language 139:a bridge towards the Eclipse 631:// Get the valid transitions 889:// update FSM current state 760:"Non Determinism" 113:aspect oriented programming 1114: 730:"No Transition!" 111:Kermeta is a modeling and 1083:Unified Modeling Language 953:Domain Specific Modelling 367:"State : " 1068:Kermeta official website 948:Domain Specific Language 943:Model Driven Engineering 223: 1088:Java platform software 766:// fire the transition 101:Eclipse Public License 220:Example (Kermeta 1.4) 123:Kermeta thus brings: 978:Meta-Object Facility 60:University of Rennes 1011:10.1007/11557432_19 958:Model-Based Testing 1042:Vojtisek, Didier. 841:incomingTransition 823:outgoingTransition 664:outgoingTransition 580:incomingTransition 559:outgoingTransition 481:")->" 391:outgoingTransition 185:design by contract 1020:978-3-540-29010-0 1105: 1055: 1054: 1052: 1050: 1039: 1033: 1032: 994: 932: 929: 926: 923: 920: 917: 914: 911: 908: 905: 902: 899: 896: 893: 890: 887: 884: 881: 878: 875: 872: 869: 866: 863: 860: 857: 854: 851: 848: 845: 842: 839: 836: 833: 830: 827: 824: 821: 818: 815: 812: 809: 806: 803: 800: 797: 794: 791: 788: 785: 782: 779: 778:validTransitions 776: 773: 770: 767: 764: 761: 758: 755: 752: 749: 746: 743: 740: 739:validTransitions 737: 734: 731: 728: 725: 722: 719: 716: 715:validTransitions 713: 710: 707: 704: 701: 698: 695: 692: 689: 686: 683: 680: 677: 674: 671: 668: 665: 662: 659: 656: 655:validTransitions 653: 650: 647: 644: 641: 638: 637:validTransitions 635: 632: 629: 626: 623: 620: 617: 614: 611: 608: 605: 602: 599: 596: 593: 590: 587: 584: 581: 578: 575: 572: 569: 566: 563: 560: 557: 554: 551: 548: 545: 542: 539: 536: 533: 530: 527: 524: 521: 518: 515: 512: 509: 506: 503: 500: 497: 494: 491: 488: 485: 482: 479: 476: 473: 470: 467: 464: 461: 458: 455: 452: 449: 446: 443: 440: 437: 434: 431: 428: 425: 422: 419: 416: 413: 410: 407: 404: 401: 398: 395: 392: 389: 386: 383: 380: 377: 374: 371: 368: 365: 362: 359: 356: 353: 350: 347: 344: 341: 338: 335: 332: 329: 326: 323: 320: 317: 314: 311: 308: 305: 302: 299: 296: 293: 290: 287: 284: 281: 278: 275: 272: 269: 266: 263: 260: 257: 254: 251: 248: 245: 242: 239: 236: 233: 230: 227: 1113: 1112: 1108: 1107: 1106: 1104: 1103: 1102: 1073: 1072: 1064: 1059: 1058: 1048: 1046: 1041: 1040: 1036: 1021: 996: 995: 991: 986: 939: 934: 933: 930: 927: 924: 921: 918: 915: 912: 909: 906: 903: 900: 897: 894: 891: 888: 885: 882: 879: 876: 873: 870: 867: 864: 861: 858: 855: 852: 849: 846: 843: 840: 837: 834: 831: 828: 825: 822: 819: 816: 813: 810: 807: 804: 801: 798: 795: 792: 789: 786: 783: 780: 777: 774: 771: 768: 765: 762: 759: 756: 753: 750: 747: 744: 741: 738: 735: 732: 729: 726: 723: 720: 717: 714: 711: 708: 705: 702: 699: 696: 693: 690: 687: 684: 681: 678: 675: 672: 669: 666: 663: 660: 657: 654: 651: 648: 645: 642: 639: 636: 633: 630: 627: 624: 621: 618: 615: 612: 609: 606: 603: 600: 597: 594: 591: 588: 585: 582: 579: 576: 573: 570: 567: 564: 561: 558: 555: 552: 549: 546: 543: 540: 537: 534: 531: 528: 525: 522: 519: 516: 513: 510: 507: 504: 501: 498: 495: 492: 489: 486: 483: 480: 477: 474: 471: 468: 465: 462: 459: 456: 453: 450: 447: 444: 441: 438: 435: 432: 429: 426: 423: 420: 417: 414: 411: 408: 405: 402: 399: 396: 393: 390: 387: 384: 381: 378: 375: 372: 369: 366: 363: 360: 357: 354: 351: 348: 345: 342: 339: 336: 333: 330: 327: 324: 321: 318: 315: 312: 309: 306: 303: 300: 297: 294: 291: 288: 285: 282: 279: 276: 273: 270: 267: 264: 261: 258: 255: 252: 249: 246: 243: 240: 237: 234: 231: 228: 225: 222: 214:Kermeta website 210: 175:aspect-oriented 163:object-oriented 150: 148:Characteristics 109: 86:Breton language 32: 17: 12: 11: 5: 1111: 1109: 1101: 1100: 1095: 1093:Free UML tools 1090: 1085: 1075: 1074: 1071: 1070: 1063: 1062:External links 1060: 1057: 1056: 1034: 1019: 988: 987: 985: 982: 981: 980: 975: 970: 965: 960: 955: 950: 945: 938: 935: 445:"-(" 224: 221: 218: 209: 206: 205: 204: 197: 194: 188: 182: 172: 169:model-oriented 166: 160: 149: 146: 145: 144: 137: 134: 131: 128: 108: 105: 31: 28: 15: 13: 10: 9: 6: 4: 3: 2: 1110: 1099: 1096: 1094: 1091: 1089: 1086: 1084: 1081: 1080: 1078: 1069: 1066: 1065: 1061: 1045: 1038: 1035: 1030: 1026: 1022: 1016: 1012: 1008: 1004: 1000: 993: 990: 983: 979: 976: 974: 971: 969: 966: 964: 961: 959: 956: 954: 951: 949: 946: 944: 941: 940: 936: 463:"/" 219: 217: 215: 207: 202: 201:introspection 198: 195: 192: 189: 186: 183: 180: 176: 173: 170: 167: 164: 161: 158: 155: 154: 153: 147: 142: 138: 135: 132: 129: 126: 125: 124: 121: 118: 114: 106: 104: 102: 98: 94: 89: 87: 82: 80: 76: 72: 68: 63: 61: 57: 53: 49: 45: 41: 37: 29: 27: 26:engineering. 25: 21: 1047:. Retrieved 1037: 1002: 992: 963:Metamodeling 904:currentState 298:currentState 286:initialState 211: 151: 122: 110: 99:, under the 90: 83: 64: 35: 33: 19: 18: 97:open-source 1077:Categories 1049:3 December 984:References 802:Transition 649:Transition 643:Collection 589:Transition 568:Transition 553:ownedState 337:ownedState 265:ownedState 191:functional 157:imperative 107:Philosophy 898:owningFSM 868:operation 856:attribute 844:attribute 826:reference 808:reference 598:operation 577:reference 556:attribute 541:owningFSM 538:reference 526:attribute 316:operation 295:reference 283:reference 280:owningFSM 262:attribute 199:complete 179:semantics 143:formalism 24:metamodel 937:See also 319:printFSM 250:standard 58:and the 42:team of 40:Triskell 1029:2824834 415:writeln 361:writeln 244:kermeta 238:kermeta 235:require 226:package 93:Eclipse 36:Kermeta 30:History 20:Kermeta 1027:  1017:  925:output 916:result 913:target 892:source 880:String 865:String 853:String 847:output 829:target 811:source 769:result 694:equals 670:select 622:String 613:String 595:target 574:source 535:String 493:target 475:output 433:source 208:Syntax 1025:S2CID 859:input 835:State 817:State 799:class 757:raise 727:raise 721:empty 688:input 520:State 517:class 457:input 409:stdio 355:stdio 304:State 292:State 274:State 253:class 241:using 141:ECore 48:INRIA 44:IRISA 1051:2012 1015:ISBN 871:fire 790:fire 754:then 748:> 745:size 724:then 652:> 646:< 601:step 529:name 499:name 439:name 397:each 379:name 343:each 331:self 117:EMOF 73:and 62:1). 56:INSA 52:CNRS 34:The 1007:doi 968:OCL 928:end 793:end 784:one 763:end 733:end 634:var 586:set 565:set 547:FSM 511:end 307:/** 271:set 256:FSM 229:fsm 79:UML 75:QVT 71:OCL 67:MOF 1079:: 1023:. 1013:. 1001:. 886:do 883:is 874:() 736:if 712:if 628:do 625:is 328:do 325:is 322:() 313:*/ 247::: 216:. 103:. 81:. 69:, 54:, 50:, 1053:. 1031:. 1009:: 931:} 922:= 919:: 910:= 907:: 901:. 895:. 877:: 862:: 850:: 838:# 832:: 820:# 814:: 805:{ 796:} 787:. 781:. 775:= 772:: 751:1 742:. 718:. 706:} 703:) 700:c 697:( 691:. 685:. 682:t 679:| 676:t 673:{ 667:. 661:= 658:: 640:: 619:: 616:) 610:: 607:c 604:( 592:# 583:: 571:# 562:: 550:# 544:: 532:: 523:{ 514:} 508:} 505:} 502:) 496:. 490:. 487:t 484:+ 478:+ 472:. 469:t 466:+ 460:+ 454:. 451:t 448:+ 442:+ 436:. 430:. 427:t 424:+ 418:( 412:. 406:| 403:t 400:{ 394:. 388:. 385:s 382:) 376:. 373:s 370:+ 364:( 358:. 352:| 349:s 346:{ 340:. 334:. 301:: 289:: 277:# 268:: 259:{ 232:;

Index

metamodel
Triskell
IRISA
INRIA
CNRS
INSA
University of Rennes
MOF
OCL
QVT
UML
Breton language
Eclipse
open-source
Eclipse Public License
aspect oriented programming
EMOF
ECore
imperative
object-oriented
model-oriented
aspect-oriented
semantics
design by contract
functional
introspection
Kermeta website
Model Driven Engineering
Domain Specific Language
Domain Specific Modelling

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.