High-Level Intermediate Representation (HLIR)
Contact
Our research effort breaks the tight coupling found in vertical, language- and API-centric software stacks and supplants it with a toolchain that incorporates a common set of abstract representations of programs in the form of a high-level intermediate representation.
This representation will serve as an intermediary between the language-centric abstract syntax tree and the conventional lower-level, hardware-independent intermediate representation (IR). In addition to encoding the usual serial execution semantics of a traditional IR, our higher-level IR will additionally encode more abstract concepts such as concurrency, parallelism, communication, synchronization, and non-uniform memory structures.
Like a traditional IR, but unlike an abstract syntax tree, this higher-level representation is language independent, thus capable of supporting a wide range of both mainstream and experimental languages. This approach will also facilitate the communication of source-level details to later compilation stages to enable detailed analysis and source code optimization.