The Concatenate Vanishes

نویسنده

  • Philip Wadler
چکیده

This note presents a trivial transformation that can eliminate many calls of the concatenate (or “append”) operator from a program. The general form of the transformation is well known, and one of the examples, transforming the reverse function, is a classic. However, so far as I am aware, this style of transformation has not previously been systematised in the way done here. The transformation is suitable for incorporation in a compiler, and improves the asymptotic time complexity of some programs from quadratic to linear. There is a syntactic test that determines when the transformation will succeed in eliminating a concatenate operation. Section 1 describes the transformation. Section 2 presents examples. Section 3 characterises the transformation’s benefits. Section 4 describes related work. Section 5 concludes.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

An 80Gbps FPGA Implementation of a Universal Hash Function based Message Authentication Code

We developed an architecture optimization technique called divide-and-concatenate and applied it to a cryptographic message authentication code (MAC). This is based on two key observations: (i) The area of a multiplier and associated data path decreases quadratically and their speeds increase gradually as their operand size is reduced. (ii) Two w-bit universal hash function data paths (each wit...

متن کامل

Introduction to Randomized Algorithms: QuickSort and QuickSelect

QuickSort Hoare [1962] (A) Pick a pivot element from array (B) Split array into 3 subarrays: those smaller than pivot, those larger than pivot, and the pivot itself. (C) Recursively sort the subarrays, and concatenate them. Randomized QuickSort (A) Pick a pivot element uniformly at random from the array (B) Split array into 3 subarrays: those smaller than pivot, those larger than pivot, and the...

متن کامل

Introduction to Randomized Algorithms: QuickSort and QuickSelect

QuickSort Hoare [1962] (A) Pick a pivot element from array (B) Split array into 3 subarrays: those smaller than pivot, those larger than pivot, and the pivot itself. (C) Recursively sort the subarrays, and concatenate them. Randomized QuickSort (A) Pick a pivot element uniformly at random from the array (B) Split array into 3 subarrays: those smaller than pivot, those larger than pivot, and the...

متن کامل

Concatenate and Boost for Multiple Measurement Vector Problems

Multiple measurement vector (MMV) problem addresses the recovery of a set of sparse signal vectors that share common non-zero support, and has emerged an important topics in compressed sensing. Even though the fundamental performance limit of recoverable sparsity level has been formally derived, conventional algorithms still exhibit significant performance gaps from the theoretical bound. The m...

متن کامل

2matrix: A utility for indel coding and phylogenetic matrix concatenation1

UNLABELLED PREMISE OF THE STUDY Phylogenetic analysis of DNA and amino acid sequences requires the creation of files formatted specifically for each analysis package. Programs currently available cannot simultaneously code inferred insertion/deletion (indel) events in sequence alignments and concatenate data sets. • METHODS AND RESULTS A novel Perl script, 2matrix, was created to concatena...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1987