Synthesis of hardware systems from high-level descriptions; hardware-centric system-level synthesis, analysis, and optimization; high-level language hardware description, parsing and compilation; scheduling, allocation, and binding of operations, variables, and transfers; automatic design and optimization of datapaths, dedicated memory and communication structures, and controllers; performance, cost, and power driven architectural-level optimisations; application-specific processor generation, automatic processor customization, and accelerator synthesis.