[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ 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

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

Please enable JavaScript to view thecomments powered by Disqus.

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
  • 70
    Total Downloads
  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)1
Reflects downloads up to 03 Jan 2025

Other Metrics

Citations

View Options

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