Nothing Special   »   [go: up one dir, main page]

skip to main content
article

Example centric programming

Published: 01 December 2004 Publication History

Abstract

Programmers tend to understand programs by thinking of concrete examples. Example Centric Programming seeks to add IDE support for examples throughout the process of programming. Instead of programmers interpreting examples in their head, the examples are written down and the IDE interprets them automatically. Advanced UI techniques are used to present the results closely integrated with the code. Traditionally distinct programming tools (the editor, Read-Eval-Print-Loop, debugger, and test runner) are unified into a single tool that might be called an example-enlightened editor. This is expected to benefit a wide spectrum of programming activities, for both novice and experienced programmers. Some novel methods for testing and development are made possible. In the longer term, example centrism has implications for the design of future programming languages. A prototype has been implemented for Java in Eclipse.

References

[1]
BeanShell http://www.beanshell.org/home.html
[2]
Beck, K. Test-Driven Development: By Example. Addison-Wesley 2002.
[3]
Booth, S. P., and Jones, S. B. Walk Backwards to Happiness-Debugging by Time Travel. 3rd International Workshop on Automated Debugging (AADEBUG 97) Linkoping, Sweden, May 1997.
[4]
Burnett, M., Atwood, J., Djang, R., Gottfried, H., Reichwein, J., and Yang, S. Forms/3: A First-Order Visual Language to Explore the Boundaries of the Spreadsheet Paradigm. Journal of Functional Programming 11, 2 (March 2001).
[5]
Cypher, A. Watch What I Do: Programming by Demonstration. MIT Press 1993.
[6]
Eclipse Platform Technical Overview http://www.eclipse.org/whitepapers/eclipse-overview.pdf
[7]
Eisenstadt, M., and Brayshaw, M. A fine-grained account of Prolog execution for teaching and debugging. Instructional Science, 19(4/5), pp. 407--436, 1990. http://kmi.open.ac.uk/marc/papers/InstrSci-90.ps.gz
[8]
Findler, R. B., Clements, J., Flanagan, C., Flatt, M., Krishnamurthi, S., Steckler, P., and Felleisen, M. DrScheme: A programming environment for Scheme. Journal of Functional Programming 12, 2 (March 2002).
[9]
Fowler, M., Beck, K., Brant, J., Opdyke, W., and Roberts, D. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999.
[10]
Gamma, E., and Beck, K. Contributing to Eclipse. Addison-Wesley. October 2003.
[11]
Henderson, P., and Weiser, M. Continuous Execution: The VisiProg Environment. ICSE '85 London, England, 1985.
[12]
Hoffman, D., Walsh, P. Teaching Programming with Minimal Examples. Western Canadian Conference on Computing Education. Nanaimo, BC, Canada 1997 http://www.cs.ubc.ca/wccce/program97/walsh/walsh.html
[13]
Hunt, A., and Thomas, D. Pragmatic Unit Testing. http://www.pragmaticprogrammer.com/starter_kit/ut/index.html
[14]
Jones, S. P., Blackwell, A., Burnett, M. A User-Centered Approach to Functions in Excel. ICFP '03. Uppsala Sweden, 2003.
[15]
Kölling, M., Quig, B., Patterson, A. and Rosenberg, J., The BlueJ system and its pedagogy. Journal of Computer Science Education, Vol 13, No 4, Dec 2003 http://www.bluej.org/papers/2003-12-CSEd-bluej.pdf
[16]
Lewis, B. Debugging Backwards in Time. 5th International Workshop on Automated Debugging (AADEBUG 2003) Ghent, Belgium, September 2003
[17]
Lieberman, H. Your Wish is My Command: Programming by Example. Morgan Kaufmann, 2001.
[18]
Mackinnon, T., Freeman, S., and Craig, P. Endo-Testing: Unit Testing with Mock Objects. In Extreme Programming Explained. Addison-Wesley 2001.
[19]
Morris, J. H., Schmidt, E., Wadler, P. Experience with an applicative string processing language. 7th ACM SIGPLAN SIGACT symposium on Principles of Programming Languages (POPL '80) Las Vegas, Nevada, 1980.
[20]
Reiss, S. P. Graphical program development with PECAN program development systems. In Proceedings of first ACM Software Engineering Symposium on Practical Software Development Environments. 1984
[21]
Rothermel, G., Li, L., DuPuis, C., and Burnett, M. What You See Is What You Test: A Methodology for Testing Form-Based Visual Programs. 20th International Conference on Software Engineering (ICSE 98). April, 1998.
[22]
Saff, D., and Ernst, M. D. Reducing wasted time via continuous testing. In Fourteenth International Symposium on Software Reliability Engineering, (Denver, CO), November, 2003.
[23]
Smith, R. B., and Ungar, D. Programming as an Experience: The Inspiration for Self. ECOOP '95 Conference Proceedings, Aarhus, Denmark, August, 1995.
[24]
Tolmach, A., and Appel, A. W. A Debugger for Standard ML. Journal Functional Programming 1, 1 (January 1993)
[25]
Ungar, D., Lieberman, H., and Fry, C. Debugging and the Experience of Immediacy. CACM. 40, 4 (April 1997).
[26]
Ungar, D., and Smith, R. B. SELF: The Power of Simplicity. OOPSLA '87. Orlando, FL, October, 1987

Cited By

View all
  • (2024)Examples out of Thin Air: AI-Generated Dynamic Context to Assist Program Comprehension by ExampleCompanion Proceedings of the 8th International Conference on the Art, Science, and Engineering of Programming10.1145/3660829.3660845(99-107)Online publication date: 11-Mar-2024
  • (2024)Faster Feedback with AI? A Test Prioritization StudyCompanion Proceedings of the 8th International Conference on the Art, Science, and Engineering of Programming10.1145/3660829.3660837(32-40)Online publication date: 11-Mar-2024
  • (2023)Toward Studying Example-Based Live Programming in CS/SE EducationProceedings of the 2nd ACM SIGPLAN International Workshop on Programming Abstractions and Interactive Notations, Tools, and Environments10.1145/3623504.3623568(17-24)Online publication date: 18-Oct-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 39, Issue 12
December 2004
116 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/1052883
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 December 2004
Published in SIGPLAN Volume 39, Issue 12

Check for updates

Author Tags

  1. debugging
  2. eclipse
  3. environment
  4. examples
  5. integrated development
  6. unit testing

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)2
Reflects downloads up to 21 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Examples out of Thin Air: AI-Generated Dynamic Context to Assist Program Comprehension by ExampleCompanion Proceedings of the 8th International Conference on the Art, Science, and Engineering of Programming10.1145/3660829.3660845(99-107)Online publication date: 11-Mar-2024
  • (2024)Faster Feedback with AI? A Test Prioritization StudyCompanion Proceedings of the 8th International Conference on the Art, Science, and Engineering of Programming10.1145/3660829.3660837(32-40)Online publication date: 11-Mar-2024
  • (2023)Toward Studying Example-Based Live Programming in CS/SE EducationProceedings of the 2nd ACM SIGPLAN International Workshop on Programming Abstractions and Interactive Notations, Tools, and Environments10.1145/3623504.3623568(17-24)Online publication date: 18-Oct-2023
  • (2023)XRSpotlight: Example-based Programming of XR Interactions using a Rule-based ApproachProceedings of the ACM on Human-Computer Interaction10.1145/35932377:EICS(1-28)Online publication date: 19-Jun-2023
  • (2021)Weaving Schematics and Code: Interactive Visual Editing for Hardware Description LanguagesThe 34th Annual ACM Symposium on User Interface Software and Technology10.1145/3472749.3474804(1039-1049)Online publication date: 10-Oct-2021
  • (2020)Untangling mechanized proofsProceedings of the 13th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3426425.3426940(155-174)Online publication date: 16-Nov-2020
  • (2019)A vision of miking: interactive programmatic modeling, sound language composition, and self-learning compilationProceedings of the 12th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3357766.3359531(55-60)Online publication date: 20-Oct-2019
  • (2018)SEEDE: simultaneous execution and editing in a development environmentProceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering10.1145/3238147.3238182(270-281)Online publication date: 3-Sep-2018
  • (2018)Visual augmentation of source code editors: A systematic mapping studyJournal of Visual Languages & Computing10.1016/j.jvlc.2018.10.00149(46-59)Online publication date: Dec-2018
  • (2017)A demonstration of simultaneous execution and editing in a development environmentProceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering10.5555/3155562.3155674(895-900)Online publication date: 30-Oct-2017
  • Show More Cited By

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