Computer architecture and processor design
Various aspects of computing are being studied. Efforts are being made to improve the performance and reduce the energy consumption of CPUs. The typical directions taken include (i) discerning interesting behaviors in common workloads and exploiting them, (ii) intelligent employment of speculation, and (iii) harnessing the capabilities novel memory technologies and fabrication advancements.
Runtime verification
Modern systems are quite complex and may not be amenable to model checking. Alternatively, in many scenarios, a runtime verification strategy is considered. This involves monitoring the execution of the concerned system and determining the violation of properties during this execution. Efforts are being made to apply known techniques to real-world use-cases, and use the knowledge gained to understand and improve various aspects: (i) the expressibility of different property-specification languages, (ii) the efficiency of monitors, and (iii) the overhead and reusability of monitors.