Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "VIATRA2/Examples/VTCL/ASM"

< VIATRA2‎ | Examples‎ | VTCL
(New page: == Abstract State Machines == Abstract state machines (ASMs) provide a high-level means for assembling complex transformation programs. === ASM functions === ASM functions provide a non...)
 
(ASM functions)
Line 21: Line 21:
  
 
<source lang="text">
 
<source lang="text">
 +
// Import is needed if types are intended to be used by local names
 
import datatypes;
 
import datatypes;
 
machine asmFuns {
 
machine asmFuns {
  asmfunction team(Integer, String) : String / 2 {
+
  asmfunction team(Integer, datatypes.String) : String / 2 { // FQNs can always be used for defining types
 
  (1, "real") = "Casillas";
 
  (1, "real") = "Casillas";
 
  (7, "real") = "Raul";
 
  (7, "real") = "Raul";

Revision as of 12:22, 17 February 2009

Abstract State Machines

Abstract state machines (ASMs) provide a high-level means for assembling complex transformation programs.

ASM functions

ASM functions provide a non-persistent map to store values. Each ASM function needs to be declared prior to its first use. Initial values can also be set when defining an ASM function. The values stored at a certain location of an ASM function can be updated using the update ASM construct.

machine asmFuns {
 asmfunction team / 2 {
 		(1, "real") = "Casillas";
 		(7, "real") = "Raul";
 }
}

In the new (upcoming) VIATRA2 version, types can also be defined for ASM functions as follows.

// Import is needed if types are intended to be used by local names
import datatypes;
machine asmFuns {
 asmfunction team(Integer, datatypes.String) : String / 2 { // FQNs can always be used for defining types
 		(1, "real") = "Casillas";
 		(7, "real") = "Raul";
 }
}

Simple rules

Back to the top