Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1622123.1622152acmotherconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Dynamic ADTs: a "don't ask, don't tell" policy for data abstraction

Published: 01 April 2007 Publication History
  • Get Citation Alerts
  • Abstract

    We outline an approach to abstract data types (ADTs) that allows an object of the type specified by the ADT to take on one of many possible representations. A dynamic abstract data type (DADT) is dual to dynamic algorithm selection and facilitates profiling of data in conjunction with the profiling of code. It also permits a programmer to delay or ignore details pertaining to data representation and enhance the efficiency of some algorithms by changing representations at run time without writing code extraneous to the algorithm itself. Additionally, we demonstrate that run time optimization of data objects is possible and allows for acceptable performance compared to traditional ADTs. An implementation is presented in Common Lisp.

    References

    [1]
    Symbolic Common Lisp: Language Concepts, volume 7, chapter 5: Table Management. Symbolics Inc., 1986.
    [2]
    U. A. Acar, G. E. Blelloch, M. Blume, and K. Tangwongsan. An experimental analysis of self-adjusting computation. In PLDI '06: Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation, pages 96--107, New York, NY, USA, 2006. ACM Press.
    [3]
    W. Armstrong, P. Christen, E. McCreath, and A. P. Rendell. Dynamic algorithm selection using reinforcement learning. International Workshop on Integrating AI and Data Mining (AIDM), 0:18--25, 2006.
    [4]
    L. Blaine and A. Goldberg. DTRE - a semi-automatic transformation system. In B. Möller, editor, Proceedings of the IFIP TC2 Working Conference on Constructing Programs from Specifications, pages 165--204, Amsterdam, 1991. North-Holland.
    [5]
    T. H. Corman, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction to Algorithms. MIT Press, 2nd edition, 2001.
    [6]
    M. Csikszentmihalyi. Creativity: Flow and the Psychology of Discovery and Invention. HarperCollins, New York, 1996.
    [7]
    R. P. Gabriel and R. Goldman. Conscientious software. In OOPSLA '06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, pages 433--450, New York, NY, USA, 2006. ACM Press.
    [8]
    T. Granlund. The GNU MP manual. http://www.swox.com/gmp/ (valid 20 Feb 2007).
    [9]
    G. King. CL-containers. http://common-lisp.net/project/cl-containers/ (valid 20 Feb 2007).
    [10]
    T. Kistler and M. Franz. Continuous program optimization: A case study. ACM Transactions on Programming Languages and Systems, 25(4):500--548, 2003.
    [11]
    D. Knuth. The Art of Computer Programming: Searching and Sorting, volume 3. Addison-Wesley Professional, 1998.
    [12]
    J. Low and P. Rovner. Techniques for the automatic selection of data structures. In POPL '76: Proceedings of the 3rd ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pages 58--67, New York, NY, USA, 1976. ACM Press.
    [13]
    N. Magaud. Theorem Proving in Higher Order Logics, volume 2758/2003, chapter Changing Data Representation within the Coq System, pages 87--102. Springer, 2003.
    [14]
    B. Margolin. CLOS and C++. Article [email protected] in Usenet group comp.lang.lisp (valid 20 Feb 2007), 20 Nov 2003.
    [15]
    J. Nicholas John Carriero. Implementation of tuple space machines. PhD thesis, Yale University, 1987.
    [16]
    J. Richardson. Automating changes of data type in functional programs. In Proceedings of the 10th Knowledge-Based Software Engineering Conference, pages 166--173, 1995.
    [17]
    M. Rinard. Acceptability-oriented computing. In OOPSLA '03: Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 221--239, New York, NY, USA, 2003. ACM Press.
    [18]
    E. Schonberg, J. T. Schwartz, and M. Sharir. An automatic technique for selection of data representations in setl programs. ACM Transactions on Programming Languages and Systems, 3(2):126--143, 1981.
    [19]
    J. Schwartz, R. Dewar, E. Dubinsky, and E. Schonberg. Programming with Sets: an introduction to SETL. Texts and Monographs in Computer Science. Springer-Verlag, New York, 1986.
    [20]
    D. R. Smith. KIDS: A semiautomatic program development system. IEEE Transactions on Software Engineering, 16(9):1024--1043, 1990.
    [21]
    P. Wadler. Views: a way for pattern matching to cohabit with data abstraction. In POPL '87: Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, pages 307--313, New York, NY, USA, 1987. ACM Press.
    [22]
    J. R. White. On the multiple implementation of abstract data types within a computation. IEEE Transactions on Software Engineering, 9(4):395--411, 1983.
    [23]
    G. Wozniak. Dynamic abstract data types. http://www.csd.uwo.ca/~woznak/dadt (valid 20 Feb 2007).
    [24]
    E. Zucca. From static to dynamic abstract data-types: an institution transformation. Theoretical Computer Science, 216(1--2):109--157, March 1999.

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    ILC '07: Proceedings of the 2007 International Lisp Conference
    April 2007
    187 pages
    ISBN:9781595936189
    DOI:10.1145/1622123
    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]

    Sponsors

    • Association of Lisp Users

    In-Cooperation

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 April 2007

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Research-article

    Conference

    ILC07
    Sponsor:
    ILC07: 2007 International Lisp Conference
    April 1 - 4, 2007
    Cambridge, United Kingdom

    Acceptance Rates

    Overall Acceptance Rate 18 of 26 submissions, 69%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • 0
      Total Citations
    • 69
      Total Downloads
    • Downloads (Last 12 months)4
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media