J uses a parsing table based on a stack that evaluates the sentence as soon as it has enough information. The best source for this, I believe, are Chapters 38 and 39 of Henry Rich's "J for C programmers". You need to be able to be comfortable with tacit J to make the most of this, but it should serve as a good introduction to the parser.
https://www.jsoftware.com/help/jforc/parsing_and_execution_i.htm#_Toc191734584 https://www.jsoftware.com/help/jforc/parsing_and_execution_ii.htm#_Toc191734586
Another source for understanding J's evaluation is the trace
verb, which can be found in the trace script located for recent versions of J. eg. for j901
in j901/addons/general/misc/trace.ijs
This gives a hands on experience that will step through a J sentence and list the rules implemented and the current state of the stack.
If you have downloaded the addons for J this would already be available in your installation.
load '~addons/general/misc/trace.ijs'
trace '(+/ % #) 5 7 3 4 5 2' NB. returns the trace for the average of list of numbers
--------------- 3 Adverb -----
+
/
+/
--------------- 5 Trident ----
+/
%
#
+/ % #
--------------- 8 Paren ------
(
+/ % #
)
+/ % #
--------------- 0 Monad ------
+/ % #
5 7 3 4 5 2
4.33333
==============================
4.33333