Abstract collage of science-related imagery

CCF: Software and Hardware Foundations (SHF)

View guidelines

NSF 24-589

Important information for proposers

All proposals must be submitted in accordance with the requirements specified in this funding opportunity and in the NSF Proposal & Award Policies & Procedures Guide (PAPPG) that is in effect for the relevant due date to which the proposal is being submitted. It is the responsibility of the proposer to ensure that the proposal meets these requirements. Submitting a proposal prior to a specified deadline does not negate this requirement.

Supports research on the design, evaluation and operation of computer hardware and software.

Supports research on the design, evaluation and operation of computer hardware and software.


The Software and Hardware Foundations (SHF) program supports potentially transformative research in the design, verification, operation, utilization, and evaluation of computer software and hardware through novel approaches, robust theories, high-leverage tools, and lasting principles. Such advances may involve 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. New ideas and visions are additionally sought related to emerging considerations in the fitness of software, including correctness in the face of environmental variability, policy compliance, and the like. SHF aims to support software engineering research for emerging disciplines and domains, such as machine learning-based applications and systems, cyber-physical and autonomous systems, biocomputing systems, health-care technology, security, and the Internet of Things. Proposals in these areas are in scope, provided they emphasize software engineering research concerns such as requirements and design, software architectures, model-driven software engineering, programmability, software quality assurance, software productivity enhancement, and software sustainability.

The SHF program supports the entire range of programming languages research, from foundations to design to implementation. 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 and architectures, abstract interpretation, program analysis and optimization, and design and implementation of domain-specific languages. Research in programming languages, program logics, and models that go beyond mainstream practice, such as those for concurrent, functional, logic, and probabilistic programs, is particularly encouraged. Foundational research that exposes novel synergies between programming languages and other areas of computing, such as distributed and networked systems and machine learning, is also encouraged.

The SHF program supports fundamental research on formal and semi-formal methods for the specification, modeling, development, and verification of software and hardware systems. This includes, but is not limited to, semantics, logics, abstraction, and 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. SHF supports foundations, algorithms, and tools for software and hardware synthesis. The program also supports development of new formal techniques for emerging areas such as artificial intelligence, autonomous systems, and policy and regulatory compliance.

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, testing, and verification; pre- and post-silicon validation; and design methodologies for scalable, low-power, and energy-efficient circuits and systems in silicon technologies. SHF also seeks research on design automation for emerging non-silicon technologies, possibly using non-charge-based state vectors (e.g., electron-spin, micro-electromechanical systems, optics, or phase state of materials), that may have the potential to take computation beyond Moore's Law. Analog circuits as well as ultra-high-frequency communication circuits and systems specifically aimed towards this latter goal are also within scope.

The SHF program supports research on hardware architectures that are inspired by artificial intelligence and machine learning, and that make synergistic use of materials and device technologies, along with their efficient implementations. Hardware experimentation of both model-based or model-free novel machine learning algorithms, e.g., those inspired by information theory and/or statistical mechanics, as examples of computing models inspired by physics are in scope as well.

The SHF program supports foundational research in high-performance computing (HPC) that is aware of, driven by, and inspired by applications and is also informed by platform heterogeneity and architecture concerns. SHF seeks novel research on enabling technologies and tools to balance and optimize performance goals including scalability, power, productivity, repeatability, and validity. SHF encourages software and hardware co-development and co-design to exploit parallelism and concurrency at scale to satisfy energy, performance, reliability, and programmability requirements. A radical examination of the whole hardware/software computing stack from applications to algorithms, to system software, to architectures, to technologies, is encouraged to lay the foundation for next-generation HPC systems.

The SHF program supports foundational research in computer architecture and computer hardware system design, including but not limited to specialization, heterogeneity, energy efficiency, approximation, scalability, parallelism and concurrency, inter-component communication, performance, reliability, and novel computing paradigms. The program supports fundamental and transformative research in processors, accelerators, 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 computation-intensive, data-intensive, and I/O-intensive applications.

Program contacts

Anindya Banerjee
abanerje@nsf.gov (703) 292-8910 CISE/CCF
Sankar Basu
sabasu@nsf.gov (703) 292-8910 CISE/CCF
Almadena Y. Chtchelkanova
achtchel@nsf.gov (703) 292-8910 CISE/CCF
Damian Dechev
ddechev@nsf.gov (703) 292-8910 CISE/CCF
Sol J. Greenspan
sgreensp@nsf.gov (703) 292-8910 CISE/CCF
Xiaobo Sharon Hu
xhu@nsf.gov (703) 292-8910 CISE/CCF
Andrian Marcus
amarcus@nsf.gov (703) 292-8910 CISE/CCF
Pavithra Prabhakar
pprabhak@nsf.gov (703) 292-8910 CISE/CCF
Danella Zhao
dzhao@nsf.gov (703) 292-8910 CISE/CCF