Utilizing fifth generation technology in software development tools

  • Wolfgang Henhapl
  • Stefan Kaes
  • Gregor Snelting
Research Issues And Results
Part of the Lecture Notes in Computer Science book series (LNCS, volume 509)


Software developers express a desire for more intelligent support for all phases of the software development process, but current CASE technology does not fully utilize the advancements which have been achieved in fields like automated deduction or specification languages. It is the aim of this paper to demonstrate how such techniques can detect and even prevent errors and inconsistencies much earlier than conventional tools. We describe inference-based support for interactive configuration management, interface checking, component reuse, and intelligent browsing; furthermore, we present a programming environment for rapid prototyping based on a lazy functional language. All tools make heavy use of automated deduction techniques such as order-sorted unification or AC1 unification, and are parameterized with language-specific information such as type inference or module dependency rules.


Context Relation Functional Language Program Text Lazy Evaluation Interface Information 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

8 References

  1. [AM87]
    Appel, A. and MacQueen, D.: A Standard ML Compiler. Proc. FPCA 87, LNCS 274, pp. 301–324.Google Scholar
  2. [AJ89]
    Augustsson, L. and Johnsson, T.: The Chalmers Lazy ML Compiler. The Computer Journal 32, 2 (April 1989), pp. 127–141.Google Scholar
  3. [BS86]
    Bahlke, R. and Snelting, G.: The PSG System: From Formal Language Definitions to Interactive Programming Environments. ACM TOPLAS 8, 4 (October 1986), pp. 547–576.Google Scholar
  4. [BS91]
    Bahlke, R. and Snelting, G.: Design and Structure of a Semantics-based Programming Environment. International Journal of Man-Machine Studies, to appear.Google Scholar
  5. [BMS80]
    Burstall, R., MacQueen, D. and Sanella, D.: HOPE: an experimental applicative language. Proc. Lisp Conference 1980, ACM.Google Scholar
  6. [El89]
    Elzer, P.: Management von Softwareprojekten. Informatik Spektrum 12, 4 (August 1989), pp. 181–197.Google Scholar
  7. [En88]
    Endres, A.: Software-Widerverwendung: Ziele, Wege und Erfahrungen. Informatik Spektrum, 11, 2 (April 1988), pp. 85–95.Google Scholar
  8. [Est88]
    Estublier, J.: Configuration Management. Proc. International Workshop on Software Version and Variant Control, Grassau 1988.Google Scholar
  9. [Fa84]
    Fages, F.: Associative-Commutative Unification, Proc. 7th CADE, 1984, LNCS 170, pp. 194–208.Google Scholar
  10. [Fe79]
    Feldmann, S. I.: Make — A program for maintaining computer programs. Software Practice and Experience, Vol. 9, April 1979.Google Scholar
  11. [GKT90]
    Gloger, M., Kaes, S., and Thies, Ch.: Entwicklung funktionaler Programme in der SAMPLE Programmierumgebung. Report PI-R3/90, Technische Hochschule Darmstadt, Fachbereich Informatik, June 1990.Google Scholar
  12. [Ha86]
    Harper, R.: Introduction to Standard ML. Report ECS-LFCS-86-14, University of Edinburgh, November 1986.Google Scholar
  13. [Hu89]
    Hughes, J.: Why functional programming matters. The Computer Journal 32, 2 (April 1989), pp. 98–107.Google Scholar
  14. [Ka88]
    Kaes, S.: Parametric Overloading in Polymorphic Programming Languages. Proc. 2nd European Symposium on Programming, LNCS 300, pp. 131–144.Google Scholar
  15. [ML88]
    Mahler A. and Lampen, A.: An Integrated Toolset for Engineering Software Configurations. Proc. Practical Software Engineering Environments, SIGPLAN Notices 24, 2 (February 1989).Google Scholar
  16. [RT89]
    Runciman, C. and Toyn, I.: Retrieving Re-usable Software Components by Polymorphic Type. Proc. Functional Languages and Computer Architecture, ACM 1989, pp. 166–173.Google Scholar
  17. [Ri89]
    Rittri, M.: Using Types as Search Keys in Function Libraries. Proc. Functional Languages and Computer Architecture, ACM 1989, pp. 174–183.Google Scholar
  18. [Sch89]
    Schroeder, U.: Incremental Variant Control. Proc. 2nd International Workshop on Software Version and Variant Control, Princeton 1989, pp. 145–148.Google Scholar
  19. [Sn91]
    Snelting, G.: The Calculus of Context Relations. ACTA INFORMATICA, to appear.Google Scholar
  20. [SGS90]
    Snelting, G., Grosch, F.J., and Schroeder, U.: Inference-based Support for Programming in the Large. Report PI-R13/90, Technische Hochschule Darmstadt, Fachbereich Informatik. Submitted for publication.Google Scholar
  21. [Ti85]
    Tichy, W. F.: RCS — A System for Version Control. Software Practice and Experience 15, 7 (Juli 1985), pp. 637–654.Google Scholar
  22. [Tu85]
    Turner, D.: Miranda: A non-strict functional language with polymorphic types. Proc. FPCA 85, LNCS 201, pp. 1–16.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1991

Authors and Affiliations

  • Wolfgang Henhapl
    • 1
  • Stefan Kaes
    • 1
  • Gregor Snelting
    • 1
  1. 1.Praktische InformatikTechnische Hochschule DarmstadtDarmstadt

Personalised recommendations