Write an interpreter generator
J, 61 56 53 52 bytes
1 :0
('0'&quot;.@,~,@,.&amp;' ')[u&quot;.@;@}:@,@,.&quot;1;:@'=: &amp; &amp;'
)

Try it online!
Note: -3 bytes off TIO for f=:
Operator changes used to match J's built-ins:

** -&gt; ^
/ -&gt; %
= -&gt; ]

Additional notes:

This is adverb that modifies the program to interpret, which is given as a list of 3-element directives.  The resulting verb then takes the input as an argument, and returns the result.
Assumes the program string to execute will be read from right-to-left -- again, this is in keeping with J's normal convention.