Email Print Share

Division of Computing and Communication Foundations

Software and Hardware Foundations  (SHF)


See program guidelines for contact information.


All fields of science and engineering - and society at large - depend on fundamental advances in scientific foundations and engineering methods for computer hardware and software. The SHF program supports research and education projects on 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.

SHF 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. SHF 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.

SHF 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, are particularly encouraged. Foundational research that exposes novel synergies between programming languages and other areas of computing, such as distributed systems, is also encouraged.

SHF seeks proposals that address foundational issues in computer architecture and the key challenges in 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. SHF 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 as well as considering emerging trends in application environments including computation-intensive, data-intensive, and I/O-intensive applications.

SHF 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.

SHF supports 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, quantum computing, 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., neuromorphic architectures, oscillator arrays, etc., is a new direction currently being explored.

Proposals on parallelism and scalability that promises to lead to a new era of parallel computing are supported through a separate program, Scalable Parallelism in the Extreme (SPX). SPX is particularly interested in "clean-slate" approaches that re-evaluate and possibly re-design the traditional hardware and software stack.

Proposals that address hardware and/or software security and thus provide the basis for designing, building, and operating a cyberinfrastructure with improved resistance to malicious behavior may be in scope for the SaTC program.

Investigators interested in the SHF program may also wish to consider the Computer Systems Research (CSR) program in the CNS division, which focuses on advances in system computing and system programming that are particular to an application domain or a specific hardware platform.

More information on topics of interest within the Software and Hardware Foundations program is available at:

Software and Hardware Foundations (SHF) Staff

Funding Opportunities for the Software and Hardware Foundations Program:

Computing and Communication Foundations (CCF): Core Programs.  NSF 17-571