skip to main content
research-article
Free Access

Normalize, transpose, and distribute: An automatic approach for handling nonscalars

Published:14 March 2008Publication History
Skip Abstract Section

Abstract

SequenceL is a concise, high-level language with a simple semantics that provides for the automatic derivation of many iterative and parallel control structures. The semantics repeatedly applies a “Normalize-Transpose-Distribute” operation to functions and operators until base cases are discovered. Base cases include the grounding of variables and the application of built-in operators to operands of appropriate types. This article introduces the results of a 24-month effort to reduce the language to a very small set of primitives. Included are comparisons with other languages, the formal syntax and semantics, and the traces of several example problems run with a prototype interpreter developed in 2006.

References

  1. Backus, J. 1978. Can programming be liberated from the von neumann style? Comm. ACM 21. 8 (Aug.), 613--641. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Banatre, J. and Le Metayer, D. 1993. Programming by multiset transformation. Comm. ACM 36. 1, (Jan.), 98--111. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Bishop, J. 1990. The effect of data abstraction on loop programming techniques. IEEE Trans. Soft. Eng. 16, 4 (Apr.), 389--402. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Blelloch, G. 1996. Programming parallel algorithms. Comm. ACM 39, 3 (Mar.) 98--111. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Cohen, P. 1966. Set Theory and the Continuum Hypothesis. WH Benjamin, New York.Google ScholarGoogle Scholar
  6. Cooke, D. 1996. An introduction to SEQUENCEL: A language to experiment with nonscalar constructs. Softw. Pract. Exper. 26, 11 (Nov.), 1205--1246. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Cooke, D. 1998. SequenceL provides a different way to view programming. Comp. Lang. 24, 1--32. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Cooke, D. and Andersen, P. 2000. Automatic parallel control structures in SequenceL. Softw. Prac. Expe. 30, 14 (Nov.), 1541--1570. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Cooke, D., Barry, M., Lowry, M., and Green, C. 2006. NASA's exploration agenda and capability engineering. Computer 39, 1 (Jan.), 63--73. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Cooke, D. and Gates, A. 1991. On the development of a method to synthesize programs from requirement specifications. Int. J. Softw. Eng. Knowl. Eng. 1, 1 (Mar.), 21--38.Google ScholarGoogle ScholarCross RefCross Ref
  11. Cooke, D., Gelfond, M., Rushton, N., and Hu, H. 2005. Application of model-based technology systems for autonomous systems. In American Institute of Aeronautics and Astronautics Infotech@Aerospace Conference. AIAA Press, Reston, VA. 8 pages.Google ScholarGoogle Scholar
  12. Cooke, D. and Rushton, N. 2005. Iterative and parallel algorithm design from high level language traces. Lecture Notes in Computer Science, vol. 3516. Springer-Verlag, New York. 891--894. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Gelfond, M. and Lifschitz, V. 1998. The stable model semantics for logic programming. In Proceedings of the 5th International Conference on Logic Programming. Seattle, WA, Aug. MIT Press, Cambridge, MA, 1070--1080.Google ScholarGoogle Scholar
  14. Gelfond, M. and Lifschitz, V. 1991. Classical negation in logic programs and disjunctive databases. New Generation Comp. 9, 365--385.Google ScholarGoogle ScholarCross RefCross Ref
  15. Iverson, K. 1962. A Programming Language. Wiley, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Lämmel, R. and Peyton-Jones, S. 2003. Scrap your boilerplate: A practical design patterns for generic programming. ACM SIGPLAN Notices 38, 3, 26--37. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Lämmel, R. and Peyton-Jones, S. 2004. Scrap more boilerplate: Reflection, zips, and generalised cates. ACM SIGPLAN Notices 39, 9, 244--255. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Lin, F. and Zhao, Y. 2004. Assat: Computing answer sets of a logic program by sat solvers. Artificial Intelligence 157, 1--2 (Aug.), 115--137. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Loidl, H. and Trinder, P. 2006. A Gentle introduction to GPH. http://www.macs.hw.ac.uk/~dsg/gph/docs/Gentle-GPH/gph-gentle-intro.html.Google ScholarGoogle Scholar
  20. Meijer, E. and Fokkinga, M., and Paterson, R. 1991. Functional programming with bananas, lenses, envelopes and barbed wire. Lecture Notes in Computer Science, vol. 523. Springer-Verlag, New York. 124--144. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Mills, H. and Linger, R. 1986. Data structured programming: Programming without arrays and pointers. IEEE Trans. Soft. Eng. 12, 2 (Feb.), 192--197. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Nikhil, R. and Arvind. 2001. Implicit Parallel Programming in pH. Morgan Kaufmann, San Francisco. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Pancake, C. 1999. Those who live by the flop may die by the flop. Keynote Address, 41st International Cray User Group Conference, Minneapolis, MN.Google ScholarGoogle Scholar
  24. Sipelstein, J. and Blelloch, G. E. 1991. Collection-oriented languages. Proc. IEEE, 79, 4.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Normalize, transpose, and distribute: An automatic approach for handling nonscalars

          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

          Full Access

          • Published in

            cover image ACM Transactions on Programming Languages and Systems
            ACM Transactions on Programming Languages and Systems  Volume 30, Issue 2
            March 2008
            217 pages
            ISSN:0164-0925
            EISSN:1558-4593
            DOI:10.1145/1330017
            Issue’s Table of Contents

            Copyright © 2008 ACM

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 14 March 2008
            • Accepted: 1 June 2007
            • Revised: 1 November 2006
            • Received: 1 July 2005
            Published in toplas Volume 30, Issue 2

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article
            • Research
            • Refereed

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!