High-performance, Reliable, and Parallel APL
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

Co-dfns Compiler

The Co-dfns project aims to provide a high-performance, high-reliability compiler for a parallel extension of the Dyalog dfns programming language. The dfns language is a functionally oriented, lexically scoped dialect of APL. The Co-dfns language extends the dfns language to include explicit task parallelism with implicit structures for synchronization and determinism. The language is designed to enable rigorous formal analysis of programs to aid in compiler optimization and programmer productivity, as well as in the general reliability of the code itself.

Our mission is to deliver scalable APL programming to information and domain experts across many fields, expanding the scope and capabilities of what you can effectively accomplish with APL.

Contributing and Helping

We are seeking to create an open funding model for Co-dfns research through user and patron contributions. You can support the project by contributing code, feedback, benchmarks, and so forth, but you can also directly support the Co-dfns project by funding the author:

https://www.patreon.com/arcfide

Related Projects

There are a number of related initiatives that are based on the Co-dfns technology:

  • Mystika: a high-level, high-performance cryptographic stack
  • apixlib: programmable, easy to use image processing

Publications

User Command for Co-dfns

APL Patterns vs. Anti-Patterns @ FunctionalConf 2017

Co-dfns 2017 Report

APL Style: Patterns and Anti-patterns

Co-dfns Compiler Architecture and Design (Video)

The Key to a Data Parallel Compiler

Accelerating Information Experts Through Compiler Design

Co-dfns: Ancient Language, Modern Compiler

U11: Using Co-dfns to Accelerate APL Code

U07: Co-dfns Report: Performance and Reliability Prototyping

I04: Co-dfns Compiler

Dyalog 2016 Presentation