Scheduling Language
The scheduling language is, at a high-level, implemented by the pass manager. It determines the initial partitions, what passes get run, and which partitions each pass can see. While the scheduling language specifies the initial partitions, you don't get to refer to partitions (since Hercules may have to merge them as needed), you instead refer to labels from the Juno code which correspond to individual nodes in the Hercules IR. To say that a pass runs on a particular partition you say that a pass runs on the partition containing a particular label. You can also specify to merge the partitions containing certain nodes so that different passes can be run on different portions of a single partition. This is an imperative language, running passes and merging partitions are imperative steps.