MIT Researchers Propose Finch: A New Programming Language that Supports both Flexible Control Flow and Diverse Data Structures:"A research team from MIT introduce a new programming language named ‘Finch’ to address the limitations of existing implementations. Finch aims to bridge the gap between flexible control flow and diverse data structures by providing a unified framework for their optimization. Unlike previous systems that tightly couple control flow with specific data structures, Finch enables co-optimization of both aspects, enhancing performance and versatility in handling structured arrays. One of Finch’s key innovations lies in its support for a rich structured array programming language. By offering familiar constructs like for-loops, if-conditions, and early breaks over structured data, Finch elevates the productivity level to that of dense arrays. This allows programmers to work with complex data structures without sacrificing expressive power or efficiency."
Paper: "In this work, we propose a new programming language, Finch, which supports both flexible control flow and diverse data structures. Finch facilitates a programming model which resolves the challenges of computing over structured arrays by combining control flow and data structures into a common representation where they can be co-optimized. Finch automatically specializes control flow to data so that performance engineers can focus on experimenting with many algorithms. Finch supports a familiar programming language of loops, statements, ifs, breaks, etc., over a wide variety of array structures, such as sparsity, run-length-encoding, symmetry, triangles, padding, or blocks. Finch reliably utilizes the key properties of structure, such as structural zeros, repeated values, or clustered non-zeros. We show that this leads to dramatic speedups in operations such as SpMV and SpGEMM, image processing, graph analytics, and a high-level tensor operator fusion interface."
But no implementation anywhere to be found!
Last modified 22 January 2025