# HigherOrderCO/Bend

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/higherorderco-bend).**

19,175 stars · 470 forks · Rust · apache-2.0

## Links

- GitHub: https://github.com/HigherOrderCO/Bend
- Homepage: https://higherorderco.com
- awesome-repositories: https://awesome-repositories.com/repository/higherorderco-bend.md

## Description

Bend is a high-level parallel programming language and compiler designed to execute code across multi-core CPUs and GPUs automatically. By translating functional source code into a graph-based intermediate representation, it enables massive parallel execution without requiring manual management of threads, locks, or atomic operations.

The runtime operates as an interaction net engine, where computations are represented as networks of nodes that reduce through local rewriting rules. This model utilizes a work-stealing scheduler to distribute tasks across thousands of hardware threads, ensuring that computational workloads scale efficiently across heterogeneous processing units.

The system incorporates a global heap with reference counting and cycle collection to handle memory management, alongside a lazy evaluation strategy that defers computation until results are strictly required. These mechanisms allow developers to focus on high-level logic while the compiler handles the complexities of parallel distribution and resource utilization.

## Tags

### Programming Languages & Runtimes

- [Parallel](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/programming-languages/parallel.md) — Offers a high-level programming language that automatically compiles code for massive parallel execution across multi-core CPUs and GPUs.
- [Concurrent Programming Languages](https://awesome-repositories.com/f/programming-languages-runtimes/concurrent-programming-languages.md) — Provides a high-level language that automatically scales code across thousands of processing threads.
- [Interaction Net Runtimes](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/concurrency/execution-models/multi-threaded-execution/interaction-net-runtimes.md) — Provides a computational model that scales high-level logic across thousands of threads without manual lock management.
- [Parallel Runtimes](https://awesome-repositories.com/f/programming-languages-runtimes/parallel-runtimes.md) — Provides a high-performance runtime that automatically scales functional code across thousands of hardware threads without manual synchronization.
- [Lazy Evaluation Engines](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtimes/graph-symbolic-execution-engines/lazy-evaluation-engines.md) — Resolves deferred computation trees into concrete values only when results are strictly required by the runtime.
- [Graph-Based](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-infrastructure/intermediate-representations/bytecode/graph-based.md) — Transforms source code into a compact, node-oriented intermediate representation for efficient parallel processing.
- [Intermediate Representations](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-infrastructure/intermediate-representations.md) — Lowers high-level source code into an optimized intermediate representation for parallel hardware execution.

### Operating Systems & Systems Programming

- [GPU-Accelerated Compilers](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/hardware-acceleration/gpu-acceleration/gpu-accelerated-compilers.md) — Translates high-level logic into a concurrent format optimized for execution on graphics hardware.
- [GPU Acceleration](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/hardware-acceleration/gpu-acceleration.md) — Leverages graphics hardware to execute general-purpose code for faster data processing.
- [Work-Stealing Schedulers](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/runtime-schedulers/work-stealing-schedulers.md) — Distributes small computational tasks across thousands of hardware threads using a work-stealing engine.
- [Reference-Counting Garbage Collectors](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management-systems/reference-counting-garbage-collectors.md) — Manages object lifetimes automatically using reference counting and cycle collection.

### Scientific & Mathematical Computing

- [Parallelizing Compilers](https://awesome-repositories.com/f/scientific-mathematical-computing/high-performance-execution-environments/high-performance-and-parallel-computing/parallelizing-compilers.md) — Translates functional code into a concurrent format to achieve near-ideal speedup on parallel hardware.
- [Interaction Net Engines](https://awesome-repositories.com/f/scientific-mathematical-computing/data-modeling-processing/computational-graphs/graph-based-computational-execution/interaction-net-engines.md) — Executes computations by reducing networks of interacting nodes through local rewriting rules.
- [High-Performance and Parallel Computing](https://awesome-repositories.com/f/scientific-mathematical-computing/high-performance-execution-environments/high-performance-and-parallel-computing.md) — Executes complex algorithms across multi-core CPUs and GPUs to achieve significant speed improvements.

### Development Tools & Productivity

- [Parallel Execution](https://awesome-repositories.com/f/development-tools-productivity/parallel-execution.md) — Executes high-level code automatically across multi-core CPUs and GPUs without manual concurrency management. ([source](https://higherorderco.com))
- [Parallel Compilation](https://awesome-repositories.com/f/development-tools-productivity/parallel-execution/parallel-compilation.md) — Compiles high-level language constructs into a concurrent computation model for near-ideal speedup. ([source](https://higherorderco.com))

### Software Engineering & Architecture

- [Interaction Net Engines](https://awesome-repositories.com/f/software-engineering-architecture/graph-application-runtimes/interaction-net-engines.md) — Executes code using an interaction net engine that reduces functional programs through local graph rewriting rules.
- [Memory Management Systems](https://awesome-repositories.com/f/software-engineering-architecture/memory-management-systems.md) — Provides automated memory management through reference counting and cycle collection to eliminate manual allocation.
- [Concurrency Models](https://awesome-repositories.com/f/software-engineering-architecture/concurrency-models.md) — Translates high-level logic into a concurrent model that scales across processing units without manual synchronization primitives.
- [Lazy Thunk Graphs](https://awesome-repositories.com/f/software-engineering-architecture/lazy-evaluation-patterns/lazy-thunk-graphs.md) — Represents expressions as trees of deferred computations that only evaluate when strictly required.

### Networking & Communication

- [Distributed Runtimes](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-computing/distributed-execution-runtimes/distributed-runtimes.md) — Scales computational workloads across large numbers of processing units to reduce total runtime.
