|
@@ -63,7 +63,7 @@ Language description
|
|
|
|
|
|
Next we describe the basic constructs of the language, as offered by our compiler.
|
|
|
The language is inspired by Python syntax, and highly resembles it.
|
|
|
-Nonetheless, it is a lot simpler.
|
|
|
+Nonetheless, it is much more minimal.
|
|
|
In the remainder of this subsection, we go over the different language constructs.
|
|
|
|
|
|
If
|
|
@@ -263,13 +263,14 @@ Operators
|
|
|
^^^^^^^^^
|
|
|
|
|
|
While operators are seemingly supported by the compiler, these are actually expanded to function calls to relevant functions.
|
|
|
-For example, *1 + 2*, is expanded to *integer_addition(1, 2)*
|
|
|
+For example, *1 + 2*, is expanded to *integer_addition(1, 2)*.
|
|
|
+To do this conversion, it is mandatory that the type of both arguments can be determined statically.
|
|
|
|
|
|
User I/O
|
|
|
^^^^^^^^
|
|
|
|
|
|
User input and output is done through the keyworded operations *input()* and *output(msg)*.
|
|
|
-*input()* returns the first message in the input queue of the current user.
|
|
|
+*input()* returns the first message in the input queue of the current user, potentially blocking until there is input.
|
|
|
*output(msg)* places the value of the expression in the output queue of the current user.
|
|
|
|
|
|
All I/O is done using queues: the value is only read and written to a specific place in the Modelverse.
|