skip to main content
article
Free access

Systems programming with JSP: example—a VDU controller

Published: 01 October 1985 Publication History

Abstract

The generation of an embedded microprogram controlling a video display unit demonstrates how Jackson Structured Programming can be used effectively for both systems programming and microprocessor applications.

References

[1]
Ingevaldsson. L. /SP-A Pracficat Method of Program Design. Chartwell-Bratt. Brookfield. Vt. 1979. An easy-to-read text on JSP. where the method is applied to program development in COBOL. Fortran. and ALGOL.
[2]
Jackson. M.A. Principles of Program Design. Academic Press, New York, 1975. This classic text on JSP applies the method primarily to COBOL program design.
[3]
Jackson, M.A. System Deueloptnettt. Prentice-Hall. En&wood Cliffs. N.J. 1983. This classic on JSD traces three examples from the stage of vague system ideas through the writing of specifications. to the completion of program texts. Several complications and variations are successively introduced.
[4]
Sanden, B. Systems Programmu~g with /SP. Chartwell-Bratt. Bromley. England, 1985. A straightforward text that illustrates JSP with exam. pies from outside the typical administrative programming environment (e.g. systems programming. microcomputer applications, and embedded systems). Some elements of JSD are included in reference to program structures based on external processes rather than data streams.

Cited By

View all

Recommendations

Reviews

John R. Levine

Jackson Structured Programming (JSP) is a methodology which, is an oversimplified sense, says that the structure of a program must model the data on which the program operates. Sanden argues that although JSP has in the past mostly been used to design COBOL application programs, it is equally applicable to systems programming. He does this by showing an example: the program in a terminal which interprets a data stream that contains intermixed text and escape sequences. First the program deals with the simplest case. Then it is extended to deal with blocked input, the blocking boundaries being unrelated to the content of the data stream. This means that there are two data structures, the stream and the blocking, so there should in concept be two programs structured as coroutines. Most programming languages don't deal well with coroutines, so one program is embedded in the other as a subroutine. This all seemed pretty self-evident to me, but on reflection, I think it is valuable anyway. The isomorphism between data and the corresponding program is obvious and inevitable, but that doesn't mean that there haven't been a lot of instances where my programs would have been much better had I kept that in mind from the start. Similarly, the idea of developing a program as cooperating routines and mapping that into subroutines only as necessary is often useful and too infrequently practiced. System programmers would do well to overcome their disdain of anything with a whiff of COBOL and spend the 20 minutes reading and remembering this one.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image Communications of the ACM
Communications of the ACM  Volume 28, Issue 10
Oct. 1985
64 pages
ISSN:0001-0782
EISSN:1557-7317
DOI:10.1145/4372
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 1985
Published in CACM Volume 28, Issue 10

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)92
  • Downloads (Last 6 weeks)9
Reflects downloads up to 11 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media