01_user_documentation:groimp-platform:xl-language
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| 01_user_documentation:groimp-platform:xl-language [2025/01/24 12:01] – ↷ Links adapted because of a move operation gaetan | 01_user_documentation:groimp-platform:xl-language [2025/01/24 17:07] (current) – removed gaetan | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ===== XL language ===== | ||
| - | The programming language XL is our implementation of relational growth grammars. XL is built on top of the programming language Java: This combines the advantages of the rule-based paradigm with the strength of Java, including the rich set of existing Java libraries. | ||
| - | |||
| - | ==== Rules ==== | ||
| - | |||
| - | Rules are specified within a transformation statement. The snowflake curve can be generated by the two rules: | ||
| - | |||
| - | < | ||
| - | Axiom ==> F(1) RU(120) F(1) RU(120) F(1); | ||
| - | F(x) ==> F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3); | ||
| - | </ | ||
| - | |||
| - | Behind the scenes, Axiom, F and RU correspond to Java classes of that name. The bound variable x corresponds to a field of class F. | ||
| - | |||
| - | ==== Expressions with multiple values ==== | ||
| - | |||
| - | XL supports expressions that have multiple values successively. E.g., the expression (* F *) returns all existing objects of class F. Operators like sum perform calculations on those expressions. To get the total length of all F‘s having a diameter greater than one, just write | ||
| - | |||
| - | < | ||
| - | sum ((* f:F, (f.diameter > 1) *).length) | ||
| - | </ | ||
| - | |||
| - | Especially the graph query expressions of the form (* … *) enable you to specify local or global interactions in a concise and expressive way. | ||
| - | |||
| - | |||
| - | ==== More extensions to the java syntax ==== | ||
| - | |||
| - | - [[01_user_documentation: | ||
| - | ==== Examples ==== | ||
| - | |||
| - | You can find many examples of the XL languages in the [[03_community: | ||
| - | |||
| - | ==== Complete XL documentation ==== | ||
| - | |||
| - | An extensive documentation on the XL language specification can be found on the [[https:// | ||
| - | |||
| - | ==== Java ==== | ||
| - | |||
| - | As XL is based on Java, some coding rules are the same. | ||
| - | |||
| - | For instance, functions are declared with a modifier (public, protected, private, | ||
| - | |||
| - | Similarly, variables are declared with a type, which is identical to the Java types. | ||
01_user_documentation/groimp-platform/xl-language.1737716502.txt.gz · Last modified: 2025/01/24 12:01 by gaetan
