Pascal Users group Newsletter

The Pascal Users Group Newsletter was published between January, 1974 and November, 1983. It was an interchange of information, comments, and programs about Pascal during the critical years of its formation and use.

David T. Craig has graciously allowed me to scan in his collection, and Andy Mickel has given me permission to publish the newsletter online.

The newsletters, 1 to 27, are in .PDF or Portable Document Format, with editable text. This format is ideal for scanned paper documents, as it includes both the original bitmap of the documents, and also an OCR or Optical Character Recognition version of the text embedded such that the text can be copied to the clipboard, and used in other applications. For example, the programs contained can be copied out to an editor. OCR is not perfect, but any character errors can usually be worked out by examining the original scans.

In some cases, the newsletter scans are of copies, not originals. These scans include defects that were in the original copies, including dark areas and smears.

David T. Craig has given an Outsiders Retrospective of the newsletters.

Newsletter #1

Newsletter #2

Newsletter #3

Newsletter #4

Newsletter #5

Newsletter #6

Newsletter #7

Newsletter #8

Newsletter #9-#10

Newsletter #11

Newsletter #12

Newsletter #13

Newsletter #14

Newsletter #15

Newsletter #16

Newsletter #17

Newsletter #18

Newsletter #19

Newsletter #20

Newsletter #21

Newsletter #22-#23

Newsletter #23a

Newsletter #24

Newsletter #25

Newsletter #26

Newsletter #27



I have compiled a short (and incomplete) list of interesting events/articles in the PUG newsletter.


Newsletter #2  Page 1   1974  History of Pascal documented.

Newsletter #2  Page 6   1974  Wirth describes Pascal 6000-3.4.

Newsletter #2  Page 18  1974  Wirth describes Pascal-P (the P-machine, probally p1).

Newsletter #3  Page 1   1975  Pascal User Manual and Report published (assume first edition).

Newsletter #3  Page 4   1975  History of Pascal, revised.

Newsletter #3  Page 10  1975  Pascal-P2.

Newsletter #4  Page 40  1976  Per Brinch Hansen discusses concurrent Pascal.

Newsletter #4  Page 81  1976  Pascal P4 released.

Newsletter #11 Page 64  1978  ISO Standard Pascal progress discussion.

Newsletter #11 Page 70  1978  Pascal P4 implementation notes (is P4 standard Pascal?).

Newsletter #12 Page 7   1978  French/English Pascal keywords and identifiers.

Newsletter #12 Page 17  1978  Application section appears with Pascal sources.

Newsletter #12 Page 33  1978  Analisys of Pasal design goals.

Newsletter #13 Page 13  1978  Discussion of UCSD Pascal deviations/omissions from standard Pascal.

Newsletter #13 Page 34  1978  Pascal prettyprinter (Hueras).

Newsletter #13 Page 45  1978  Pascal prettyprinter (Condict).

Newsletter #13 Page 83  1978  Letters from Wirth and others on the draft ISO standard.

Newsletter #13 Page 84  1978  Letter concerning test suite for ISO Pascal (Wichmann).

Newsletter #13 Page 86  1978  Announcement of ANSI standards group.

Newsletter #13 Page 92  1978  Lazy I/O first described.

Newsletter #14 Page 5   1979  Working draft of BSI/ISO Pascal standard.

Newsletter #15 Page 7   1979  Comments on ADA.

Newsletter #15 Page 31  1979  ID2ID identifier translator program.

Newsletter #15 Page 35  1979  Text formatter program.

Newsletter #15 Page 62  1979  How to process scope in Pascal (A. Sale).

Newsletter #15 Page 63  1979  Interactive Pascal-S.

Newsletter #15 Page 90  1979  Pascal standards progress reports.

Newsletter #15 Page 99  1979  Pascal validation suite available.

Newsletter #15 Page 102 1979  Modula-2.

Newsletter #15 Page 112 1979  UCSD becomes commercial product.

Newsletter #17 Page 12  1980  Report on Ada.

Newsletter #17 Page 18  1980  Pascal cross reference program.

Newsletter #17 Page 29  1980  Pascal macro processor.

Newsletter #17 Page 54  1980  Conformant array parameters proposed.



Here is an index of source programs that have appeared in PUG newsletters. Note that I have discriminated, perhaps arbitrarily, between programs that were just simple fragments appearing in articles, and whole, complete programs designed to perform a task.


Newsletter #5      Page 12  1976  Soma cube solver.

Newsletter #12     Page 20  1978  Compare two text files and report differences.

Newsletter #12     Page 25  1978  Performance measurement.

Newsletter #12     Page 32  1978  Self printing program.

Newsletter #13     Page 34  1978  Pretty printer (Pascal source formatter).

Newsletter #13     Page 49  1978  Pascal program formatter.

Newsletter #15     Page 32  1979  Rename identifiers in a Pascal program.

Newsletter #15     Page 40  1980  Prose text formatter.

Newsletter #15     Page 57  1980  Compute perfect hash table for Pascal reserved words.

Newsletter #16     Page 20  1979  Pascal standard validation suite.

Newsletter #17     Page 20  1980  Pascal program cross reference generator.

Newsletter #17     Page 30  1980  Pascal macro preprocessor.

Newsletter #19     Page 30  1980  Pascal-s compiler/interpreter.

Newsletter #19     Page 44  1980  LISP intepreter.

Newsletter #21     Page 12  1981  EM-1 Machine emulator (for later EM1 Pascal compiler).

Newsletter #22&#23 Page 4   1981  EM-1 Pascal compiler.

Newsletter #22&#23 Page 40  1981  Print trees.

Newsletter #22&#23 Page 44  1981  Perform huffman compression on file.

Newsletter #24     Page 40  1983  Biliography generator program.

Newsletter #24     Page 28  1983  Tree print program.

Newsletter #25     Page 12  1983  Improved Pascal cross reference generator program.

Newsletter #27     Page 31  1983  Pascal translator writing system.



Reading the PUG Newsletters

There is a lot of history contained in the newsletters. What makes it most interesting is that, at the time it was published, the people writing the material genuinely, and for good reason, thought that their language was going to be come the most used language in existence.


People decry the lack of standards in Pascal. Actually, the newsletters make the path of non-standard Pascal abundantly clear. As newsletter #11 goes into, the P4 compiler, used as a base for most other compilers, wasn't very standard, and subsetted, and to some extent, changed the language. Of course, Professor Wirth never represented it as anything but a starter kit for a compiler. Undoubtedly the intent was to give a minimum set of Pascal which could self compile, and leave it up to the implementors to fill out the remaining Pascal details. In most cases, it seemed to have worked this way. However, the UCSD implementation clearly did not.

The UCSD implementation is alternately prasied and insulted in the newsletters. It was clear that some were upset about it being non-standard. Interestingly, the major push for a group to discuss extentions to Pascal was the UCSD group, so clearly here is the root of microcomputers rapidly diverging from standard Pascal.

Just as clearly, that fuse was lit by the P4 compiler. Whether that was intended or not is another discussion.


One theme that runs through the newsletters is a constant barrage of ideas, requests, pleads and demands for extentions to the language. The two biggest subjects are dynamic arrays and a default selector for case statements. It may well be that one reason the standards comittees didn't get into serious discussions about extentions is that the subject was already very contentious before the standards process even started.

And speaking of contentious....


The subject of standardizing Pascal came early and often, and got started in a relatively rapid way. Andy Mickel states "did you know ANYONE can propose a standard for Pascal"? And off they ran....

The standards process, led by Tony Addyman, got off to a good start with the excellent draft proposal. The standards process was started in serveral countries in parallel (which is standard procedure). Then, in Newsletter #19, it all falls apart rapidly as the Americans protest the inclusion of conformat array parameters. Here is the root of the eventual split between the ISO and ANSI standards.


Its truly amazing just how many compilers are represented in the Newsletters. Virtually every mainframe, minicomputer and microcomputer appears to have been supported in projects from interpreters to compilers, even on the lowly 8080. So why is it that in 1983 Borland swept the field ? The newsletters make it clear, its not about having a compiler, its about executing quickly to make a product.


The newsletters contain a large number of standard source programs in Pascal. Unfortunately, I haven't come up with a reliable method of converting them back to compilable Pascal source using OCR. It is true that they have been run though an OCR as part of the .pdf creation (see comments above). However, the formatting has been lost, and there is no good means to "glue" the multiple pages and collumns into one whole program. Additionally, there are enough OCR problems, such as badly recognized characters, to create difficulties with getting the resulting programs to compile.

In some cases, the programs exist in full source form under the UCSD Pascal USUS (UCSD users' society) libraries. However, they are also usually modified to work under the UCSD Pascal language, which is markedly different from regular Pascal (and indeed, any other Pascal).

I have restored, and will continue to restore, the occasional source program and post it here. Typically, this occurs by either taking a USUS copy and restoring it to original form, or taking the OCR forms and reformatting them. Sometimes the latter solution can involve as much work as just typing the program in with reference to the PUG newsletters.

Alternately, the future may bring a better OCR program that preserves formatting. I have often believed, when looking at old computer listings, that there can be a form of OCR that both takes better advantage of the fixed formatting of such listings, and also preserves the fixed formatting in output. Such an OCR mode may not be widely available simply because of the limited interest of the subject (convertion of old software listings).

For more information contact: Scott A. Moore