BIR features functional expression usually found in functional programming languages such as SML. Functional expressions can be recursive and are useful, for example, to express sophisticated heap properties because data structures are usually recursive (or mutually recursive). Since BIR expressions are side-effect free, thus, functional expressions are also side-effect free. BIR currently only support first-order functions; more advanced features may be added in the future. Figure 2.27, “Concrete Syntax for Functional Expression Declaration” presents the concrete syntax for functional expression declaration.
Abstract Syntax Tree.
The Java AST class for functional expression declaration is the Fun class.