







A high-performance and high-level purely functional data-parallel array programming language that can execute on the GPU and CPU.
Parallel Programming for FPGAs | Kastner Research Group
Parallel Programming for FPGAs is an open-source book aimed at teaching hardware and software developers how to efficiently program FPGAs using high-level synthesis (HLS). The authors developed the book as we noticed a lack of material aimed at teaching people to effectively use HLS tools.
Intro to Data Oriented Design for Games
Engineering High-Performance Parsers with Data-Oriented Design
Notes from building Yuku: the AST is flat arrays of u32 indices instead of a pointer tree, and memory layout, allocation, strings, unicode, and serialization all follow from that one decision.
kitty
If you live in the terminal, kitty is made for YOU! The fast, feature-rich, GPU based terminal emulator. Fast Uses GPU and SIMD vector CPU instructions for best in class performance, Uses threaded ...

Fully Sharded Data Parallel
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
Help Wanted: Research Questions in Rust - Aaron Turon - OPLSS 2018
Andrew Kelley: A Practical Guide to Applying Data Oriented Design (DoD)
Integrating functional and imperative programming | Proceedings of the 1986 ACM conference on LISP and functional programming
We present a new model, based on monads, for performing input/output in a non-strict, purely functional language. It is composable, extensible, efficient, requires no extensions to the type system, and extends smoothly to incorporate mixed-language ...
Boomerang | Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Bidirectional programming languages are a practical approach to the view update problem. Programs in these languages, called lenses, define both a view and an update policy - i.e., every program can be read as a function mapping sources to views as well ...

"Concatenative programming and stack-based languages" by Douglas Creager
Stream Processing: Continuous Processing of Data Streams
Explore the Stream Processing design pattern for continuous asynchronous data flow, enhancing real-time data processing capabilities in enterprise applications using Clojure and leveraging functional programming principles.
Drinking from the Firehose: Learning Computer Graphics Techniques and Programming
Graphics researchers waiting in the water fountain line at SIGGRAPH Yellowstone. Computer graphics as a field is broad, deep, complex, and intimidating. More than half a century of rapid progress driven by academic research and industry practices underly it. Parts delve pretty far into physics, math, signal processing, systems programming (and more). And performance is always at a premium—so simple, straightforward techniques are often not possible, and high-level programming abstractions not usable.

The Topos of Programming | Yon
A topos-oriented programming language. Native via MLIR and LLVM, with a content-addressed heap on the Leech lattice.

Async/await on the GPU
GPU code can now use Rust's async/await. We share the reasons why and what this unlocks for GPU programming.