




































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
The paper discusses the challenges of achieving elegance, efficiency, and parallelism in functional programs that manipulate large data structures. It analyzes program examples using three common functional data-structuring approaches and presents I-structures as an alternative. The paper shows elegant, efficient, and parallel solutions for the program examples in Id, a language with I-structures. The parallelism in Id is made precise by means of an operational semantics for Id as a parallel reduction system. The paper concludes by showing that even in the context of purely functional languages, I-structures are invaluable for implementing functional data abstractions.
Typology: Study notes
1 / 44
This page cannot be seen from the preview
Don't miss anything!





































Arvindy^ MIT Rishiyur S Nikhily^ MIT Keshav K Pingaliz^ Cornell University
Abstract It is dicult to achieve elegance eciency and parallelism simultaneously in functional programs that manipulate large data structures We demonstrate this through careful analysis of program examples using three common functional datastructuring approaches lists using Cons and arrays using Update b oth negrained op erators and arrays using make array a bulk op erator We then present Istructures as an alternative and show elegant ecient and parallel solutions for the program examples in Id a language with Istructures The parallelism in Id is made precise by means of an op erational semantics for Id as a parallel reduction system Istructures make the language nonfunctional but do not lose determinacy Finally we show that even in the context of purely functional languages Istructures are invaluable for implementing functional data abstractions
Categories and Sub ject Descriptors D Programming Languages Language Classications Ap plicative languages Data ow languages D Programming Languages Language Constructs Con current programming structures E Data Data Structures Arrays F Logics and Meanings of Programs Semantics of Programming Languages Operational Semantics
General Terms Languages
Additional Key Words and Phrases Functional Languages Parallelism