PROG\(\mathcal{DOC}\)— A New Program Documentation System

  • Volker Simonis
  • Roland Weiss
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2890)


Though programming languages and programming styles evolve with remarkable speed today, there is no such evolution in the field of program documentation. And although there exist some popular approaches like Knuth’s literate programming system WEB [26], and nowadays JavaDoc [15] or Doxygen [16], tools for managing software development and documentation are not as widespread as desirable.

This paper analyses a wide range of literate programming tools available during the past two decades and introduces PROG \(\mathcal{DOC}\), a new software documentation system. It is simple, language independent, and it keeps documentation and the documented software consistent. It uses \({\rm L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}\) for typesetting purposes, supports syntax highlighting for various languages, and produces output in Postscript, PDF or HTML format.


Source Code Programming Language Literate Programming Code Part Integrate Development Environment 
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.


  1. 1.
    Abrahams, P.W.: Typographical Extensions for Programming Languages: Breaking out of the ASCII Straitjacket. ACM SIGPLAN Notices 28(2) (February 1993)Google Scholar
  2. 2.
    Aho, A.W., Kernighan, B.W., Weinberger, P.J.: The AWK Programming Language. Addison-Wesley, Reading (1988)zbMATHGoogle Scholar
  3. 3.
    Armstrong, E.: Encoding Source in XML - A strategig Analysis,
  4. 4.
    Badros, G.J.: JavaML: A Markup Language for Java Source Code. In: 9th Int. WWW Conference, Amsterdam (May 2000)Google Scholar
  5. 5.
    Baecker, R.M., Marcus, A.: Human Factors and Typography for More Readable Programs. Addison-Wesley, Reading (1990)Google Scholar
  6. 6.
    Borland Software Corporation. Borland JBuilder,
  7. 7.
  8. 8.
    Bart Childs Literate Programming, A Practitioner’s View TUGboat, Vol. 13(2) (1992),
  9. 9.
    Childs, B., Sametinger, J.: Analysis of Literate Programs from the Viewpoint of Reuse. Software - Concepts and Tools 18(2) (1997),
  10. 10.
    Coates, A.B., Rendon, Z.: xmLP - a Literate Programming Tool for XML & Text. In: Extreme Markup Languages, Montreal, Quebec, Canada (August 2002),
  11. 11.
    Czarnecki, K., Eisenecker, U.W.: Generative Programming. Addison-Wesley, Reading (2000)Google Scholar
  12. 12.
  13. 13.
    Free Software Foundation The Fast Lexical Analyzer,
  14. 14.
    German, D.M., Cowan, D.D., Ryman, A.: SGML-Lite – An SGML-based Programming Environment for Literate Programming. ISACC (October 1996),
  15. 15.
    Gosling, J., Joy, B., Steele, G.: Java Language Specification. Addison-Wesley, Reading (1996)zbMATHGoogle Scholar
  16. 16.
    van Heesch, D.: Doxygen,
  17. 17.
  18. 18.
    Hendrix, T.D., Cross II, J.H., Barowski, L.A., Mathias, K.S.: Visual Support for Incremental Abstraction and Refinement in Ada95. SIGAda Ada Letters 18(6) (1998)Google Scholar
  19. 19.
    IBM Corporation. Visual Age C++,
  20. 20.
    Khwaja, A.A., Urban, J.E.: Syntax-Directed Editing Environments: Issues and Features. In: ACM SIGAPP Symposium on Applied Computing, Indianapolis, Indiana (1993)Google Scholar
  21. 21.
    Kiselyov, O.: SXML Specification. ACM SIGPLAN Notices 37(6) (June 2002),
  22. 22.
    Knasmüller, M.: Reverse Literate Programming. In: Proc. of the 5th Software Quality Conference, Dundee (July 1996)Google Scholar
  23. 23.
    Knuth, D.E.: Literate Programming. The Computer Journal 27(2) (1984)Google Scholar
  24. 24.
    Knuth, D.E.: The TEXbook, 11th edn. Addison-Wesley, Reading (1991)Google Scholar
  25. 25.
    Knuth, D.E.: TEX: The Program, 4th edn. Addison-Wesley, Reading (1991)Google Scholar
  26. 26.
    Knuth, D.E.: Literate Programming. CSLI Lecture Notes, vol. 27. Cambridge University Press, Cambridge (1992)zbMATHGoogle Scholar
  27. 27.
    Knuth, D.E., Levy, S.: The CWEB System of Structured Documentation. Addison-Wesley, Reading (1993)Google Scholar
  28. 28.
  29. 29.
  30. 30.
  31. 31.
    Meyrowitz, N., van Dam, A.: Interactive Editing Systems: Part I and II. Computing Surveys 14(3) (September 1982)Google Scholar
  32. 32.
    Microsoft Corporation. Visual Studio,
  33. 33.
    Morris, J., Schwartz, M.: The Design of a Language- Directed Editor for Block-Structured Languages. In: SIGLAN/SIGOA Symp. on text manipulation, Portland (1981)Google Scholar
  34. 34.
    Mössenböck, H., Koskimies, K.: Active Text for Structuring and Understanding Source Code. Software - Practice and Experience 27(7) (July 1996)Google Scholar
  35. 35.
    NetBeans Project. The NetBeans Platform and IDE,
  36. 36.
    The Oasis Consortium. SGML/XML and Literate Programming,
  37. 37.
    Pierrou, P.: Literate Programming in XML. Markup Technologies, Philadelphia, Pensylvania, US (December 1999),
  38. 38.
    Ramsey, N., Marceau, C.: Literate Programming on a Team Project Software. Practice & Experience 21(7) (July 1991),
  39. 39.
    Norman Ramsey Literate Programming Simplified IEEE Software, p. 97 (September 1994),
  40. 40.
    Red Hat, Inc. Source Navigator,
  41. 41.
    Samtinger, J.: DOgMA: A Tool for the Documentation & Maintenance of Software Systems. Tech. Report, Inst. fürWirtschaftsinformatik, J. Kepler Univ., Linz, Austria (1991)Google Scholar
  42. 42.
    Samtinger, J., Pomberger, G.: A Hypertext System for Literate C++ Programming. JOOP 4(8), SIGS Publications, NewYork (1992)Google Scholar
  43. 43.
    Sandø, S.E.: The Software Development Foundation CSF Specification,
  44. 44.
    Shum, S., Cook, C.: Using Literate Programming to Teach Good Programming Practices. In: 25th. SIGCSE Symp. on Computer Science Education, pp. 66–70 (1994)Google Scholar
  45. 45.
    Simonis, V.: The ProgDOC Program Documentation System,
  46. 46.
    Simonyi, C.: Intentional Programming - Innovation in the Legacy Age. IFIPWG2.1 meeting, June 4 (1996)Google Scholar
  47. 47.
    Simonyi, C.: The future is intentional. IEEE Computer Magazine 32(5) (May 1999)Google Scholar
  48. 48.
    Soroker, D., Karasick, M., Barton, J., Streeter, D.: Extension Mechanisms in Montana. In: Proc. of the 8th Israeli Conf. on Computer Based Systems and Software Engineering (1997)Google Scholar
  49. 49.
    Sun Microsystems, Inc. The Doclets API,
  50. 50.
    Teitelbaum, T., Reps, T.: The Cornell Program Synthesizer: A Syntax-Directed Programming Environment. Communications of the ACM 24(9) (September 1981)Google Scholar
  51. 51.
    The Unicode Consortium. The Unicode Standard 3.0. Addison-Wesley, Reading, Mass (2000),
  52. 52.
    Walsh, N., Muellner, L.: DocBook: The Definitive Guide. O Reilly & Associates (1999),
  53. 53.
    Williams, R.N.: funnelWeb,
  54. 54.
    Wirth, N., Gutknecht, J.: The Oberon System. Software - Practice & Experience 19(9), 857–893 (1989)CrossRefGoogle Scholar
  55. 55.
    World Wide Web Consortium. Mathematical Markup Language,
  56. 56.
    World Wide Web Consortium. Extensible Hypertext Markup Language,
  57. 57.
    The World Wide Web Consortium. Extensible Markup Language,
  58. 58.
    World Wide Web Consortium. Extensible Stylesheet Language Transformations,
  59. 59.
    Wunderling, R., Zöckler, M.: DOC++,
  60. 60.
    Van Christopher, J.: WykLiterate Programming Column. Communications of the ACM 33(3), 361–362 (1990)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Volker Simonis
    • 1
  • Roland Weiss
    • 1
  1. 1.Wilhelm-Schickard-Institut für InformatikUniversität TübingenTübingenGermany

Personalised recommendations