text-only page produced automatically by LIFT Text
Transcoder Skip all navigation and go to page contentSkip top navigation and go to directorate navigationSkip top navigation and go to page navigation
National Science Foundation HomeNational Science Foundation - Directorate for Computer & Information Science & Engineering (CISE)
Computing & Communication Foundations (CCF)
design element
CCF Home
About CCF
Funding Opportunities
Career Opportunities
View CCF Staff
CISE Organizations
Advanced Cyberinfrastructure (ACI)
Computing and Communication Foundations (CCF)
Computer and Network Systems (CNS)
Information & Intelligent Systems (IIS)
Proposals and Awards
Proposal and Award Policies and Procedures Guide
Proposal Preparation and Submission
bullet Grant Proposal Guide
  bullet Grants.gov Application Guide
Award and Administration
bullet Award and Administration Guide
Award Conditions
Other Types of Proposals
Merit Review
NSF Outreach
Policy Office

Software and Hardware Foundations (SHF)

The Software and Hardware Foundations (SHF) program solicits proposals that advance 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 models, methods, languages, logics, novel software and/or hardware artifacts, and algorithms to enable new or enhanced functionality, and formal methods and tools for the design and implementation of computer systems and their applications.

Software Science and Engineering. Innovative and transformative research that rethinks basic assumptions and current methods of software production. Broad areas of interest include, but are not limited to:

  • Formal methods: novel theoretical and practical approaches for the formal modeling, development and verification of programs and other artifacts involving discrete and continuous behavior, and advances in the applicability, usability, and efficiency of existing formal techniques.
  • Automation: automated design and derivation of programs from domain models and specifications, and automated support for software evolution.
  • Processes: formulation of important hypotheses about software and the processes used to develop it, and empirical research to support/refute them.
  • Emerging areas: foundations for software science and engineering in new environments such as cloud computing, web services, and ubiquitous/pervasive computing.
  • Reliability: ways to improve and gain confidence in the reliability of software systems, whether by using tools to improve and understand software written using existing techniques, or developing new ways to write software that provide higher reliability.
  • Productivity: tools and techniques to improve the productivity of software development.
  • Empirical studies: case studies of specific causes of software failures and difficulties in software development, and tools and techniques to address them.

Compilers and Programming Languages. Foundational research on compilers and programming languages. Broad topics of interest include, but are not limited to:

  • Languages: principles, semantics, design and implementation, including domain-specific and general-purpose languages.
  • Programmability: languages, methods and tools addressing programmability, programming methodology and programming models to transform how software and hardware systems are programmed and managed over their lifetimes.
  • Parallelism and Concurrency: compilers for explicitly parallel programs, optimizing for both parallelism and locality, and parallelizing compilers.
  • Compiler correctness: research on correctness criteria like safety from potential deadlocks, memory leaks, race conditions and correctness preserving transformations.
  • Optimization: infrastructure for optimizing compilers for multiple platforms and reconfigurable architectures.
  • Multi-core architectures: compiler techniques for managing on-chip communication, power consumption, temperature and fault tolerance in multi-core architectures.

High Performance Computing. High-performance hardware and software research and enabling technologies for advancing the state-of-the-art in computational and data-intensive science and engineering. Topics of interest include, but are not limited to:

  • Programmability: fundamental research for new programming models and languages for heterogeneous systems and high-end computing.
  • Scalability: fundamental research on concurrency, resiliency and reliability at scale.
  • Multi-core and many-core: programming models, software and compiler support for mapping and scheduling multiple threads on heterogeneous multi-core and multiprocessor systems.
  • Data intensive: fundamental research on enabling technologies for data intensive computing including I/O at scale.

Computer Architecture. Foundational research advancing the design, analysis, use and evolution of computer architecture. Broad areas of interest include, but are not limited to:

  • Multi-core: new paradigms and frameworks for designing scalable multi-core architectures including homogenous and heterogeneous systems, memories, and interconnect technologies.
  • Interconnection networks: new directions in designing interconnection networks, especially on- and off- chip interconnects using silicon, optics, wireless, RF, 3-D, and CNT for multi-core architectures, SoCs, clusters and exa-scale architectures.
  • Hybrid systems: architectures for MEMS, digital, analog, RF, and other technologies and sensor outputs from a variety of physical sources.
  • Micro architectures: fundamental system level research on high performance, power-aware, and fault-tolerant micro architectures, memory and storage systems in deep submicron technologies and other emerging areas.
  • Impact of emerging technologies on parallel architectures: optics, wireless, RF, and nano devices for parallel architectures.
  • Reliability and security: fundamental research on reliable and trustworthy networks-on-chips, and dependable and secure architectures.
  • Power: power-aware design, power management and optimization spanning from the device level to circuits to architectures, to compiler, to OS and application level.
  • Application centric: designing scalable architectures for application centric systems like network processors and embedded systems.
  • Performance evaluation: new methods for workload characteristics in designing architectures, designing simulation and analytic evaluation frameworks.

Design Automation. Foundational research on design automation of circuits and systems. Broad categories of interest include, but are not limited to:

  • Low power: design methodologies for scalable, low power and energy efficient circuits.
  • Algorithms: novel algorithmic research addressing the increased scale of design automation problems; large scale benchmarking of algorithms.
  • Synthesis: behavioral and high-level synthesis, including domain specific synthesis methodologies; interplay between synthesis and verification; synthesis taking into consideration power, noise, thermal, verifiability, manufacturability and reliability.
  • Design with emerging technologies: CAD methodology involving mixed signal, RF designs and other heterogeneous designs, emerging nanoscale logic and/or memory devices like spin based devices, magnetic/resistive devices, MEM or NEM devices, carbon based devices and other non-silicon substrates such as graphene, or biochemical substrates.
  • Reliability and formal methods: advances in testing, validation and verification of hardware systems, including analog verification and novel approaches for the formal or semi-formal verification of hardware and embedded systems.
  • Hybrid systems: large mixed analog and digital hybrid systems, their (nonlinear) model reductions, and verification.
  • Physical design: new paradigms and frameworks for designing asynchronous circuits, 3D homogeneous and heterogeneous systems; routing and layout design under constraints such as 3D lithography, or self-assembly technologies.
  • Languages: new languages and paradigms for electronic design automation for the specification, design, manufacturing and verification of hardware systems, including design for verification.

Biocomputing. Novel computational paradigms that draw inspiration from a systems biology perspective. Topics of interest include, but are not limited to:

  • Models for computation: exploiting biological properties that show promise for new information technologies and systems.
  • Networks: theories that exploit similarities in biological network structures (from gene regulatory networks and biochemical networks to social networks) to model self-organization and self-assembly.
  • Molecular and biochemical systems: new computer science principles for programming complex molecular and biochemical systems.
  • Synthetic biology: Computing and engineering foundations for synthetic biology.

Nanocomputing. Computing with materials, devices, circuits, architectures and programming paradigms resulting from the use of novel computing substrates. Topics of interest include, but are not limited to:

  • Computation: computation and information processing based on substrates other than CMOS; for example, based on carbon nanotubes, graphene, non-traditional semiconductors, and other non-organic materials.
  • Materials: novel computing elements using nano, bio, silicon and hybrid materials.


Email this pagePrint this page
Back to Top of page