QUILT(ID:4447/qui013)

CAI language 


for QUIck Instructional lisT processor

Carl Eckberg, San Diego State University

Language (interpreted and batched) to assist in teach Data Structures, especially chapter 2 of Knuth.





Places
Structures:
Related languages
QUILT => KWILT   Alias

References:
  • Eckberg, Carl "QUILT (a.k.a. KWILT): A special purpose instructional language" view details Extract: Introduction and Environment
    The QUILT language is designed as a teaching aid for a junior level course in data structures. QUILT is a mnemonic for QUick Instructional List processor. It is an interpreted language, in which typical data structures programming assign- ments can be easily written and speedily executed.

    Section II Will discuss the educational environment which this language was designed for, and how the environment influenced the design.

    Section III will examine some aspects of the language's syntax and semantics, and will present some programming segments.

    In Section IV emphasis will be placed upon the use of the QUILT DUMP facility, which has proved to be a very valuable tool for everyone concerned.

    Section V contains the results of a user'survey. Section VI has concluding remarks.

    Throughout this paper it should be noted that the syllabus for the course in data structures that we teach is the un-starred sections of Chapter 2 of Knuth [i]. Terms not explained within this paper can be located in that text.

    II. The environment

    QUILT has been developed at San Diego State University, which for a campus serving 30,000 students, is not well endowed. The university is state supported, but the per student expenditure is much lower than in the University of California system, which is chartered to do research.

    As a consequence our computing facilities have generally been severely overtaxed. Despite a batch allocation system based on "funny money," turn-arounds are often limited to one a day or less. Each student begins a semester with a certain fixed stock of computer time to spend as best he can. Faster turn-arounds are available at greatly increased cost.

    In this environment fast compilation is of supreme importance to the users. Additionally data structures programming is best carried out in a language which permits structured programming, and which includes pointers as a data type. At the time QUILT was born, our only good option was PL/I, but that compiler was extremely slow.

    Another major factor influencing the decision to implement the language was the diverse background of the students in our classes. Since most juniors are transfers from community colleges, their prior programming background was highly variable. They typically knew a single higher level language, which could be BASIC, FORTRAN, COBOL, PL/I, ALGOL, PASCAL, etc. In some cases we did not even have a translator for the language they had learned.

    As a result of these concerns QUILT was designed to have the following abilities:
    (i) to translate source programs quickly
    (2) to permit data structures programs to be easily coded in a structured form
    (3) to give good diagnostics - the best possible
    (4) to be easy to learn

    The second and third criteria were a matter of language design and these aspects are discussed in the next sections.

    Quick translation was assisted by insuring that only one pass over the source code was needed. A typical 80 line source program processing a linked list will translate and run in one to three CPU seconds on our IBM 360/50, as contrasted with fifteen to thirty seconds in PL/I.

    Finally, the most recent user manual is only 62 wide-margined double-spaced Pica-typed pages, and this includes error messages, B.N.F., the index, and many examples. Students are able to learn the language quickly, and completely on their own!

    It would be a grave error to fail to emphasize the biggest dividend for the instructor. Since all (higher-level) programs are done in QUILT, grading and debugging is greatly simplified. Previous to QUILT, the instructor accepted programs in any language on any machine, and this at least doubled the grading time where the actual code was concerned.

    Last but not least is the matter of monetary cost. The QUILT manual, being short, can be reproduced for a couple of bucks, as contrasted with manufacturer's reference manuals in the $8 to $20 range (and then you often need a separate manual to find error messagesl)


    III. Language Summary
    The salient features of the QUILT language from the user's viewpoint are these:

    (1) The ability to easily declare and initialize common linked struc- tures, such as singly or doubly linked lists and binary trees.

    (2) An automatic indenter which, together with Algol-like control structures, can help demonstrate and promote good programming techniques.

    (3) A set of very simple print commands especially suited to linked structures.

    (4) The existence of a linked stack of nodes of versatile format, with a pointer AVAIL to the first node on this list (top of stack), together with push and pop operations for this stack.

    (5) A higher level dump which can be requested by a DUMP statement or displayed in the event of an error.

    (6) The absence of features not really relevant to the task at hand. For example, a FORTRAN programmer need not master hierarchial data structures as a preliminary to linked list programming in QUILT. As another example, since all data required is readily initializable within declarations, the language has no input commands, and thus the I/O problem is reduced to the O problem.

    [...]

    VI. Conclusions
    Quilt has proven its value for data structures programming assignments beyond the expectations of its designers and implementers.

    When the announcement is made at the start of the semester that the student must learn a new language as part of the class, the result is a predictable chorus of complaint. In many cases this is due mostly to the fact that the student knows only two languages to begin with, one higher level and one assembler, and he acquired his knowledge of each at considerable cost. Other students are simply enamoured of a given language, such as APL or SNOBOL, and resent being deprived of it. But almost every student, however hostile initially, changes his mind before the end of the semester.
          in [ACM SIGCSE] ACM SIGCSE Ninth Technical Symposium on Computer Science Education 1978, Pittsburgh view details