User Tools

Site Tools


01_user_documentation:groimp-platform:xl-language

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
01_user_documentation:groimp-platform:xl-language [2025/01/24 12:01] – ↷ Links adapted because of a move operation gaetan01_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: 
- 
-<code> 
-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); 
-</code> 
- 
-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 
- 
-<code> 
-sum ((* f:F, (f.diameter > 1) *).length) 
-</code> 
- 
-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:groimp-platform:xl-lambda|XL-lambda function]] 
-==== Examples ==== 
- 
-You can find many examples of the XL languages in the [[03_community:gallery|gallery]]. 
- 
-==== Complete XL documentation ==== 
- 
-An extensive documentation on the XL language specification can be found on the [[https://manual.grogra.de/XL/|grogra website]]. 
- 
-==== Java ==== 
- 
-As XL is based on Java, some coding rules are the same. 
- 
-For instance, functions are declared with a modifier (public, protected, private,...), a return type (int, void, ...), the function name and the parameters in parenthesis.  
- 
-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