CCF: Software and Hardware Foundations  (SHF)

Name Email Phone Room
Nina  Amla (703) 292-7991   
Anindya  Banerjee (703) 292-7885   
Sankar  Basu (703) 292-7843   
Almadena  Y. Chtchelkanova (703) 292-8910   
Sol  J. Greenspan (703) 292-8910   
Yuanyuan  Yang (703) 292-8067   


The Software and Hardware Foundations (SHF) program supports potentially transformative research in the design, verification, operation, utilization, and evaluation of computer hardware and software through novel approaches, robust theories, high-leverage tools, and lasting principles. Such advances may offer formal methods, languages, logics, novel software and/or hardware artifacts, or algorithms to enable new or enhanced functionality, verification, usability, and scale.

The SHF program supports all aspects of the science and engineering of software, seeking transformative ideas that reformulate the relationships between requirements, design and evolution of software, and software-intensive systems. SHF supports research projects focusing on program analysis and synthesis, compositionality, verifiability and adaptability of software, as well as research on software analysis and testing techniques for all stages of the software life cycle. SHF also seeks research to increase the automation of software engineering capabilities to attain significant advances in quality and sustainability of software, which may require new representations and processes. Empirical research that increases understanding of software and software creation is also in scope.

The SHF program supports fundamental research on formal and semi-formal methods for the specification, development, and verification of software and hardware systems. This includes, but is not limited to, abstraction, compositional, refinement-based, and probabilistic methods for the modeling and validation of systems involving discrete and continuous behavior. The program seeks proposals that enhance the applicability, usability, and efficiency of techniques such as abstract interpretation, model checking, theorem proving, automated decision procedures, and constraint solving. Research topics involving the semantics, logics, verification, and analysis of concurrent systems are in scope. SHF supports foundations, algorithms, and tools for software and hardware synthesis.

The SHF program supports the entire range of programming languages research, from foundations to design to implementation. Fundamental research in both science and engineering of programming languages is highly encouraged. Topics of interest include, but are not limited to, language semantics and type theory, design and implementation of advanced languages and language features, compilers and runtime systems for advanced languages, program analysis and optimization, design and implementation of domain-specific languages, and implementation issues related to locality, synchronization, and communication. Research in programming languages and models that go beyond mainstream practice, such as concurrent, functional, logic programming and probabilistic languages, is particularly encouraged. Foundational research that exposes novel synergies between programming languages and other areas of computing, such as distributed systems, is also encouraged.

The SHF program supports foundational research in computer architecture and computer hardware and systems design, including, but not limited to, performance, energy efficiency, reliability, scalability, concurrency, and heterogeneity. The program supports fundamental and transformative research in processors, interconnects, memory, and storage architectures. The program seeks research that takes holistic and cross-layer approaches to fully harness the promises and address the challenges of new and emerging substrate technologies and materials, and that considers emerging trends in application environments including computation-intensive, data-intensive, and I/O-intensive applications.

The SHF program supports foundational research in high-performance computing that is aware of, driven by, and inspired by applications, as well as heterogeneity-aware and architecture-aware. SHF does not support research in domain applications. SHF seeks novel research on enabling technologies and tools to balance and optimize performance goals including scalability, power, productivity, repeatability, reliability, and validity.

The SHF program supports fundamental research in all topics in design automation, including but not limited to, logical, physical, behavioral, and high-level synthesis methods; interplay between synthesis and verification; design methodologies for scalable, low-power and energy-efficient circuits; and physical design in silicon technologies. Also of interest is pre- and post-silicon validation, possibly by using a blend of techniques from testing and verification. SHF also seeks research in emerging technologies, with emphasis on design automation, which may have the potential to take computation beyond Moore's Law. Implementation in physics-inspired (e.g., oscillator arrays) or brain-inspired (neural net) non-von Neumann architectures are of interest to the SHF program.

The SHF program supports research on hardware architectures that are inspired by machine learning, neuromorphic computing (including those inspired by the human brain) and synergistic use of materials and device technologies, along with their efficient implementations. Examples include traditional neural-network architectures, both their recurrent and deep-learning versions as well as other more modern variants (e.g., spiking models, generative adversarial learning), and other computing models of human cognition such as hyper-dimensional computing. Hardware experimentation of both model-based or model-free novel machine-learning algorithms, e.g., those inspired by information theory and/or statistical mechanics, are in scope as well.

Proposals that address hardware and/or software security may be in scope for the Secure and Trustworthy Cyberspace (SaTC) program. Proposals that focus on computer system issues, solutions, implementations, and verification at the systems level may also wish to consider the Computer Networks and Systems (CNS) Core program.