Advertisement

A Survey and a Categorization Scheme of Automatic Programming Systems

  • Wolfgang Goebl
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1799)

Abstract

Automatic Programming (AP) systems have been used in a great variety of ways since the early days of software engineering. They have been used in AI related research approaches with the aim to generate computer programs from informal, incomplete, natural language-like specifications as well as in more pragmatic approaches related to 4th level languages. Terms such as “application generator”, “transformational system”, “code synthesizer”, “generative software development” were used for naming various approaches to AP. This paper presents a categorization scheme for AP systems. In this categorization scheme, a clear distinction is made between the AI related, hard AP- and soft AP systems. After that, a broad range of AP systems as well as their position in the categorization scheme is presented. Finally we discuss the relation between AP and software reuse.

Keywords

High Level Language Automatic Program Domain Specific Language Case Tool Executable Code 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    R. Balzer, “A 15 Year Perspective on AP”, IEEE Transactions on Software Engineering, November 1985, pp. 1257–1267Google Scholar
  2. [2]
    C. Rich, R.C. Waters, “AP: Myths and Prospect”, IEEE Computer, August 1988, pp. 40–51Google Scholar
  3. [3]
    F. P. Brooks, Jr., “No silver bullet: essence and accidents of software engineering”, IEEE Computer Magazine, April 1987, pp. 10–19Google Scholar
  4. [4]
    H. Mili, F. Mili, A. Mili, „Reusing Software: Issues and Research Directions“, IEEE Transactions on Software Engineering, June 1995, pp. 528–562Google Scholar
  5. [5]
    C.W. Krueger, „Software Reuse“, ACM Computing Surveys, June 1992, pp. 132–183Google Scholar
  6. [6]
    T. Biggerstaff, C. Richter. “Reusability Framework, Assessment and Directions”, IEEE Software, March 1987Google Scholar
  7. [7]
    J. Vlissides, “Generation gap (software design pattern)”, C++ Report, Nov.-Dec. 1996, p. 12, 14–18Google Scholar
  8. [8]
    J. Cleaveland, „Building Application Generators“, IEEE Software, July 1988, pp. 25–33Google Scholar
  9. [9]
    No Author, “Foreword”, IEEE Software, May 1993, pp. 7–9Google Scholar
  10. [10 ]
    D.R. Barstow, “Domain-Specific AP”, IEEE Transactions on Software Engineering, November 1985, pp. 1321–1336Google Scholar
  11. [11]
    W.T. Tsai et.al., “A critical look at the relationship between AI and software engineering”, Proceedings of the 1988 IEEE Workshop on Languages for Automation: Symbiotic and Intelligent Robots, p. 2–18Google Scholar
  12. [12]
    C. Willis and D. Paddon, „A software engineering paradigm for program synthesis“, Software Engineering Journal, September 1994, pp. 213–220Google Scholar
  13. [13]
    D.R. Barstow, R. Duffey, S. Smoliar, and S. Vestal, “An Overview of ΦNIX”, Amer. Ass. Artificial Intelligence, Pitsburgh, PA, August 1982Google Scholar
  14. [14]
    C. Green, “The design of the PSI program synthesizing system”, Proceedings of the 2nd International Conference on Software Engineering, October 1976, Long Beach, California, pp. 4–18, IEEE CS PressGoogle Scholar
  15. [15]
    Z. Manna, R. Waldinger, „Dreams→Programs“, IEEE Transaction on Software Engineering, July 1979, pp. 294–328Google Scholar
  16. [16]
    C. Rich, H.E. Schrobe, R.C. Waters, “An overview of the programmers apprentice”, Proceedings of the 6th International Joint Conference on Artificial Intelligence, August 1979, Tokyo, Japan, pp. 827–828Google Scholar
  17. [17]
    R. Balzer, N. Goldman, and D. While, “Informality in Program Specification”, IEEE Transactions on Software Engineering, March 1978, pp. 94–103Google Scholar
  18. [18]
    R. Balzer, N. Goldman, and D. Wile, “Final Report on GIST”, Technical Report of the Institute of Information Science, University of Southern California, Los Angeles, 1981Google Scholar
  19. [19]
    E. Kant, D. Barstow, “The Refinement Paradigm: The Interaction of Coding and Efficiency Knowledge in Program Synthesis”, IEEE Transactions on Software Engineering, September 1981, pp. 458–471Google Scholar
  20. [20]
    E. Horowitz, A. Kemper, B. Narasimhan, “A Survey of Application Generators”, IEEE Software, January 1985, pp. 40–54Google Scholar
  21. [21]
    N. Derschowitz, “Synthetic programming”, Artificial Intelligence, No. 25, 1985, pp. 323–373CrossRefGoogle Scholar
  22. [22]
    X. Jia, S. Skevoulis, “Code Synthesis Based on Object-Oriented Design Models and Formal Specifications”, Proceedings of the 22nd Computer Software & Applications Conference 1998, August 19–21, 1998, Vienna, Austria, pp. 393–398, IEEE CS PressGoogle Scholar
  23. [23]
    S. Jarzabek, „From reuse library experiences to application generation architectures“, ACM, Proceedings of the Symposion on Software Reuse 1995, pp. 114–122Google Scholar
  24. [24]
    M.E. Lesk, E. Schmidt, “Lex: A Lexical Analyzer Generator”, UNIX Programmer’s Manual-Supplementary Documents, 7th Edition, AT&T Bell Laboratories, Indianapolis, USAGoogle Scholar
  25. [25]
    S.C. Johnson, “Yacc: Yet Another Compiler Compiler”, UNIX Programmer’s Manual-Supplementary Documents, 7th Edition, AT&T Bell Laboratories, Indianapolis, USAGoogle Scholar
  26. [26]
    S. Jarzabek, „Specifying and Generating Multilanguage Software Development Environments“, Software Engineering Journal, March 1990, pp. 125–137Google Scholar
  27. [27]
    R. Fischer, “Zusammenfassung der 3 rd SIGSOFT Conference on Software Development Environments”, Mini Micro Magazin, April 1989, pp. 31–33Google Scholar
  28. [28]
    A. W. Biermann, “Approaches to AP”, in M. Rubinoff, M.C. Yovits, (Editors): “Advances in Computers”, Academic Press, 1976 pp.1–63Google Scholar
  29. [29]
    D. Partridge, “Connectionism as a software engineering paradigm”, Advanced Information Systems, January 1993, pp. 7–14Google Scholar
  30. [30]
    J. Martin, “Application Development Without Programmers”, Prentice Hall, Englewood Cliffs, N. J., 1982Google Scholar
  31. [31]
    P.C. Masiero, C.A.A. Meira, „Development and Instantiation of a Generic Application Generator“, Journal of Systems Software, 1993, Issue 23, pp. 27–37Google Scholar
  32. [32]
    D. Shafer, ”Automatic Pascal Code Generation with Prototyper 2.0”, Journal of Pascal, Ada & Modula 2, March/April 1989, pp. 58–220Google Scholar
  33. [33]
    T. Church and Philip Matthews, „An Evaluation of Object-Oriented CASE Tools: The Newbridge Experience“, Proceedings of the 7th International Workshop on Computer-Aided Software Engineering 1995, IEEE Computer Society Press, pp. 4–9Google Scholar
  34. [34]
    G. Kiczales, „Aspect Oriented Programming“, 8th Annual Workshop on Institutionalizing Software Reuse, WISR8, March 23–26 1997Google Scholar
  35. [35]
    W. Goebl, “The Significance of Generative Software Reuse in the Domain of Data-Oriented Information Systems”, Ph.D Thesis, Technical University of Vienna, 1999Google Scholar
  36. [36]
    B. Bhansali, „A Hybrid Approach to Software Reuse“, Proceedings of the Symposion on Software Reusability 1995, ACM Software Engineering Notes, Special Issue August 1995 pp. 215–218Google Scholar
  37. [37]
    B. Pieber, W. Goebl, “A Generative Approach for Building Data-Oriented Information Systems”, Proceedings of the 22nd Computer Software & Applications Conference 1998, August 19–21, 1998, Vienna, Austria, pp. 278–284, IEEE CS Press, 1998Google Scholar
  38. [38]
    D. Batory, B.J. Geraci, “Validating Component Compositions in Software System Generators“, Proceedings of the 4th International Conference on Software Reuse, April 23–26, 1996, Orlando Florida, IEEE Computer Society Press, pp. 72–81Google Scholar
  39. [39]
    J.M. Neighbors, „The Draco Approach to Constructing Software From Reusable Components“, IEEE Transactions on Software Engineering, September 1984, pp. 564–574Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Wolfgang Goebl
    • 1
  1. 1.Generali Service AGViennaAustria

Personalised recommendations