Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
M MTSA
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 26
    • Issues 26
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 3
    • Merge requests 3
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Metrics
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Package Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • lafhis
  • MTSA
  • Wiki
    • Enduser
  • Hello World

Hello World · Changes

Page history
Update Hello World authored Jun 19, 2026 by Sebastian Uchitel's avatar Sebastian Uchitel
Hide whitespace changes
Inline Side-by-side
Showing with 6 additions and 7 deletions
+6 -7
  • enduser/Hello-World.md enduser/Hello-World.md +6 -7
  • No files found.
enduser/Hello-World.md 0 → 100644
View page @ 5eaf7dc3
[[_TOC_]]
Here we walk through the basics involved in writing a simple behaviour model.
We use FSP (Finite State Process) language for definitions.
Here are two sequential processes and one parallel composition:
```
TEST_CELLS = (sCountCells -> PROCESSING),
PROCESSING = (eCountCells -> TEST_CELLS).
DOCTOR_CELLS = (analyseBlood -> INSPECTING | sCountCells -> DOCTOR_CELLS),
INSPECTING = (bloodResult -> BLOOD | sCountCells -> DOCTOR_CELLS),
BLOOD = (sCountCells -> DOCTOR_CELLS).
|| CELLS = (DOCTOR_CELLS || TEST_CELLS).
```
# Parse, Compile and Compose
Copy the above example in MTSA _Edit_ tab.
## Parse
To parse and verify that the text has no syntax errors, click on the parse icon. ![Parse icon](https://git.exactas.uba.ar/lafhis/mtsa/-/raw/master/maven-root/mtsa/src/main/resources/icon/parse.gif)
If something goes wrong the pointer will position automatically in the line and column where the error was found. And the error message will be displayed in the _Output_ tab.
You may try to force an error to verify this behavior, for instance with the following text:
```
TEST_CELLS = sCountCells -> PROCESSING.
```
You will get the following error message
**ERROR line:1 - (, if or process identifier expected**
## Compile
You can compile the FSP into LTS. For example, `TEST_CELLS` and `DOCTOR_CELLS`. Click on the ![C icon](https://git.exactas.uba.ar/lafhis/mtsa/-/raw/master/maven-root/mtsa/src/main/resources/icon/compile.gif)
## Compose
Parallel composition computed with the ![Compose icon](https://git.exactas.uba.ar/lafhis/mtsa/-/raw/master/maven-root/mtsa/src/main/resources/icon/compose.gif) button. You must also choose the machine to compose. If you only have one parallel composition in your editor, MTSA will automatically select it. Otherwise, you can switch between the machines by clicking in the drop down menu.
## Result
After composing, switch to the **Draw** tab to see the graphical representation of the LTS for `TEST_CELLS`, `DOCTOR_CELLS`, and `CELLS`.
## Parsing details
Note that the definition of one process ends when you use a dot. Use comma introduce local definitions within a process definition. In the above example, `INSPECTING` and `BLOOD` are local definitions to `DOCTOR_CELLS`.
\ No newline at end of file
Clone repository
  • Developer
  • End User
  • devs
    • outputmessages
  • enduser
    • DCS
    • Discrete Event Controller Synthesis
    • FSP
    • Fluents and LTL properties
    • Hello World
    • Modal Transition Systems
    • reactiveSynthesis
    • supervisoryControl
  • Home