skip to main content
10.1145/1065010.1065045acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article

Programming by sketching for bit-streaming programs

Published:12 June 2005Publication History

ABSTRACT

This paper introduces the concept of programming with sketches, an approach for the rapid development of high-performance applications. This approach allows a programmer to write clean and portable reference code, and then obtain a high-quality implementation by simply sketching the outlines of the desired implementation. Subsequently, a compiler automatically fills in the missing details while also ensuring that a completed sketch is faithful to the input reference code. In this paper, we develop StreamBit as a sketching methodology for the important class of bit-streaming programs (e.g., coding and cryptography).A sketch is a partial specification of the implementation, and as such, it affords several benefits to programmer in terms of productivity and code robustness. First, a sketch is easier to write compared to a complete implementation. Second, sketching allows the programmer to focus on exploiting algorithmic properties rather than on orchestrating low-level details. Third, a sketch-aware compiler rejects "buggy" sketches, thus improving reliability while allowing the programmer to quickly evaluate sophisticated implementation ideas.We evaluated the productivity and performance benefits of our programming methodology in a user-study, where a group of novice StreamBit programmers competed with a group of experienced C programmers on implementing a cipher. We learned that, given the same time budget, the ciphers developed in StreamBit ran 2.5x faster than ciphers coded in C. We also produced implementations of DES and Serpent that were competitive with hand optimized implementations available in the public domain.

References

  1. G. Almasi and D. Padua. Majic: Compiling matlab for speed and responsiveness. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 294--303, June 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. R. Anderson, E. Biham, and L. Knudsen. Serpent: A proposal for the advanced encryption standard. The implementation we tested can be found at http://www.cl.cam.ac.uk/ rja14/serpent.html.Google ScholarGoogle Scholar
  3. D. Andre and S. Russell. Programmable reinforcement learning agents. Advances in Neural Information Processing Systems, 13, 2001. MIT Press.Google ScholarGoogle Scholar
  4. J. Buck, S. Ha, E. A. Lee, and D. G. Messerschmitt. Ptolemy: A framework for simulating and prototyping heterogeneous systems. Int. Journal of Computer Simulation, 4:155--182, April 1994. special issue on "Simulation Software Development".Google ScholarGoogle Scholar
  5. A. Chauhan, C. McCosh, and K. Kennedy. Automatic type-driven library generation for telescoping languages. In Proceedings of SC: High-performance Computing and Networking Conference, Nov. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. J. Demmel, J. Dongarra, V. Eijkhout, E. Fuentes, A. Petitet, R. Vuduc, C. Whaley, and K. Yelick. Self adapting linear algebra algorithms and software. Proceedings of the IEEE, 93(2), 2005.Google ScholarGoogle ScholarCross RefCross Ref
  7. R. Ennals, R. Sharp, and A. Mycroft. Task partitioning for multi-core network processors. In Compiler Construction, Edinburgh, Scotland, April 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. N. Ferguson and B. Schneier. Practical Cryptography. Wiley Publishing Inc, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Data encryption standard (des). U.S. DEPARTMENT OF COM-MERCE/National Institute of Standards and Technology, December 1993. http://www.itl.nist.gov/fipspubs/fip46-2.htm.Google ScholarGoogle Scholar
  10. M. Frigo and S. Johnson. Fftw: An adaptive software architecture for the fft. In ICASSP conference proceedings, volume 3, pages 1381--1384, 1998.Google ScholarGoogle ScholarCross RefCross Ref
  11. P. V. Hentenryck and V. Saraswat. Strategic directions in constraint programming. ACM Comput. Surv., 28(4):701--726, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. J. Irwin, J.-M. Loingtier, J. R. Gilbert, G. Kiczales, J. Lamping, A. Mendhekar, and T. Shpeisman. Aspect-oriented programming of sparse matrix code. In Proceedings International Scientific Computing in Object-Oriented Parallel Environments (ISCOPE), number 1343 in LNCS, Marina del Rey, CA, 1997. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. K. Kennedy, B. Broom, A. Chauhan, R. Fowler, J. Garvin, C. Koelbel, C. McCosh, and J. Mellor-Crummey. Telescoping languages: A system for automatic generation of domain languages. Proceedings of the IEEE, 93(2), 2005.Google ScholarGoogle ScholarCross RefCross Ref
  14. G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In proceedings of the European Conference on Object-Oriented Programming (ECOOP), number 1241 in LNCS. Springer-Verlag, June 1997.Google ScholarGoogle ScholarCross RefCross Ref
  15. A. A. Lamb, W. Thies, and S. Amarasinghe. Linear analysis and optimization of stream programs. In ACM SIGPLAN Conference on Programming Language Design and Implementation, San Diego, CA, June 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. E. A. Lee and D. G. Messerschmitt. Synchronous data flow. Proceedings of the IEEE, September 1987.Google ScholarGoogle ScholarCross RefCross Ref
  17. M. Morgan. http://www.schneier.com/blowfish-bug.txt.Google ScholarGoogle Scholar
  18. M. Püschel, B. Singer, J. Xiong, J. Moura, J. Johnson, D. Padua, M. Veloso, and R. Johnson. Spiral: A generator for platform-adapted libraries of signal processing algorithms. Journal of High Performance Computing and Applications, accepted for publication. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. W. Thies, M. Karczmarek, and S. Amarasinghe. Streamit: A language for streaming applications. In International Conference on Compiler Construction, Grenoble, France, Apr. 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. L. Wu, C. Weaver, and T. Austin. Cryptomaniac: A fast flexible architecture for secure communication. In 28th Annual International Symposium on Computer Architecture (28th ISCA 2001), Goteborg, Sweden, June-July 2001. ACM SIGARCH / IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. E. Young. http://www.openssl.org. libDES is now part of OpenSSL.Google ScholarGoogle Scholar

Index Terms

  1. Programming by sketching for bit-streaming programs

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in
            • Published in

              cover image ACM Conferences
              PLDI '05: Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
              June 2005
              338 pages
              ISBN:1595930566
              DOI:10.1145/1065010
              • cover image ACM SIGPLAN Notices
                ACM SIGPLAN Notices  Volume 40, Issue 6
                Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
                June 2005
                325 pages
                ISSN:0362-1340
                EISSN:1558-1160
                DOI:10.1145/1064978
                Issue’s Table of Contents

              Copyright © 2005 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 12 June 2005

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • Article

              Acceptance Rates

              Overall Acceptance Rate406of2,067submissions,20%

              Upcoming Conference

              PLDI '24

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader