Stream: fhirpath
Topic: Engine or Interpreter?
Paul Lynch (Jul 23 2018 at 15:23):
Something that processes a non-compiled language is (in my experience) usually referred to as an interpreter. However, I see that Bryn and at least one other person like to refer the thing processing FHIRPath as an "engine". I am curious as to why that is and what the implications are.
Bryn Rhodes (Jul 23 2018 at 15:47):
Since there is an intermediate representation for CQL (ELM), I typically refer to the processor that actually runs the ELM as an engine (as opposed to translating it to something like SQL or Drools and running it there).
nicola (RIO/SS) (Jul 23 2018 at 15:48):
We can start from interpreter - then switch to compiler later (similar to https://github.com/epoberezkin/ajv)
nicola (RIO/SS) (Jul 23 2018 at 15:49):
engine is for engineers - we are programmers :)
Grahame Grieve (Jul 23 2018 at 22:24):
I treat FHIRPath as sem-compiled. I have a native format that I 'compile' to, which is kind of like ELM, and then the 'engine' works on that. It's logically equivalent to a JVM
Ewout Kramer (Jul 24 2018 at 07:07):
Same for the .NET implementation - though it is even more of a compiler since it translates a FHIRPath expression into a callable function...
Paul Lynch (Jul 24 2018 at 15:33):
I really like that Bryn just called it a "compiler/interpreter/engine/processor"-- very accommodating of all viewpoints. That's what we should use everywhere. :-) I guess I will just stick to calling it an engine, which I see is what is already in the documentation at http://hl7.org/fhirpath/.
Last updated: Apr 12 2022 at 19:14 UTC