Example 2: KWIC — index generation

  • J. W. Hughes
  • M. S. Powell
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 134)


A method of program specification is described which leads naturally to the expression of a program as a network of simple processes. Starting with the problem statement the valid inputs and outputs of the system are specified by grammars which represent the structure of the input and output streams of a "black-box" which can be decomposed hierarchically into a structured network of processes which performs the required transformations. Three forms of network structure are described, analagous to the three forms of control in sequential programs. The leaves of the hierarchical description are sequential processes described by a form of attributed translation grammar which permits the specification of semantic as well as syntactic transformations. The notation can be used to specify programs which may be implemented either in conventional programming languages or by direct compilation of the DTL notation. The method is illustrated by application to the KWIC index workshop example.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Dijkstra, E. W. "Notes on Structured Programming" APIC Studies on Data Processing No. 8, Academic Press, NY,1972,pp 1–81Google Scholar
  2. 2.
    Guttag, J. "Notes on Data Abstraction" Nato Summer School. 26 July–6 August 1978.Google Scholar
  3. 3.
    Hoare, C. A. R. "Communicating Sequential Processes" CACM, Vol.21, No. 8 (August 1978) pp. 666–677Google Scholar
  4. 4.
    Jackson, M.A. "Information Systems: Modelling, Sequencing and Transformations" IEEE Proc. International Conference on Software Engineering 1978Google Scholar
  5. 5.
    Kahn, G. and McQueen, D.B. "Coroutines and Networks of Parallel Processes" IFIP Conference on Information Processing 1977.Google Scholar
  6. 6.
    Lewis, P. M. and Stearns, R.E. "Syntax Directed Transductions" JACM, Vol.15 No. 3 (July 1968) pp 465–488Google Scholar
  7. 7.
    Liskov, B. "Modular Program Construction using Abstractions" Lecture Notes in Computer Science, No. 86, Springer Verlag 1980, pp 354–389Google Scholar
  8. 8.
    Parnas, D.L. "Information Distribution Aspects of Design Methodology" Information Processing 71, Vol. 1 North Holland Publishing Co. 1972 pp 339–344Google Scholar
  9. 9.
    Wirth, N. "Program Development by Stepwise Refinement" Comm. ACM, Vol.14 No. 1 (April 1971).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1982

Authors and Affiliations

  • J. W. Hughes
    • 1
  • M. S. Powell
    • 1
  1. 1.Department of ComputationUMISTUK

Personalised recommendations