Email Print Share

Division of Computing and Communication Foundations

Software and Hardware Foundations  (SHF)


See program guidelines for contact information.


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, logic, 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 seeks research in emerging technologies, including optical interconnects, optical computing, bio-computing, bio-inspired devices, nanotubes and nanophotonics, which have the potential to take computation beyond Moore's Law. Implementation of novel non-silicon CMOS emerging devices in non-von Neumann architectures, e.g., oscillator arrays, etc., is an area of interest to the SHF program.

Emerging topics such as design involving non-silicon, non-von Neumann architectures, including neuromorphic, or more generally brain inspired architectures, are now addressed in the Foundations of Emerging Technologies (FET) program.  However, projects within these topics focused on the design automation for micro- and nano-systems or computer architecture can also be considered by the SHF program.

Proposals on parallelism and scalability of parallel computing are supported through the Scalable Parallelism in the Extreme (SPX) program. 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.

Software and Hardware Foundations (SHF) Staff

Funding Opportunities for the Software and Hardware Foundations Program:

Computing and Communication Foundations (CCF): Core Programs.  NSF 18-568