-
Book Overview & Buying
-
Table Of Contents
-
Feedback & Rating

Supercharge Your Applications with GraalVM
By :

Truffle defines a Domain-Specific Language (DSL) based on the Java annotation processor. The language developer has to write a lot of boilerplate code to manage the states of the specializations. To appreciate how Truffle DSL makes a programmer's life easy, let's take a quick example:
c = a + b
As we discussed earlier in this chapter, in AST, every operation and operand is represented as a node. In Truffle, it is a Java class derived from com.oracle.truffle.api.nodes.Node
. To understand the need for a DSL, let's oversimplify the implementation of AST for the preceding expression.
Since we are looking at dynamically typed languages, a
and b
can be any type. We need an expression node that should implement an execute
method, which checks for all the possible types for a
and b
. We will have to write logic something like this:
Figure 6.5 – Guard checks for implementing specialization – flow chart
In the...