Marko A. Rodriguez created TINKERPOP-1551:
---------------------------------------------
Summary: Solidify and document Gremlin bytecode specification
Key: TINKERPOP-1551
URL: https://issues.apache.org/jira/browse/TINKERPOP-1551
Project: TinkerPop
Issue Type: Improvement
Components: process
Affects Versions: 3.2.3
Reporter: Marko A. Rodriguez
Gremlin Bytecode has a nested list structure of the form:
{code}
[operand, argument*]*
{code}
..where an argument can be another bytecode sequence.
Right now, bytecode has a one-to-one with the {{GraphTraversal}} API. This is
fine except for in the case of various step-modulators. If we can fold
step-modulation into the full instruction, then I think Bytecode can be
specified nicely and easily worked with by language designers.
Here is the problem with modulation instructions:
{code}
['select','a','b']
['by','name']
['by',[[bothE],[count]]]
{code}
When working with this instruction sequence, you have to "back propagate" the
{{by}}-modulators to the {{select}}-instruction. As {{by}}-modulation is a
syntactic device, it should NOT be in the instruction set. The above sequence
should be represented as:
{code}
['select','a','b',[['values','name']],[[bothE],[count]]]
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)