Concurrent Circular Reference Attribute Grammars (Extended Version)
Reference Attribute Grammars (RAGs) is a declarative executable formalism used for constructing compilers and related tools. Existing implementations support concurrent evaluation only with global evaluation locks. This may lead to long latencies in interactive tools, where interactive and background threads query attributes concurrently.We present lock-free algorithms for concurrent attribute eva