It- r;11dI1~~~ '10.00 PASCAL USERS G;OUP ~ Pascal News Communications about the Programming Language Pascal by Pascalers I I

. Pascal Processor Validation Procedure . A Better Referencer . Use of Generic Capsules . Implementation Reports . Validation Suite Reports . Announcements

I

r

Number 25 APRIL83 , I

POUCY: PASCAL NEWS (Jan. 83) .Pascal News is the official but Informal publication 01 the User's Group. Pascal News Purpose: The Pascal User's Group (PUG) promotes the usa 01 the programming language Pascal as well as the Ideas behind Pascal through the vehicle 01 Pascal News. PUG is intentionally de- Communications about the Programming Language Pascal b~ PasCalers signed to be non political, and as such, tt is not an "entity" which takes stands on issues or support causas or other ellorts however well-intentioned. Inlormality is our guiding principle; there are no olficers or meetings 01 PUG. APRIL 1983 Number 25 The increasing availability 01 Pascal makes tt a viable alternative lor software production and justifies hs further usa. We all strive to make using Pascal a respectable activity.

Membership: Anyone can join PUG, particularly the Pascal usar, teacher, main- teiner,lmpIementor, distributor, or just plain Ian. Memberships !rom IIbreri88 are aIeo encouraged. Sea the COUPON lor details. 2 EDITORS NOTES .Pascal News Is produced 4 times during a year; January, AprIl, July October. . All THE NEWS THArS FIT, WE PRINT. Please send material (brevity is a virtue) lor Pascal News single- 3 PASCAL USERS GROUP (UK) spaced and camera-ready (usa dark ribbon and 15.5 em linasl) 3 LT. and M.I.S.S. By PhillipDarrington 4 Pascal-AnEffectiveLanluaae StandardBy Brian Wichmann . Remember: ALL LETTERS TO US WILL BE PRINTED UNLESS THEY CONTAIN A REQUEST TO THE 8 Pascal ProcessorValidationProcedureBy DavidBlyth CONTRARY. SOFTWARE TOOLS . Pascal News is divided into ftexible sections: 12 A Better Referencer By J. Yavner 18 The Use of Generic Capsules with the University of Minnesota Pascal 6000 Compiler POLICY - explains the way we do things (ALL-PURPOSE COUPON, etc.) By Frank L. Fri~dman, Alns;o Giacomucci, Carol A. Ginsburg and Anita Girton ANNOUNCEMENTS EDITOR'S CONTRIBUTION - passes along the opinion and point of view of the editor together with changes in the mechanics of PUG operation, etc. 24 PACS Computer Game Festival 24 Oh! Pascal! 2. New Modula-2 Versioo APPLICATIONS presents and documents source programs written in Pascal for various algortthms, and - 2S New Ticomm Microcomputers software tools for a Pascal environment; news of significant applications programs. Also critiques regarding 25 Edison on IBM Penon.1 Computer program/algorithm certification, performance. standards conlormance, sty1e,output convenience, and general 25 JRT Pascal design. 7T Pascal Compiler for IBM Mainframe 28 Great Plains Announcement ARTICLES - contains formal, submttted contributions (such as Pascal philosophy, use of Pascal as a teaching 28 INMOS Announces OCCAM tool, use of Pascal at ddlerent computer installations, how to promote Pascal, etc.). 30 Tiny Pascal Plus 30 Help Wanted 30 Ridse Thirtytwo Graphics OPEN FORUM FOR MEMBERS - contains short, informal correspondence among members which is of intenlSl to the readership of Pascal News. 32 VAUDATION SUITE COUPON IMPLEMENTATION NOTES - reports news of Pascal implementations: contacts for maintainers, implemen- 33 IMPLEMENTATION REPORTS tors, distributors, and documentors 01various implementations as well as where to send bug reports. Qualitative and quanmative descriptions and comparisons 01 various implementations are publicized. Sections contain 48 MachineInde. information about Portable Pascals, Pascal Variants, Feature-Implementation Notes, and Machine-Dependent Implementations. 47 VAUDATION SUITE REPORTS 47 HP 3000 Series 33 VALIDATION SUITE REPORTS - reports performance of various compilers against standard Pascal 51 Intel 8085. ZilOJ 80 (CoJitronics) ISO 7185. 52 IBM 370 (AAEC) 88 Pascal 1100 88 fBM 4341 80 VAX )).780 82 BACK ISSUE COUPON

.. MEMBERSHIP COUPON I

J

I.Id- '. .AI. &1M-9'--, Cf/- ~ (0/1:Yf)9--' Cf/- ~ (U) 9--' Cf/- ~ (U) 9--' Cf/- ~ (0/1:. Pascal Users Group (U.K.) Good Members Hello; bers and also provide an air mail option for those who I now have control of most elements of Pascal need Pascal News as quick as possible. Pascal News 23a is a supplement, to plug the IJll8line the disappointment at faililla to fiDeIany- News and future submission articles, comments and Writing of timeliness I am reminded that the news- gap good jokes should be addressed: letter has deadlines. These are January 1st, April 1st, lellJllhening between US originating 23 and 24. tbina innovative or even mildly interesting. Discovered July 1st and October 1st. When you have material for Readers will note that its contents are quite different that with a single exception, exhibitors did not know Pascal News the newsletter please send it as quick as possible. Do from those of previous editions. There is a shift of em- whether standard Pascal was implemented on the ma- 2903 Huntington Road phasis from matters of concern at leading edge Uni- chiDes offered to the public. More than one of those Cleveland, Ohio 404120 not worry about the deadlines but keep in mind news versity level, to those of concern to producers and users loses its value as it matures. asked, replied "Yes, it's called UOCS or something like Our United Kingdom and European elements are I will continue to publish implementation notes and of inexpensive standardized products. that". At one stand, sponsored by British Petroleum, thriving and boisterous. announcements of the trade. I encourage members and That shift has been wholly dictated by the content the Department of Trade and Industry, the Council for of material submitted for publication. Whether it is a Educational Technology, and others, an 'expen' merely PUG (UK) PUG (Eur) vendors to test drive their new compilers with the temporary side-step or a permanent change, will also P.O. Box S2 ARGE Pascal "Validation Suite". Send the repons to me and then we looked blank and sugested that I ask someone else. will all know the best performing compilers. be decided by contributors (to future editions). 'Someone Else' replied "We are only interested in Pinner Hellmut Weber PUG(UK) is the servant of you the subscribers and as thinp for use in Education". AI the National Comput- Middlesex HAS 3FE Degenfeldstrasse 2 I have been asked if we would pay for anicles. I such, will publish material originating from any section ilia Centre stand, 8IIOther expen, when asked if his U.K. D 8000 MUnchen 40 have thought about this and worried where I would get - the money. of the user community. staDd offered any information about standard Pascal These groups should be excellent sources .of local I have decided to accept advenising and use this We are all indebted to each contributor but Tony and its implementation or use in a microcomputer en- and international information. money to pay honorariums to writers of good anicles. Heyes's generosity in offering his Bibliography suite of vironment, replied "No, there is no demand", deftly We have lost an element and have no successor. programs for refinement through the medium of PN is A reminder that back issues will reflect higher re- followed by "Can I help you sir?" to someone standing PUG (Aus) has experienced increased costs and de- printing costs and have a $2S per s~t price after July 1st particularly appreciated. Constructive critiques are behind me. In some instances, the initial answer was cided PUG (USA) could suppon them with little loss Its still a bargain at $1Snow. welcome. "Yes", foUowed by misrepresentative flannel when a of timeliness. I would like to thank them for their past One more thing. Thank you for your renewals and There is a widening of the user base and an overdue demonstration was requested. performance. I am sorry I did not have the opponunity lovely comments. I have been encouraged by your deployment of resources to that end, evidenced by the Met a auy who holds a powerful position in the to work with them. thoughts. complementary nature of anicles from widely differing IarJest education authority in Britain. He believes that PUG (USA) will now serve various needs. sources. Read on and judge for yourselves. Although BASIC is an "appropriate" language for the "mass" We now serve inside USA and outside USA mem- Charlie you will find that 23a is pitched at quite a different level of youag people who "won't bother" to become seri- from that of your usual expectations of PN, I sincerely ously interested in the technoloay. I should admit at this hope that you will welcome it as a stop-gap until 24 be- point, that had my first experience of a perception of comes available from Rick, Andy, and Co. nuochineintelliaence been through the medium of BASIC The following is offered as an illustration of the (or COBOL, , etc.), I miaht easily have scene which prompted the production of a supplement, joined the ranks of those who either "won't bother" or Intrigued by advenising which referred to "mere are auitably unimpressed by obscure combinations of humans", I went along to the personal computer show hunches, guesses, and a duh of porceptual skiUwhich Dear Pascalers, two Pascal implementations which use one name (ap- at the Barbican on September 12th. only occasionally fails. PUG pend) for two non-standard predefined procedures doing here we are reopening PUG Europe: Lor + Manha + different things (append one string to another versus Erwin + Hellmut + open a textfile for appending text). Jurgen + Manfred + To increase the market place function of Pascal I.T. and M.I.S.S. Urf (Korbinian). News we should like to ask everybody who provides a Pascal source for publication to state whether he/she We are Pascal fans and users from the university ~_. is willing and/or able to distribute this source in ma- a.produeed with PIIIIIIp D8niIIpoa's pennilllloa and industry who are organizing in our spare time the chine readable form (or even as a well readable listing) distribution of Pascal News for the European region. and if so at what cost. From our viewpoint. being mainly Pascal users, we Lastly we would like to ask all those wishing to would like to encourage you to help in keeping Pascal contact us to use our official address: One of the aims of Information Technoloay Year -loria!, textual and numerical information by a micro- News a living forum, a market place for all Pascal users. and the Microelectronics Education Programme is to electronics-based combination of computing and So here again is a call for papers and programs. There ARGE Pascal Hellmut Weber involve schoolchildren in the use of microcomputen telecommunications" appean to encompass most of are cenainly many tools, especially for text processing, and related electronic devices. There are the M.E.P., the IICtivities of the average person, except eatina and which are of interest for the Pascal community, maybe Deaenfeldstrasse 2 D 8000 MUnchen 40 the Micros in Schools Scheme, exhibitions and events one or two other processes, although the use of a com- for simple use, maybe in order to compare ideas about - throuahout the year and beyond. It is, perhaps, fonun- puter is not often considered essential to the more problems which many of us may already have encoun- and not to send registered letters. (We had some prob- ate that Mr. Callaahan happened to be watching tele- ofthese. tered. And think about all the programs for solving the lems, as there is no Mr. Pascal to claim them.) If you vision on the evening the programme "Now the Chips So far as its Involvement of schoolchildren is con- daily commercial problems. want to send us money for subscription please use our are Down" was broadcast and was spurred into action cerned, the publicity is decidedly shrill, the Minister's Another subject which we think imponant is doc- postgiro account. Munchen SIS89--801 or send an Eu- then, or we would probably find the propaganda even aim being to have a compoter in every secondary school umentation. If you have to (or like to) use non-standard rocheque and please take note that any other form of more frenetic than that now being put out by the en- by the end of the year and even to think about providing features mentioning those increases ponability. An ex- payment means additional paperwork for us. ergetic Mr. Baker, the prophet of IT. them for primary schools. treme e>tample of the necessity of documentation are Stay happy with Pascal! Information Technology is a curiously dif'fi.osename There can be no argument that youna people must for a Year. The official definition, "the acquisition, pro- be aware of computers and how to use them, but it does cessing, storage. dissemination and use of vocal. pic- seem possible that the present blaze of publicity tends 2 Complier. Note. PUG(UK) 3 j I j

Errore to obscure the point that computers are a means, not one of its terminals or even a micro owned by a pupil cludes incorrect programs which must be rejected: 1. ,.09'" _~ _tUft outP'R...... _... ,10end. There is also the question of how the micros are or teacher) can be used naturally, as is a dictionary or ones to examine the error-handling capability of a :.. nil cannot... U88d.. 8fti"'tlfler (it 18. to be used in schools. pocket calculator or a video recorder, it wiu dominate compiler, and the "quality" of an implementation. WOd). According to the fifth edition of the Concise Ox- the learning process. Utmost priority should be given The quality tests indicate if there is any small limit J. . 18 written.. u (not equa18). ford Dictionary (now, admittedly, modified), a com- to teachers from all disciplines, from home economics to the complexity of programs that a system can han- t, nil CAnnot follow ... .1.... dle and also assesses the accuracy of real arithmetic. I. I d8ci811poln~ _ follow I dl.l~. ruter is "a calculator - an electronic calculating ma- to athletics, to use the computer as an aid, rather than chine" - an unfortunate description, taken too literally as a distraction, so that pupils who are not to specialize All the major components to make Pascal a good oy at least some of those responsible for introducing in science or engineering can see that it is of advantage Standard are now available, that is, a Standard defini- youngsters to computing, with the result that the school to them to he at ease with computers, but no more than tion and tests to verify conformance of a compiler to The corrected procr&8 Is: micro is often given to the senior math teacher to guard that. the Standard. ------The Inner London Education Authority is aware with his life, presumably on the grounds that computers A Standard and tests to check conformance to the prolr.. t.e.t (out.put.) , are electronically mathematical and possess no rele- of these problems and is educating teachers in the use Standard are not alone quite sufficient. The test pro- conat. vance to any other subject. of computers so that, even though there may be only cedures must be used and results made known to those n111 . i In other schools, the computer is treated as a kind one micro or terminal in the classroom, the pupils wiu using Pascal compilers. This can be achieved by inde- boa1. '0' totem, and the pupils are taught "Computer Stud- learn the place of a computer by, to use ILEA's word, pendent testing of compilers which is currently being It' nUl (> lh.n "f wrlteln( '0''WRONG', n111, 0.12]) Ies", As a subject, computing (meaning programming) "osmosis". However, there is evidence aplenty that investigated by BSI (Hemel Hempstead). BSI have a 01.. IS a singularly empty one, unless the pupil learning it education authorities in other areas are either hypno- wealth of experience with testing other goods but this wrlteln( 'lICHT' ) mtends to become a programmer. A computer is an aid tized or revolted by the new equipment and, accord- is their first venture into computer software. For this ond. ingly, either enshrine it or pass it to the school computer to the process in which it is used - in this instance, reason, both NPL and NCC are assisting BSI in this -----..------learning - and an element of transparency to the user fanatic to impress people with. important development. In short, a computer is a useful tool, but that is all rather than an obscuring of the subject by undue atten- The last step in this process is to encourage users Although this test is only an illustration, it does lion to the computer must be the aim. it is: it can help or it can dangerously hinder learning, to request a Standard compiler from the suppliers and show the wide ranging capabilities of current compi- Clearly, an overnight transformation, after which and only the education of teachers in its natural use as for suppliers to meet that demand. As a contribution to lers. The results of compilers tested so far can be sum- every teacher would be using a micro as to the manner an aid can decide which. PUG this last step, NPL held a conference on this topic with marized thus: horn, is hardly feasible. But, until the school micro (or its collaborators. Professor Arthur Sale from the Uni- versity of Tasmania addressed the conference making 11'1'01'. AccuraoJ' ot' ".ooy.r, t're. it an international event. The other key speakers were d..t.ecled .rror ..SNles lasl error John Charter from BSI who described how a validation , , Pascal - An Effective Language Standard service run by BSI would work. Professor Jim Welsh A 3 from UMIST who described how the Standard can be B 2.5 2 3 C 2 2 Brian A. Wlchmann,6/5/82 implemented and Lyndon Morgan from NCC who de- ~D 1 2 , scribed a guide written to support the test procedures. E 2.5 3 2 Also Barry Byrne, from ICL explained how the pro- F 3.5 ,3 3 vision of a standard compiler for Pascal is advantageous a '.5 , ,3 Over the last few years, the programming language I. The Pascal standard is more comprehensive than in both marketing and for internal use. Mr. Ken Thomp- H 5 3.5 1 2 Pascal has grown in popularity very greatly. It is widely that of COBOL or FORTRAN. For instance, the son from the European Commission explained the use- I ",ed for teaching in Universities, is available on most COBOL and FORTRAN standards do not require fulness of international standards within the Commu- micro-processors and main-frames as well. In fact, Pas- that an invalid program is rejected by a compiler. nity and some of the problems in their effective cal is one of the few languages that form a bridge be- The Standard for these languages is just a definition All the marks are out of 5. The half marked for de- exploitation. tecting an error indicates that the error message was tween microprocessor systems and the main-frame , of a language rather than a set of requirements for world, confusing enough for it to be unclear if tbe error was a compiler. This is clearly not very satisfactory since ------properly detected. Naturally, tbe last two columns are Until recently, there has been one drawback to we all write incorrect programs on occasions. 'MU8 prO(Jr.. cont.1ne h 81'1'01'8, often und.tectH by COIIpU.ra. Can you .pot the87 subjective. PUG l'ascal as a general purpose software tool. The defini- 2. The Pascal Standard is simple and devoid of a mul- Iion of the language was not very precise and in con- titude of options. If the language has lots of options, ------,equence, the portability of Pascal programs was prob- then program portability is reduced because a pro- prOfjr&a t..t.; lematic. The British Standards Institution (BSI set up eonet gram may not be valid without a specific option. n],l Igroup under Dr. Tony Addyman to produce a standard COBOL has a large number of options and FOR- beg],n- '0', Jefinition of the languaae. This was later superseded by TRAN 77 has two major levels (essentially distinct ],f nil then 10ISO group also under Tony Addyman. Last October, languages) whereas Standard Pascal has just one vrU.ln("0' .WIIIOItG.; +nil. .12:1) ISO agreed to the standardization of Pascal, and after option, affecting only one part ofthe language. This .1.. ) :ditorial work on the document, BSI published the vrit.ln( .IUGII'." option is to allow procedures to handle arrays whose ond. ~tandard in February of this year (BS 6192). size varies from call to call. This option, level 1 Pas- What does this mean for users of Pascal? The port- cal, would allow Pascal programs to call FORTRAN ------,lbility of Pascal programs should be much improved routines in many systems. Try 1t Oftyour .y.t. and ... hoW8&nJ'el'l'ore are 4.t.c:t.ed. "rollided suppliers implement the Standard and users 3. The Pascal test suite is more searching than that of write their programs to conform to the Standard. One COBOL and FORTRAN. This is essentially a con------night think that the position with Pascal is no different sequence of the definition of the language. The Na- 'rom that of COBOL or FORTRAN and yet portability tional Physical Laboratory has been collaborating 'roblems arise with tbese languages. There are several with the University of Tasmania on the construction easons for believing that Pascal is different: of this suite for over two years. About 400 copies of the test suite have been sold worldwide. A new ver- sion of this suite has recently been issued to corre- \rticle formed the basis of piece in Computer Weekly spond to the new ISO Standard. Unlike the COBOL ,y Phillip Hunter. 11th Feb. 1982 page 14 and FORTRAN test suites, the one for Pascal in- PUG(UK) PUG(UK) 5 ~ ~ I I i I i I I ..J

designed to test the conformant array features in media conversion affects character code PASCAL PROCESSOR VALIDATION PROCEDURE isolation. representations. 2.7 QuaUty 3.4 integrity ChecldDc By David Blyth Many aspects of an implementation are beyond the Following media and lexical conversion it is advis- Standardization Office, scope of the standard, but it is still useful to investigate able to check that no corruption has occurred. For this National Computing Centre them. Quality tests explore these areas and investigate: purpose a program called the Checktext program is supplied. It produces a 96-bit binary check pattern us- (a) The limits on the size and complexity of programs ina an algorithm oriainally developed for use in data 1 Introduction (iii) the implementation incorporates some common imposed by the implementation transmission (CCITI Rec. VA 1) (ii) the amount of store needed to perform certain Few Pascal users can be unaware of the recent pub- error. The Checktext program operates on a standard- lication of the British Standard for the language which No deviance test program is standard Pascal. Each well-defined tasks ized internal representation ofthe program and will not will shortly be adopted internationally. Many Users such program contains exactly one such deviation. (iii) the accuracy of real arithmetic be aft'ected by legal lexical substitutions. Certain parts (iv) the meaningfulness of diagnostics for common have heard of the suite of validation programs, devel- When a deviance test is run the results are inspected of the proaram may need cus!omization for use on par- oped by the University of Tasmania and the National for evidence that the implementation does in fact detect types of error (v) ticular systems and the source code is marked to show Physical Laboratory, which can be used to check on the the deviation. If it does not then the implementation the speed of the code produced. where such chanaes should be made. standard-conformance of an implementation. This suite does not conform with the standard. Quality tests often throw up some surprising results! The results of the Checktext program should be is readily available and any user who has a copy can compared with standard results contained in the User use it to test his own compiler or interpreter. For those 2,3 Implementatlon-Dellned Featnl'eS 2.8 Extensions Guide to the suite (supplied with the distributrion tape) brave users who undertake such testing this article pre- The standard defines an implementation-defined Many implementations offer extensions to the and if there is any discrepancy then transcription has introduced errors. sents a brief guide to the steps involved and draws upon feature as one which may differ between implementa- standard. The extension tests see whether common ex- experience gained at NCC in a joint NPUNCC/BSI tions but which is defined for any particular processor. tensions (eg those approved by PUG) are implemented. project to develop and document the validation A conforming implementation must be accompanied by Together the test programs provide a very thor- 3.5 Checldna VaUclationSuite Assnmptlons procedures. a document that provides a definition of all its imple- ough test of an implementation. A validation suite must necessarily make certain mentation-defined features. The test programs for im- assumptions about the nature of the implementations 2 The Pascal Standard ud Validation Suite plementation-defined features are intended to show 3 Using the Validation Suite which it will be used to test. The Pascal validation suite The Pascal standard defines the language itself and how these features are handled in any particular imple- assumes that the manner in which Pascal programs are to be handled mentation. If they aren't handled in the manner claimed 3.1 Distribution Format . textfiles by an implementation. The validation suite contains then the implementation does not conform. The validation suite is distributed on 9 track 11III8- . character-strings over 400 test programs whose purpose is to check netic tape with characteristics as follows: . the real-type whether or not an implementation accepts the language 2.4 Implementation-Dependent Features . localfiles as defined in the standard and whether or not programs Recording density 800 or 1600 bpi An implementation-dependent feature may differ Recording mode ; NRZI or PE are all implemented, also that which are accepted behave as the standard says they between implementations and is not necessarily de- should. The standard and the validation suite have been Character code : ISO 646 or EBCDIC . lines up to 72 characters long can be accepted fined for any particular implementation. Here the im- 1200 bytes/block, 80 characters/record. developed in parallel with tbe result that the suite will plementor can either state in his documentation that use . lines up to 72 characters long may be output provide an exceptionally strenuous test of any imple- of such features is not reported or else have the imple- A purchaser of the tape can specify which density, . the value of maxint is > 32,000 mentation. An implementation which. performs well mentation issue some diagnostic for which such a use recording mode and character code he wants. . the relative precisionfor reals is < 0.001 under test can be used with confidence in its conform- is encountered. The test programs in this area are de- There are 49 files on the tape. Three of these con- . the characters needed to encode the test pro- ance and reliability. signed to determine the behaviour of the implementa- tain documentation. The rest contain the validation grams are all accepted as distinct by the The suite contains eight types of test program tion. The implementation conforms only if it behaves programs. implementation which investigate respectively, conformance, devi- as claimed or reports implementation-dependent usages. . the "largest"' procedure in the test suite is ac- ance, implementation-defined features, implementa- 3.2 Media Conversion cepted by the implementation (except for cenain qual- tion-dependent features, error handling conformance 2,5 Error.HandBng ity test procedures). arrays, quality and extensions. These classes of tests Users whose machines have tape drives should experience no significant problems in reading the dis- A further implicit assumption is that the real arith- are quite distinct and are used in characteristic ways. An error is defined, in section 3.1 of the standard, to be a violation by a program of the requirements of tribution tape. Their only concern will be with lexical metic system is susceptible to investigation by cenain types of method. 2,1 Conformance Tests the standard that the implementation is not obliged to conversion if necessary. detect. An implementation only fails to conform in re- Users with ftoppy disc based systems need to do The validation suite contains a prOJl'lUDcalled the Conformance test programs attempt to check that spect of error-handling if it fails to process an error in a media transcription to get the suite in a form in which "Check Assumptions" program which enables the user an implementation provides those features required by the manner claimed in the documentation. The error- they can use it. This conversion can be tricky, and is to determine whether or not the implementation vio- the standard and that it does so in the manner which the handling tests each present the implementation with almost always done on an ad hoc basis for the particular lated any of the assumptions listed above. standard specifies. These programs are all correct stan- one error with the aim of determining exactly what the system concerned. dard Pascal. If the implementation conforms to the implementation does with it. 3.3 Lexical Conversion standard these programs all compile and execute. If a There are two character sets to consider when us- 4 I'IuaIBIanda ' theT_ conformance test program fails then it is an indication 2.6 Conformant Arrays ing the suite - the one used to encode the test pro- that the implementation does not conform to the grams, and the one used to represent "char-type" val- 4.1 PlannIng Is Important standard. An implementation may conform with the standard ues on the target computer. Testing an implementation is not just a matter of at level-O or at level-I. In plain terms it can either have Roughly speaking any consistent set oflexicalsub- running all the test Proarams. The test suite is larae and 2.2 Deviance Tests conformant arrays or it can 't. If conformant arrays are stitutions can be made, but some may render specific on some machines it is not possible to run all the tests provided then all ofthe features specified for them must Deviance te st programs check whether lexical test programs, and some programs which test without breaking the suite into batches. Furthermore be provided according to the standard. the char type, irrelevant in validation. close attention must he paid to ensure that the behav- (i) the implementation provides an extension of Pascal : The conformant array tests are a collection of con- (ii) the implementation fails to check or limit in an ap- Care is needed to ensure that lexical conversion is iour of the implementation is accurately recorded formance, deviance, implementation-defined, imple- consistent throughout. This is particularly important if throuahout the test procedure. Finally provision must propriate manner some feature of Pascal; mentation-dependent, error-handling and quality tests 6 PUG(UK) PUG(UK) 7 I

J

be made to make it easy to re-run any particular test I Processor Identification some time before any further thought is applied to the after preliminary interpretation of test results. 2 Test Conditions subject I expect, if ever, so perhaps now is the time to Choice of the method of working can have a 3 Conformance Test Results see if anyone is interested. marked effect on the overall time taken to run the tests. 4 Deviance Test Results John R Lolldon ICIII)cul.ta tht88Cora 808ehow) There are two areas to consider. First some method 5 Error-Handling Test Results 18 Darley Road rhl,'rut t t-frut t(tM..eon); must be chosen to extract test programs from the files 6 Implementation Defined Test Results Manchester MI6 ODQ which contain them. Second the organization of the 7 Implementation-Dependent Test Results ate jobs which run the test programs must be decided. The 8 Level I Test Results User Guide illustrates three approaches for each of 9 Quality Test Results This facility wiDprovide a logical completion to the II) St~uctu~ed eonatanta. these methods which will cover most cases on a wide 10 Extension Test Results built-in functions 'ord', 'chr' and provide a much more range of machines. Guidance on the content and presentation ofthese readable alternative to the use of variant records. Al- Some programs may prove to be rogues on certain sections is included and a sample validation report is thoulh there is no reason why the method should not implementations. There is no way of knowing in ad- included as an Appendix. nnQ.AM pte; be available for records if the matching of record vance whicb programs will behave in this way for any OOI85TolMhuMr4'd-1bn; ete: lengths were entirely the programmers responsibility, given implementation. The user should take care so that TTPI! there is an objection in that the internal representation such programs do not cause tbe loss of accumulated test 6 Practical Use 8eat81'\,,.-(cof'ee.j...ltr..d. tea .hl.cult ._ute Ide); of variables will be machine-dependent. I envisaae this results. The present article offers only a brief sketch of the ..r,pe-JPmRD type-change function purely for scalar variables be- In any event some programs will need re-running validation procedure. At first sight it may look some- .:I..t ; tween scalars and perhaps for pointers between point- b,e :ch8..; because the results on the first run may have been in- what daunting. In practice the key is attention to detail. en. It is of course really a mechanism to cause the com- conclusive. The circumstances in which a re-run is The User Guide gives fairly detailed advice on tran- .:uny'n..'1 of .nteur; piler not to check types. needed are given in the Guide. f:lluhrt'''''j scription and test job organization, and will be found "188\ of M:81artJ'pe; (This facility is similar to one available in AAEC Pascal helpful by most people undertaking tests of implemen- h:lI..uy(I,.2nJ of rh8l' 5 Reportlq Results ,,"D: 8000 for the IBM 3600'370 series, and attributed to tations. Once transcription and organization have been , .tr KludlC8JDUS) It is desirable to adhere to a standard form of pres- sorted out the tests usually run smoothly. Carrying out TAWL"..1 t..t.,pe- ,_. Oft."""'red. ".* .rhr(2n) .en.25.S".''', If any readen have any comments for or qainst, entation when reporting the results of a validation. This a full test is a rewarding exercise which offers many leoff..,t.. ...r I. .ehol..t.ro!'; offers two main advanla8es. lessons to language implementors. It is hoped that users perhaps PUG can help to air views? First, when a formal validation is being done, a and implementors alike will use the test suite and help standardized report: to promote rapid practical standardization of Pascal. .r.l:JN PUG ...,.r;...I; dl8playh-e'lll.h( 4J: HELP!

ete Dear Nick; Sy8lem. Used Note the use of the 'chr' function to set up unprint- (i) Apple (II) UCSD Pascal. able characters, the absence of any delimiter other than (ii) To be delivered December 1982: Burroups B21-5 Dear Nick, hardware is OEM kit from Sirton Computers in Purley, by the name of Midas and is in essence an Integrand those already used in Pascal and the access of a con" (384 K Byte). Pascal ISO draft 5. After our phone conversation the other week, I stant array element. There is no reason why 'ord' was rather more relieved to feel that here in the UK 10-slot SIOOcase with PSU, Ithaca IEEE SIOOcards should not also be included so that portability is en- SpeclallDtereata there are other Pascalers at work and that PUGUK is (MPU-80, FDC-2, 64KDR and VIO boards) giving 64k hanced. The syntax follows closely on that of Pascal as viable again. The gap has been too long, and I wish you and 4Mhz Z80A with CP/M, plus 2.YE-DATA 174D Business systems. Particularly rapid access to un- [ it is and involves no ambiauity in type declaration im- well in trying to get it going again. shall try and do [Mb drives. The printer is a Qume (a luxury really), and plicit where structured constants are declared in the sorted data items. Data base management systems. what I can and particularly with public domain soft- a Volker-Craig VC404 completes the outfit. constant section as in some implementations. Pointers ware, but at the moment, I don't have a great deal of I will try and compose a critique of Pro-Pascal as declared in the correspnding type declaration may be 1aIorm8tIo...... time to spare, nor any telecomms equipment to plug soon as possible, but version 1.4 is due out soon with set to whatever internal value represents nil, however We would be interested in knowing of a Pascal into my computer. 8 byte longreals among other goodies. I have written to they are named and uncompleted arrays of char ini- compiler to interim ISO standard or UCSD for Bur- I enclose a cheque for 9 pounds for subscription. Charles Foster of PascaJ/Z User Group asking if he or tialized to spaces. roughs BI955 with o.SM Byte working store. Manufac- On the question of back numbers, I have copies of 12- his contributors would permit the distribution of any of Such a feature will provide geniune structured turer does not support Pascal for. 16, and any subsequent or previous issues would be their Pascal sources to PUGUK members appropri- read-only constants without the uaty initiation pres- Mr. P A E Herring very welcome. I would have thought that for [7-21 ately modified to BS 6192, or ifindeed there is any other. ently necessary in Pascal. In fact, in practice it is easier which you already have, it would be worth while put- Public Pascal around in the States. I think we ought to MAPAC to put records for initialization in a parameter file and 17 Market Square ting a note in the next issue to see how many people be prepared to reciprocate on this, don't you? read them in, which does not seem an elegant solution. want them, and thell have your printer print adequate In converting from programming mainly on main- Leilhton Buzzard For micros with restricted memory, initializing a record Bedfordshire copies in total. Much better than spending your time trames in Fortran and having a nodding acquaintance from constants needs up to two copies of every element collatingeveryones with Cobol, Basic and other languages, there are times LU77EU ' needs and doing individual pho- - one dynamic and one in the constant area, which is tocopies of bits and pieces. Perhaps if other people when even Standard Pascal has its limitations. There- rather wasteful ofspace. were able to lend YOllsome oCthe older copies, the same fore, I've thougIJt of two ways of improving the Ian- could be done. I'd certainly lend you 12-[6 if you like. gUllle. As PUG may have some inftuence with the pow- h) Dear Nick, After all, its the information that matters, not whether ers that be, I've taken the liberty of including the Tvrf'-eh.l'I~r 'unction. the issue is an original or not unless we have an collec- suggestions - by all means put them in a news-letter CET TELESOFrWARE PROJECT tors among us. Anyway, mark me down for any back if you like. I don't believe in trying to persuade com- Thank you for your letter of 6th December. issues you can get your hands on, please. piler-writers to augment their compilers as their job is I think you must have lot the wrong impression I am now using Pro-Pascal from Prospero Software to implement the standard. If the languqe is to grow, cn',~ etc from my letter of 3rd December. We certainly do not as my mllior programming tool, as well of course as and if any such need is identified, then it's the standard Typr fOtlrth); want to see a different telesoftware format for PAS- Wordstar to compose programs and write letters, The that must mature. Now BS 6192 is published, it will be scorr-" t rst. s.cond. tht "d. frul t-' lII,u')rt.oe.r.,or."" r.,..); CAL. As I understand it, the only problem with the cur- e PUG(UK) PUG(UK) 9 \

I I J

rent format is the TAB character which lies outside the On receipt ofthe form and remittance we wiDsend PRESTEL character set. You may be interested in our a magnetic tape containing the suite. APPLICATION FOR LICENSE 1'0 USE VALIDATION SUITE FOR PASCAL recent extensions to the format (copy enclosed) which The cost of the package is £ 100 sterling (+ 15% overcome this. VAT for UK users) and cheques should be made pay- Name and address of requester (com- Name and address to which information As far as including PASCAL programs in our li- able to "The National Physical Laboratory" quoting pany name if requester Is a company) should be sent (write 'as above' If the brary is concerned, all I am saying is that we need to our reference number NPS 2/01. same) learn how to walk before we can run. We are keen to include programs in languages other than BASIC, in- Z. J. Ciechanowicz cluding PASCAL, but need to be sure there are people Division of Information Technology & Computing who can receive them on our system and will find them Department of Industry useful, before putting them up. National Physical Laboratory If you know of PASCAL programs which will run Teddington, Middlesex TWll OLW on the micros most used in educations, ie 380Z, Apple, Pet, Acorn and TRS 80, I would be interested in re- PS When requesting the suite please supply the tape ceiving details. format you require: Signature of requester Chris Knowles i.e. 1600/800 b.p.i. Telesoftware Project Manager ISO/EBCVDIC code Date Council for Educational Technology We generally write our tapes with fixed length 3 Devonshire Street, London WIN 2BA blocks, 15 records per block, 80 characters per record. In making this application, which should be signed by a responsible person In the case of a company, the requester agrees that: (a) The copyright subsisting In the validation suite Is recognized as being the property of the British Standards Institution and A. H.J. Sale; Dear Pascal User, Dear Nick, (b) The requester will not distribute machine-readable cople8 of the validation suite, modified or unmodified, to any Please find enclosed details regarding Version 3. J 1. Can you recommend a PASCAL for XENIX? (LSI third party without permission, nor make copies available to third partlee. of the Pascal Validation Suite which was released on II UNIX) In return, the copyright holders grant full parmission to use the programs and documentation contained in the vali- the first of October 1982. Should you wish to receive 2. Do you know who distributes the Dutch 'Fres Uni- dation suite for the purpose of compiler validation, acceptance tests, benchmarking, preparation of comparative a copy of the suite, please fillin the enclosed application versity' version of PASCAL? (in the UK) reports, and similar purposes, and the provision of listings of the reslAts of compilation and execution of the programs form for a license and send it together with your re- to third parties in the course of the above ctivlties. In such documents, reference shall be made to the original copyright mittance to: Brian Kirk Robinson Systems notice and the source. Dr. Z. J. Ciechanowicz Engineering Limited Division of Information Technology & Computing Red Lion House, St. Mary's Street, OFFICE National Physical Laboratory Painswick, GL6 6QR Teddington USE Signed Telephone: (0452) 813699 ONLY Middlesex TW II OLW England VAT Registration: 302 3124 28 On behalf of A.H.J. Sale and the British Standards Instrtution

NIltIoIl8I PhY8lcel1.8borlltory T8ddlngton MlcldlMex TW11 OLW T8I8phone 01-1177-3222 TeI.x 282344 Pascal Compiler Validation Suite

NPL Issued version 3.1 of the above suite of test programs on 1 October 1982. These programa permit a user to check the compliance of a Pascal compiler and run-time system with the ISO standard for Pescel (ISO 7185, also BS 6192). The new suite is an eX1enslve revision of version 3.0 and the work has been undertaken In conjunction with Professor A.H.J. Sale of the University of Tasmania. SUbsequent revisions to the test suite are likely to be of a minor nature.

The British Standards Instrtution will shortty be launching a pilot validation service base upon the test suite together with other material.

The test suite consists of about 17,300 lines of Pescel programs plus addition comments on each of the 553 test programs. The programs themselves are divided Into a number of classes as follows:

182 programs checking that the felltures of the St81dard are available; 157 programs checking thet illegal constructs are rejected by a complier; 82 programs checking the error-detection cepabillty of a Pascal system; 60 programs checking the quality of an implementation: 40 programs checking for Level 1 Pescel ('conformant arrays')' 16 programs checking the variations permitted by the Standard; 13 programs checking for features defined for each Implementation; 3 programs checking for eX1ensions. B.A. Wichmann Z.J. Clechanowlcz, eX1ension 3977 For BSI, J. Hatton-Smooker, telephone 0442-3111 10 PUG(UK) PUG(UK) 11 ,... ~

I

I J.

Obviously no procedure can caD the main program. c.t..."..,., c.I tI -I. \1 :Too!.Y,t.- !Too!.Y,t.- :Too!.Y~ :Too!.Y~ :Too!.Y~ :Too!.Y~ :Too!.~ Similarly, the other table contains the intrinsic proce- -.. "..oc"'" dures. Obviously they don't make any calls. -()I.f. I The identifiers in the input file are truncated if they I ()oec:.C),....1 , TI"-oclla''''' A Better Referencer are too long to fit into the identifier arrays. The length h." ofthese arrays is specified by ldentLen. Changing this II.., 10__ t ' By Yamer ..10...'.110 I "".'.., ~ Clawl J. constant requires corresponding modification to the , Money Management Systems Inc. ,..." lOp.. " 1-.,,1'.'..' constants defined on lines 5-8, 83-87, and 210-211. 1...\.:.... ,. I """ U...,Wldtb can.he set to any appropriate value. i"" IuI"'"'' ou...... ,. Ii..'1 .C...o.._.Ct..." '''''IfP. Setting it to 80 gives two columns of reference data, ..,... I , ~'KII. . LP'Yec:"'''''ec ) The program which follows was developed from Lines 19,21-24,49-51,68-71,522-526, and 551-564 which is somewhat hard to read (try setting your ter- H., I ..,."(..'oc,, . .".,,(f-.oc ] of0' ""MIt."...,-.".ochU' the Currie/Sale procedure cross-referencer published make use of implementation-dependent intrinsics to minal width to 2 some time). Setting it to 56 forces the ..,UI." , .,oe , in Pascal News # /7. Of course, any programmer who print processing time and heap usage information. tables to have one reference per line, which is rather .rack.' ."ad . ...r..,C.l.iK"It) .f *,,,'.1 looks at someone else's program thinks he could do a These lines can of course he replaced with the appro- vertical but still readable. ()to, [.KCC..' ,.U I.;_,T ,), heller job, but I think that by almost any standard I suc- priate code to do the job at the target installation or sim- MasProc: determines the size of the array of point- " ..".,...1' ply left out ()cr.." "'I_f. (",..,_f.'I..,.-.d J .."..".1' ceeded, though it took me much longer than Sale's - like most statistics, they're not really ers to procedure descriptors, and thus the maximum " '"",1 '. three days. I have an excuse, however: prior to this necessary. aDowable complexity of the input program and the reo, 04' "P.""'. ' one, I had never wrillen a Pascal program; my experi- Lines 113-116ignore compiler directives. HP Pas- ferencer's static size. If it is set to 64 and the HP-spe- ...oc( ..edl ". ,._ ._,... ., ( ...,..." i..ideo,i'i..c_"., .._,.",_.,..."',. ..UfOC'".t.._".oc:..., t." ) ence with the language comes solely from the articles, ca.1I1000has its directives bounded by dollar signs. The cific intrinsics are removed, there is room for 34 pr0- ( ~., c_lI... .i.OC"I ) standards proposals, and validation suite which have format is like strings or comments, and thus is in the cedures, more than most programs published in PN (..., , It 1__' .f., ldeft'.fwdl t ...... ( i'. 1 '_.' ,-..,....48'n". 'c heen published in PN. spirit of Pascal, but nonetheless the construct must he need - more than most programs executable on a pro- 1"..''--,1 ' "'.0"..\ '''..4 The program is shorter, simpler, and almost cer- handled separately. cessor that can't handle large sets probably need. c__" . '...oc '. .1 tainly faster: It has half as many source lines as the F.-cl...''''.1 . "...c"l811 ., Line 1 is a compiler directive (another is on line StackDeptb specifies how many BEGIN/END and ...ill ''' . 1. ., Currie/Sale version, but the format is different, and the 71). The default output line width is 128, which causes CASE/END structured statements imhedded inside the €actC_ldeII', . 'OIl.'c... ., numher of statements in only 25% smaDer. The HP 132-character lines to wrap around even though there body of a procedure the referencer can handle. Few vwJ . 1 " 100012015compiler generated 4604 words of code and are still empty columns on the page. programmers can create code more complicated than c.. I C*I..' ' static data (the 1000 is not stack-oriented). The proce- Lines 307-308 and 345-346 add the HPIOOOintrin- 16 nested structures (the referencer never goes deeper ( .,..8'.1'.' ) dure descriptor is 25% smaller: the reference descriptor sics to the pre-defined procedure table. They can he than four), but if desired the stack can he extended eas- (..,.1. AU88"C) c c,... is 97% smaDer. The syntax analyzer is more tolerant: replaced with the appropriate constants for the target ily, since each element in the stack -takes only one missing semicolons do not faze it. The program needs installation or removed to make the program conform integer. ( ) 29.80 seconds and 1376 words of heap to process itself, Otraet is the distance from upper case to lower. The ...i., , h8dldeft',. 81...1 to the pure standard. The format is as follows: Each I " ,. []I 356.80 seconds and 5780 words to process the 103-pro- procedure name is followed by a space. A hyphen ter- program may he set for EBCDIC by changing this con- ,I , ,. ."P " cedure, 4000-line P4 compiler. minates each constant. The last string ends with a pro- stant to the appropriate value. Clio.. I ' ) The improvement stems from the use of a different cedure name, space, and hyphen, and is then padded One final note: no numhers larger than 32767 are .f c ,C'"'..',.._ CPOP i. or c_t ( C_t. data structure: The Currie/Sale referencer is optimized with trailing spaces to ConstLen. As many strings as needed by the program. On some processors (such as IIUI,,'''C.'.', """'h_ I- +1.'... be.'" for programs of virtually infinite size, using trees and necessary can he added at 307 as long as they have cor- the HP 1000), significant space can he saved by assign- " cl'll.'(" stack and rings of procedure descriptors and chains of responding caDs at 345. ing MasInt to 32767 in the referencer's global constant ....-. ,.._ ..,.. ,. MII reference descriptors, which allow the procedure da- The directive "external" is recognized by the re- section. If e...i.' , , .'11 , () tI e " ( C_,I.. .I..cli_,,' ) tabase to grow very large with the program's taking all ferencer. Lines 8, 149, 237-238, aDd 477 could he mod- () It .,C , "..., _'i' l0..."', , OR.-t.i'Ci"..,," '. , the memory ever manufactured and all the time till 1. OM CROOOJ__ USIItO 00014 .-0000 () ified to aDow the it to recognize the target installation's U'Itf.F '-00003 ( ) I..."" doomsday to process it. This referencer, on the other directives. The implementation dependency was in- UfO'!clt..(,I"""'I ,It_ r ' C_l , If' M88U_"'...() .. hand, is optimized for smaD programs, and uses an ar- cluded primarily to show how this is to he done. The ...il.., (u...,,'''C'')'." '.', I~I ..... ) ray of procedure descriptor pointers whose size is fixed COft." ,""", ,".... 11-..''.'" ( na.ture of the dependency is such that it can he left in 1I II.ldeflt."''' It.\1'(c.,.""U_"'... )'.(dl(-"') by a constant, a quick-and-dirty replacement sort, and "..Ide>fIot. .. '1., .,,.8'.1'.', ' ( "'i. ) even if the target doesn't recognize it. f'wdI~\ .. '."0."_.'or...rd ., UIeo he:._1 " sets of reference descriptor flags (two sets, since the lE.tIHftt . ( ), ..... '..t.""81( 'I,,,,,,.I.sic " 1"t., lc8 . tru. ",..ec:"""_,,!tOM JJ ..,..I'.I'.f program prints the reference data from both view- true ( P,.ift\ '1"'.tnle ..1III".'8.C.. "'pee ( ) C.II.,.TabI8C.II"f"". -. true ( ,.,.Ift\ table 0' ,..,...8nC_ TO "'I'oc...,.._)f -". 01 C,...", ,It.. 1.. c t. points, caDer and caDee). As the program to he pro- Options 0' H ) Ci" ' ,.. tletl .. 16 ( St tiC8'U:8 11..t For '''''\''.8,.8. ,..,...... , 132 ( D.t of' '."t.'I (1 ""_.2'11_' ), " cessed increases ill size, memory use increases quad. Lift"""'" ( CLi",.Width-lcMlttl._-22_ ) This referencer contains a much more efficient ,-.u..' "uM." .roc.., II'" TliIls ,1. "1..11."", ratically, eventually surpassing the Currie/Sale 7. ( flU'" 0' ..., AddIntrIDsk:s procedure than does the Currie/Sale ver- ( b. ..t to . COft ", ..t .,r.. )I .t_ ., referencer, which started out higher but rises only lin- Ihd."U. 16( "'.1_ bloc~ tl... ..lth.I'I. .,.ee JJ .M., " ,.._ boOllICI~'i'i.. sion (hecause intrinsics inclusion is not the default for 32 ( ...tance t.._ to I_,,-c... -"J '.11 tll""'" (:.0.11_O'h.t Uf'''.''- co,.,. )1 )' , early. Execution time, I imagine, ought to expand sim- that referencer, while it is for this one). The feature can 11 RTE: ...tUf',.-t,_-o'-d... ., . J ._ till". . I '(J] I. ilarly. It might he interesting to determine where the he disabled by setting Intrlnslcs false. The procedure C JOft.wG,d -32' 127.7. , ."""'0' ,"""'.., "e" ()Z,.f'''8C:( . ".c..d .,,,.,..IIIo""I'.I"C.d...f' 0 ~I ..... U ' cross-oYer point is. itself is quite smaD and can he left in even ifinactivated. )Ti-'l:oc . .oc..d .1111..c...oc...'"",...,, "'~d .-4, MO' I. .I""ed'.") . .'.I , J I. J __to(et"""''''I . It I "(JJC._ 1M) .1"". The program IlseS the CASE. . . OTHERWISE The program is designed to print the reference in- <>...... 'or""'" i. c.._' \0 '_r It.ock._" . 0.."..1"",...I".c "1I1 ldofIU,,) ,. c...C.,.dC,...UJ]leOf'h.U' construct which many processors don't recognize yet. formation from the standpoint both of caller and caDee. E,.,..,T..",.. . (MaI" It.,.,ill 1_.Too/totl, oc..Mi...lec", I "c ,. I" -., Q The solution for thi s problem is to upgrade the proces- Naturally, twice as much information takes twice the T_Do..,\.o."E"d..l._"",..lod) I " ,. ' , "e (,]1 1..I "L...' .M.,,,"."..1' sor! An interim fi" is to replace the CASE's with space and twice the time to print. Either table can he u...... _, ., I "".".., ,.._I" '''' ( t. ' ocl...UOl:CICI '...UfOcl1M.1.,,"';.1') , , ,..., . ...c".d .,...Clft"""."..1 .. ".1_ t80' ",'" '11_ IF . . . ELSEIF c()nstructs. disabled separately by means of CallsTable or 1..,,"1"..".".." e"." .,.. I' e "'.' _'ilI " 011:C ".IE.U U I ~'" . "'ld8fI"I"j".' OIlI'1","...,.,i,_,I_ " CalIersTable. Almost all the code for printing the tables . .. OptloualllDes "'''oclt .M..""oc' .1.. I' 1..',,,,,-c._1""I..ldoII',u._ I..." ,.C...._ is common. As an aside, when both tables are printed L oc" . 0..".."rocJ .1.. I.I' idoll'..:lIdl' \III... ' '" 0.._ "'oeS." . ..c..d.." .r ocR.".., Those lines which hegin with the null comment are it is sometimes difficult to figure out which direction is "'rochK.._ Ilde"'S".i,,.' .,..-. i. c..e)'c' 1I:..dl " I.CI...1 not vitally necessa.ry to the program and can he re- represented by which table, even though the table's ti- c , I ''''...e )IIIP.oc...' Ift"'''t.' ( , -., "11 " moved without seriously affecting its operation. They tle says "calls" or "callers." One table contains only .c_.'_.1 I l ocR."...oclt , 0 , 0,,1., a I ),,' H Occluded)I WIIol.' serve primarily to handle HPlOOO extensions. a single procedure defined at level 0: the main program. d.'''''. ' 13 12 Softwara Toole 8ofIwa.. Toole ,... ~

I

I .J.

} Pr lilt. 1,,(1 v., .,0cIP,ocR."..1 So,U .rro" _""... "'are,n.'. ,,,tu~ } P'oc oc., ( ,_ ) GI'19"9.8b"8CI<." .[,.porfll".'" I i,.a,"..Proc ._ou,"u'" ,St.ecl< h..th be'in ""ee""',IltK. .0 ) If Ft"df'rocC.rocl .f li.tC...ocl" R..dld8f\U-.. ...d'II.". 'or. c_llc.t.d"'roc: .10.',1.".... .Ot't. 1'. E,rorill.det,nlt.on),'h." C., ) ".... I ')J th." .".1 .,,4' (.III.".rOC"'0 et",.oc " i.t t.Coull'ut [ttor .l'>I'n.'~" ",ocnUII.N.,,"rocth.,.. ca.. ...,.or I,.H nOMIL t.h...... oc"u.,..'!IC:"[norITooN''''''"oe..',1I .roc.dour. 1k...8ocI1I' .., ~oPr...,..., of' " ( ) "...1i' Il..te.,oc"...]I' ( ) Ch.ek &>0411 r.'.r_c.. to ~"'8c:i.l,kI ",ec w"tet"(outl'ut.'F,la d_" not b..." with -"..oe ')I ",Ith II.t("'oe"u.]~ do be.l" Inlti.,... '.'brlM;k.l..eu",_t.( 'or IE..,o,.IF IIU...o<:"'OC'I)1 .1.. .t."u.I.Fi",,4h8d wrIt.l... Cout",ut ,..t.ek(br.ek.t) It9) J co".t )J b..I" i' Co".'Le". 53 l.n.th t.h. '''''',,,.,c.-4il'finlt,_ co""t."t. th8ft E o'llo.tE"d.> ..,. b'.c".t'.b'.c~,.l-t ."dJ _I." "o\",,"'IIII.lIed'" U . 0' ..t IA ( ] JI..roc 1.0 ... 'I..'I')I...,.I.II.U.I-IJI I Con.t2Co".'1 '.1;1"O..d.'ct.n chr co.. d.,.o.. .0' .0'" ,..., "... 0~'1 b..,,, .0"0 .'cf4 .,n...".. d .ut r.'d "..dln r..."t.. .,'1 Ic."lIo"" '0"aor\llstU.)t...roc' k'" ,,,(t.,o,, () Con.t3 . "001".1 . i..t((u n'Y..bodwl,".,K. .n.' ..., fo,..t.ld...t.t".. ,...1 () Con..t.. . ."'"h81t...." 11"..0..ucc t.'UIIC..,. u"..c..,0.0..".."t. o 't.I"r..'i"t...'J- 'J PU..hl .~. ,d."t.c 'ld."t.S I,"'-"l'loj'''l:'t..1~."tF-t.rl ) Co".t., &' "o.lliOl'l"d "'0...,_t t" _ r t -, k."lo,. u",..,-c.". for ,nl,,,.. f'o".t~.,. .', I..c"u..~ lh. ) tv... ' '.1 ..,i'..:tl' '1 R..dld8fttl r ,,'l of . fun(t.o" "rt b. ..th.. ord,n.1 or ,.o".t..r.""..1 . I. .Con.tl... , [,.f'OC II' , ) ,; ' ,,,...,Off t.f.l ) Co",tR.".. c 'd.nt of .8(" CIIII.r) r.._ i..",u' 'or _d-o'-II". 'h..., t..ld...t.t.", 1"."U't, ,ld.."t5.t. J,I."t 'ar Co"St.,,n. . ...ck.d ."..(Con.Ut.""..) o~ Ch.,' Det.Directiv.1 (...'C"oe"ut..,I.. .1"''''.R'''i~' r ..I(d...tR 1 Erro..I"'."'.c.dll ~I Ianlk.n 1 O...".C..'O"...I 1... . ,,,.1 _\tl_u\)' ,..1,,,\ 1 .,oc.du,'. Addlnt" "., r." (" ICu"St, J ) "u..., it _'"(i..,."..> 1i..I.., 1I fo,..tl"."t. J~ h... (l 00 the ,... ..o'~ Of the ..ro"..:lu'.. H.c r. ..,,,c. th. ,,,t,,n..c.. ) h 'd...t." I. ,d."tl d.fin,t.o" cOf,..l.,,~ ,,,..., Hi ,_.11." fu, ..d,. -, "'_ fo. . I. 1 to Id."U_." ,to ,I . IN t.h." '. "'''~IO''''.J .'oc, ) Oth.rl ) ) [.)1'~"tCil"'" (0' 'A.j.jf",oc, iiiI.". Ide" t ,Ce...Slr d."t..a~ ( t"n. ."."t.n(.) I Kchr (o'dU' "."t.- 'Off...t.1 1 '''..Co tR.." b.. in ...i.".."t. to . IUllctiOl'l ...i.. C".., , ..nd; -"O..'bl. ".'.,,,Ar... do 1t..dJ wh,I. ."",ut~.' (0' ) (JI:.ec:I"fi...ti_) ( ) b..,.. .ICo""tR."..I .".ut...,1' th.n .o..,bl. ()C)vitti \I.. .. beoi" .,...\ \1_ ,uc..r.c~_.t" I I .. ... , " bllKk 180' ~ I. ~.11 .".:i' "' ..,oc,. ,.f , 1..ti".Wldthl .,., b,.ck.\ ,." 0' f"rocR.fI..1 (...oc.dur. O...t.D.I.' , ,,,.t.t. ) Ii... I. II ,.f..t 'P'ocS.tl ."dlt" '"j)~' 5.1. ..,oc.dou,." uut-ol-'co ,,,dl --'1 (0 'Ol:.' ) oc':'u"'d ..OC"'''._( ,i...\),.." h..,n Iblod .1 ,st. 10<.1,00t...,oc"u.,f',O,)cR.",.."" th_ ( " t l.t.",...'c. ... ,t.I"leNbuU I 1;I..,n lout..,) 1' ""OC:IP,oc;lt.".., bHII' " 1...'"".'C" J id.nt Addl"tt ,- ,...'C.!il1.n,,14.nt.l b..,,, l(.' r~\ u...f.,.,U..,.' 1 ".'.'oul.",tl bOh 1 T.tol. of (II I' .."t.tou",,"u'" 1cf8"tc ., 10c.I,00t.1..,0,,,... t.",,, fOf .'O(IoI. "'-, ')' II.t(.ro(I co..,.OJ 1.0."00::"'" oof' U."I.< M ) ~J .1.. ..r".(out..ut.'c.1th." ..r,l.Co..t.",t..'c.iI..'11.,..'1 I .,... ,. OJ I"', ., u.)I . 1.11 ro, do..llto I do _ll.I"'..,t.,,,.,,,,.1 II.. .."'.'nlout t.. lor I It. .'0',.t.(..fOC''''oc.',ool)". iCU t"Q("~ th... t ,..H..roc)~. "co..'.11 .."1..111(001 ( ''-1..' cNt'.' '0" """0..' ,t.'''(eNt.utl' "'dd("t"".,c..iCo".lU I "..oc loc.. PII... ( I ~ "..oc... i ut H ..,OC1.1 to ..rocn.,. do ..,'h ',..U.O,tI,..tC.,oc)] do Addl"t"n"'c..(Co""t2)tCon.tJ) I '''011 ( ,..." 'or () Add1"t.. ( ) I' I""u'''(,'.' ,H-..I."...'odl' c.lht.bl. AMDCC.'I..()(]I Of(NOTc.iI"t..tol.,...O( ) () Addl"tr '''''.C.,,,.,c..ICo l..1 I lIoc.. lor' PIIa.. 2 U ( 1(,.I'.r..()(JI Oft C IIOII t.h." b..,n I"clude ..eh ..,oc.du,. ) be"" ,'o' It C.lh"bl. I ""ill'...I.ltr.,.>(, ((PII..,:u. " ,f It. c.,I.d or c.ll.d. but. ,nc'ud. .,, Addl,,"'''.'(.(COI'I.'')' cu"...tf, 'oc;("'..CKI1.01 It J')J o,d., t.o ",..r-4''''".4" ) '.11 t ..It" 'I,U...CK]- 40 t.II"""I. , C I.". t.tH. ot c.II.,. "nd A r.."'...d. II'" i'il (lav.'.blec.1 iIIoMD( (too.,., O. C>v..Itel... t_'-"'ul) ." J' ." ," (0. ( JIKI"'d."t.1d.fl,, O lh." 't.lout."".' "1::'1 ..,. b..,.. (Mo, i,..t""..,,,..) '''41 th'lt cu "t ,..'oc "oot"( . 10 'd..,Itr.I.'.d) .'oc.d ), ()"tI"'o(I"'ol,)i..cCI., t...I. , .'oc."u...( "oc.".IiJIOO::.' ) eu,r.tlt.O th." Add "... .roc.dou... ( , 1. ) ,t. (out.ut.4.' I 5~ ..ro bloc. A6dl'rocl ()().,II." I,,'o.t 40 be8l11 .t.t.I.I.". " .".' P..or..'. . funLt'U... " "'."" I. d UO/t..II."" ec cl c.". bod.., .". ot (0'( tAdo:IP,oc,ab'oc....oc."""".Ellt ,d."t.'r .n""..oc.0' 'fo,..' ra"t. id8f\'. ,d8fttc..... curr...'I..."ocnUIII () .-c Icf8nt , ...dl .iI .. .1I1i.K.-.11J ) ,t.lout..ut... ,..on."'1 (lIod.. f'or...rd ...oc.dou... lou"d), II".. I ,.t .LowP'ocR.n.., 'oul...t ,...,."' ocn_.f'..ocft.".. root 1..roc"U8' ()C) ., .iICO ,.._ be Ctor.ec:' ,... r_ t.._ .111,..ecOftd.. 0' "'ot loc.' .if ,. , blockl.block.I' () .11.'00' , P..ocR.",.1 .(."A, "t., () 11KI. He-II .'0"(U"."t,loc.',oot. Sc."p.,..1 -.... _,'..Cout.ut.' 1'0,.."11 LOtOf'rocR.""., ,t..."(out.ut.I . ,t,'oc.'...fo,..tld8ftt.1 te )' ()(J ...i\.C_t"'..&..' ..I..itoll-\ 1.. _d.. '1_. c.I ...oc.du,.( &c...A"u_..t..1 ."II '''.1:'.' 'da"" () it .IIHO t.1I_ ."'\8C_,,,"u','O')I lI'I""'.. t.. (out...t.bod.. I I .,_.,,'., Ch.c.i", ) ."'-,,'it iden'.t;.tld."t0..." t.h." le."lIod.th." I () .,I\8I.f_"",,,\..II'I.' ..c_d..'I' ' .." R.." .co"'. occl ,_. 8ft" '0,..1 .'oc. Del.t.llet., ..Ucur'."t)~.bo""'I".I8-1.1 -.... ."dl '''''''1 ((1)1' IItddf'roc.b'ock. 'E,..o,. If '0'.,,4f>..oc.,, 'ror..t'oc, 1 '. .dentc ) ..,..." , 11'.' . .,-o'..tldilntl, "...c 1 1.".,I'..'..ou,,."'t !...dl~t '.M"t. bloelll.bloc.-I' "...t..wu\). PUG ,or.t.leN'.ut, I 1cf8"' ( ) -.. ..", ,t ".,."t.bl. 'h.,.. ,.'..thC.II. .,.. ...f..t.IKc.II.,., .' 1'1 ( ,. _. fo, ,,".1 to .,oc" do ..ortl,."'.') ( 1Mr.'.., th." be.,n ) b.""..,.,,'.0Se."A'."' t,. .n ' l;Iut...k. .u... ). IcN"tWld'hlt,"iI'N..tt.hnJ th." b..,,, No ..0_ 0,.. I,,,.. 9ho",Id I' " '.1', ( ) "',l.'''lout.utt I ..hI".'dld.""I. do b..." I"..de "._", ,..t ..I' It.CU<.l,.",t. I' 'Ind.nt.1 I ..""10h...Oth... F,,,dP,oc(.,oc' JI.I"de"U th... 1,.U"',ocY-.SC_.I.block'h .t ' " , tv...()De, ..,th.."dlI,.,r"ortl.."r.'])~ ,",0 ,t.Coull'ut.. If( E,..o,("i..I.c.dl) , .,.. b..,,, fO'..1 .,0c.dur."unctI0fl'h." Dear Rich: ~,fo'..tld."t.C"._., e "I~1 R..4Jcf8"tl ".If, I UD£IISC*IJACOISO. T!IIItJI.u .~.ld."tM,dthl It.ln lout.ut, I,,,.'S.' . Iblock'2. 011. t OIaI..O nIMt.'L ."dl ."fo,_tldent. C t. te )"I. The software tools section of Pascal News is ex- IU)i I ILLECAl ."t.I"loull'uUI .., It.lnCout..ut. . ,,,.'~~!.' . Itblock..1.2. 'fo,... ') I ."dl AddP,oc' tremely useful. We have implemented Prose on the HP . Lift.. ,.. 19] tt.C08.: .,...t! I I.tl.'o(ll".)" .bodv I.nal.",.I"t. I '0 ~.. 3000and we eJ1joyusing Prose to do our text formatting. CASE fU"IIALnrt Of ,-," O"t ' ""OC'P...odt., tool..", ) AJT, '»'1.'0'"Set .r. to I,.t() el_t Uut ",ol"h.I' to th. ."dldentl , This letter includes one enhancement to Prose and 014, . HIK~.c ,...,. It ,..on.. r...ult ,. , ] ,r 'h.n r_..t ...dl t Ufltli t21 'ordeft,.I,.t ".'."H one bug-fix. The enhancement provides a new terminal- AS1: IflllTf1(CII); ".00'.."" oc" ,P'ocR., ) ."dl LPT: lIer. b...,.. II..t(I).NIL ,-. ,.,.,... b..,,, ."d' type: DIABLO. This terminal-type provides for pro- WIlITELlfOUHUfl; ..,oc: j' 'h." """,oc ,'.. ",roe..:tur.( ) CIIIII(IIGECOtITIIOL: .PLUS &c."D.'.' .e_. oc:clu.,OI'I. portional spacing on DIABLO terminals. The change_ fl. 1.""oc"u.'((11.'C."O(J~."._C)o,dtl.tI OR Cli.tC..roc)"..co...OH o\H[t R..d de',,,it,o,,., ."d .oe.1 ..,oc..) wh.'e,,.,oc)11 do ([I)'bl!IC:k. ."df'roc. Ifor..tl""'t..C"IIC"'''. '0' id.At, de"t..",... .".. ) .roc'."'oc-I~ '.i.t"out"ut,l.roc.I"..oc:a..llock.IR.ildldent'f are as follows: f,,..4I",OCI.tr..-' '''''..'e ' ",th 1,,,lC..,oc]~ do ,I(.cg.,<)JIOR("_.(I,d."lIt.h." r,,,dl",ocl.'.I..I .An .ndl b..." wh... (,d."tll...OO.,nl liMO(ld."" C).,r."t' 1 do to..,,, Lln.. 167 to 17] ",COlI.: ,dant KOth... th.A It f.".:IP,ocC;,oc) UD t TU"UUn,£ AJT I I' CONVUIElfT I' . o\d4f>,oel ) tll." r ,.U"'oc)'-'.'o.".blo,t. ( ) I THE'OLLOIIUC AIlE!fOf D!IIECflV[:5. SUT IT I:' USr: 0\4.to<'d".... ""oco.s<: ..,...t Id."tll "f th... b..." Loc.1 ..roc..:tu". I TO UIClUDETIfEMU THIS TABLE. IF TUI'IIIUn'f. DU THU , , R...:tldelltl 8EGI" .'t>lor:...('ro'.lr.."".oc.''0' t.,"."t( .."t.I"Co...t,.ut," "loloc.,,,, AST. t ASCII TERMINAL I,,,..-,,., ,M.,P,oe...,0"nu..I',ocR.".. "".,5.' :~1I:;1 0;. 1 TO L£II 00 For..tl ""I'..."t.id.nlc I"1 I L'T. t L litE fOilfliTEIl 14 Software Toola Softwere Tools 15 ,... ..

I

'. J ,.,,--_...

'ype type identifier The export list is a list of variable, procedure and WITH SU,XI)() DO BEGI. U£sEY PITCHI If C SLUr THEIl WIIIT£I(ESC); function identifien which may be referenced outside BEGfli WIIIHHSt; IF X.. 0 0 THEIl the scope of the capsule. All protection of the data ob- !EGIII END, t PIlOSE I 0) ocaIer type If (12 MOD THEN jects encapsulated in the capsule is provided at compile C"""WIDTH(Xl "" fOil 13 :. 1 TO DI'I. C"AIIWIDTH) DO time. Thus, if capstype i. a capsule. and the variable X WIITEI(BUM") The version of Prose published in PN # 15contains EL.SE is declared to be of type capstype. then all external ref- 8[GIII , a bug concerning index entries. If an index entry is £ype Fall X} :. TO (Xl DIY CHARVIDT")DO s.braaae erences to identifien. id. appearina in the export list for WIUTEH8UIIIO; underlined, Prose starts referencina the NIL pointer. X2 :. X2 MOD CMUIIIDT"; capstype must be ohhe form VIIITEI(E!C); The problem is that the function UPPER returns an in- WIliTE1(TH"[[} ; ][3 correct value for underlined characters. A new UPPER FOil :. 1 TO X2 DO pointer type X$id WIIf[I(8LAU); function is introduced in the SORT procedure. WIt1TE1t[SC); Exported variables are read oaly, and identifiers DOt WRIT[I(fOt1I1)j Lint! 21b9 t.o 2110 becoMe: appearlq in the export list may DOtbe referenced out- UD, II1TtCEII; t G£I[lAL nOEl VAlli ABLE capsule £ype 12 :. 0,'" _ side the scope of the capau1e. There is noexplicit import ""IT[1{C) UPPEII SPECIALVEIISIOIIOf U I:I. DOES lOT IIEfUIIII facility, such as provided in Modula and Euclid. vllDERLfJlED CHAltACTUS. ELSE'" Xl:. X2. 181 " The Pascal scope rules for capsules are the same ... PUH CH . CHAueTER TO CDUEltT TO U..,EI CASE. as tbe rules for all other Pascal objects. Oaly a sinaIe 'LS'fOil 11 :. 1 TO LEI DO , copy of the operations (procedures and functions) de- F'UIICTIOH( UPPEIt() CH ASCIn) ASCI II lIlIe. 18~2 to 1860 bee08e: BEGIN UPPEI fined within a capsule is created, regardless of the num- If ODt)(CHOIV_ 128) THEIl "JT, CH:. CH 128; ber of variable. declared to be of the capsule type.. tn.: I[GIII If ClASStCHJ.lETTEJI THEIl WHILE IIICHU . 8un DO If 01 h SHALLA THEIl When a procedure (or function) containina the decla- IUTCH; UPPElt;. CII_ CHA_WIDTH ;. IIUtt8U(1D, _I, 0, UrrIITT, 10'31; 32 (10, 12]) ELSE ration of a capsule-type variable is called and the var- If MOT (eMUIHDT" II THEIl UPPEII:. CH 8EGJN ELSE iable declaration is elaborated, the capsule's global var- UROII( 101]); UPPElt :. CHi 10 iables are placed on the runtime stack as a record. This [10,CHA"WIDTH ;. £110 [UPPEIIli 12) THU record remains on the stack as lona as the called pr0- If (TE8MIULTTP[ . DUI AID (CHUWYDTH . j I[GUI 8E(;111 \lIIUEI(Ue), IWrite Ot,lt the IIMII I SalT cedure (function) remain. III:tive. Operations on the ""!TEI(US); abstr8ct object. are thus performed via call. of the ap- VIIIT[1(f'f); I encourage all Prose users to send their changes [10; propriate capsule procedures or functions. CHAIIW!!)!" :. 60 DIY CHAIIWIDTH; to Pascal News. With such an excellent tool it would The capsule type is defined by the diagram aUfLIIIElt].1I8' LEP'TMUGIM CHUWIDTH An example ofacapsule in parameterized (aeaeric) U. :. . he unfortunate if widely varyina versions were to start appearina. form i. shown in Fipre 2. An iUu.tration of the use of line. ]11]9 to ]11.0 b.e088: Ibis cap.ule is sbown in F'1JUI'eI. If ElIDI! vll!TILI(' PilOSE [lIIOIS DETECTED,'), Yours truly, 1"£1 ~) THEIl IF (TUMIULTYPE . OIA) .uD (CHA.!twIDTH . David J. Greer {A noa-rccunh't exrres:cion rarser}

The Use of Generic Capsules .~. 'Sf'; (.capnk.l.cD~311 char~tad(:fj. 20. charI', war with the - stack: chanuckZO; University of Minnesota Pascal 6000 Compiler B. c. ~ {Initial!", J stackSinlt; by Fr8Dk L. Friedman AlessIo Glacomucd Carol A. Glnsbel'l Anita Girton .{ Temple University

~(pa l; I. INTRODUCTION Data Abstraction Facility for Pascal," CIS-TR 81~I, This document contains a description of a data Temple University C & IN SC Department Technical figure 1: type abstraction facility, a capsule, that has been im- Report. plemented as an extension to the University of Min- Use of 8 simplestack caps" nesota Pascal 6000 Series compiler. The facility pro- II. WHAT IS A CAPSULE? vides an encapsulation that establishes a static scope A capsule is an additional Pascal type which is syn- E, _It of identifiers with controlled visability. Data objects tactically similar in structure to the Pascal record. The ( pst:., {] and a set of operations on these objects may be en- syntax diagrams for the Pascal type definition (with the F. r'yp') ist of c~le rar88letf'Ts} closed. The document is intended to provide sufficient capsule added) may be specified as . capsul. information for those who wish to use the general cap- type with the export declaration derlned as sule facility and library. A more complete description deftnidon {:teck c8JWIUle d.t1n1t1ort (1n f.('ftf'rlc fcrl'll) or capsules may be found in the paper "Capsules: A oxpon . doclarotion . p8I'8Itten: . pruDe n8r ot o["'ul(' - Department of Computer and Information Sciences, -C- EXPORT0"01 . pli:e . l'UIb~r of ("h,'Illcnt~ in the.' sU':~ Computer Users Document 81-01, February,l98I, Rev. . ptype . t'tast: of uad ,1.'r"~t) t~'T'f' I. September, 1981. Rev. 2, December, \98\ 16 Software Tools Software Tools 17 D. References to exported Ideatl8en: An exported recommended for creation and maintenance of the and ptype would be replaced by the correspondina ar- identifier is referenced by prefixing it with the cap- ~tackpointN . l...p:i:~'. capsule library (see the CDC Manual on Modify for IUments. charstack20. 20, and char. The result. in this sule name followed by a dollar sign. additional details). case. would be a capsule named charstack20 which H. {glor-a} cap.ulf' LJri:tt>!("s! ~ E. Capstk is the name of the capsule record as refer- In Figure 3. the first line of each record indicates uses a 2O-element array of elements of type char. Given .: ana\' (1. .r~i:cl ot pt~~; I..t;!d~ enced in the generic statement (see A.). top: --;:tii'ckpc>ir.teT; Ir<'l~tcr tC' ton ::-f :,tad. the record name. The second line contains the list this capsule definition. variables such as x.y.z declared F. Capsule Parameter Uat: Generic arguments (char- of parameters (n, .. 9) to be replaced when the cap- as stack20, 20 and char in this case) are substituted for sule is copied from the library. If there are no pa- var x,y,z; charstack20; the parameters (pname. psize and ptype) each time rameters. this line may be omitted. the capsule is referenced in a generic statement. As would represent character stacks of size 20 which could illustrated in the capsule header statement in the line be manipulated IUlmathe POP. push. and init functions ~'rl)CrduT~ p",h fitm: Pt'l)('); (pu I ~'~h 1"'1'<); following the parameter list. the use of the param- Tecnarn1 specifted in the capsule. I ~h.':II ('lite(i''''' .ud.: (paT , eter pname permits the user to assign different I parZ' ... parnl) names to each different stack capsule that is needed. The reference I. pr('cedure in1t; G. Export list: The export list is a list of all capsule (.SG(' capstk' /' capaall' .instack 1000.1ooo.inteJC'r).) Irl'r{C'T'!':'I:\rl~\it::rcd ir:.itl:di::'It:c:1 r: "'~';!: l,t-.lt,.t~ identifiers (variables. procedures. functions) that { capsule body eould be used to establish a capsule definition for a may be referenced from outside the capsule. ~ top. J stack consisting of an array of 100 integers. The *EOR !:!!! {init! H. Dedaratlon of Iiobal (per_t) objects: For each delcaratlon variable declared to be ofthe capsule type, a copy recnam1 J. procedure f,rint; var W,z: intstackIooo; {flnnt out the d.nta} of these objects is placed on the run-time stack. (parI' parZ' parnZ) \. The initialization procedure: If the initialization of would establish variables w and z each representing in- ~"SY 1F('MYPE'.'REAL')llir."'J( global capsule data is required. such a procedure capsule body teJC'r stacks of size 1000. "'Titeln dat8\-alue:S:2) must be called explicitly by the user for each de- f (.Sy ELSEIF( clared instance of the capsule. ( 'm'PE'.'n.~f.R'}*) C. RMtrIetIou... Other Co b dat.".81ue:S); "EOR "'Titeln The examples in Figures 1 and 2 also illustrate I. A JC'nerie reference $0... may not be the first state- (_n ELSE insert the next Hnt' to 1nfonn u,er of ~rTOn~ some of the shortcomings of the current capsule imple- ment of an input program. since a program statement to the u!'er: pt)-pt' IIIJst bt- t)'»e integer or rral. onJy. mentation. For example. there is no provision for the is expected here. ( automatic execution of initialization statements, such 2. Only one capsule h'brary file may be accessed at a "SY INHf") as provided in Concurrent Pascal. There is also no pro- time. (print) ; Figure 3: !!!!! vision for the direct specification of variable initializa- 3. If no substitution is desired for a particular param- of stack) ~ (eeneric fom tion in a declaration. a feature that is provided by Ada. Structure of a Sequential File of Capsules eter. paI'j. in a capsule record. use a null argument Euclid. and CLU. Rather. any initialization required for (indicated by conaecutive commas) in the position Figure 2: the encapsulated data object must be done via an ex- corresponding to paI'j. ThIUl plicit reference to an initialization procedure (such as Stack capsule: generic form init) defined within the capsule. 2. Capsules may be retrieved from a capsule library $0(' capstk' /'capsa1l' .charstack20. .char) (and copied into a Pascal module) through the use would have the effect of leaving psize untouched of the Pascal G compiler option: III. GENERIC CAPSULE PREPROCESSOR when the stack capsule is copied into the user The major features of the capsule facility are in- SG('recnam' /'Iibfilnam ') program. dicated by the letters A-H in the left hand margins of A. Introdudloo or ... No capsule parameter (appearina in a JC'neric cap- these figures. These features are discussed next. The Generic Capsule Preprocessor (GCP) is a pro- $G('recnam'/'libfilnam'. arg.. arg'i2. arg,,) sule record) may exceed 10 characters in lenath. gram that may be used to allow a programmer to insert A. Generle (Par.meterlzed) referen <-= >= < > + See the University of Minnesota Pascal 6000 Release causes an instance of the stack capsule to be copied into and advanced level documents on interactive the user's text at the point of reference. During the d. No blanks are permitted in the formal part ohhe 3 document. computing. copy, each occurrence ofthe parameters pname, psize statement. except the one which follows the 'Y' 18 Software Tools Software Tools 19 ,. ~

I I I ! ...... LI

as noted in part 2 below. Alternatively, the space .. (*$Y2ENDIF of color checking~) Programming Language Euclid," SIGPLAN No- .. '''1IUl4lo1F.8f"Jf£IIUfMCYItI.nUMlIIUN ft. .. IrunYt"f: ItMDOfII~."... Off may be used to note the level number of nested ,'*- " A8tRAY. tices (12, 2), February, 1m. .. OH::1oIUHI[Irt\hIIIil'-INf.t.._ .IIH ~IUIi IUvt"'.' 'ME statements, for readability. .. (- iii....8U ,r8..1:2) .(82.8.1). .It.IU.(1 ) (*SYlELSE*) [Linden 76] Linden, The~ore, "The Use o~ Ab~tr~! . .t"" 2. Conditional inclusion of text within a generic cap- 1oI1.'CJiOttM Of't.kAIOkti_ Data Types to Simphfy Program ModIficatIon, -- GI\llEM UtE 1OUM1IIM11.8 UIII IIoIIJIN..IZI. JIUt.IIlIIIIiNCfI'" sule may be instituted through use of the PASCAL OF CATE8OI:n8 U:IF P8lomfYI"£ h IIHD ca.f._ SIGPLAN Notices (8,2), pp. 12-23, March. 1976. .R£OIJ(:MCT ACCUfIIUt."'OIII"n MftAY. Y compiler option: C.UHiOIty OIWM JTIEMfYl"f: ITIE" ..... [liskov 74] liskov, B.. "A Note on CLU." i~ CLU De- '''8IIJt.A'£ - .'£IItttIME' Of" 1NCfC(N(IoI' fHOUEMf;' COUNT Of" 'HAr C,IUIE_' $Y keyword sign Notes. Project MAC, MIT, Cambndge, MA., FMGIJ(:NCY - .IUIItH ",'£GEII: FItEQUENCY COU,'" FOtI' 8.W.. (;A"[(iOItY ',..E Of" C.T[IKJIIUES.f'MIlUff((;lf:tI _L.TlW or 1974. "'UN' - ffttClU£MCIU,""'N' $Y keyword ('paramname'op'paramvalue') [Liskov 77] Liskov, B., Snyder, A., Atkinson, R. and ...IC """"flUE:,""MIIIf'IE OF --CM"SUL£ or ~ Schaffert, C. "Abstraction Mechanisms in CLU," - . :.,s - OfC.1£00'U£5(,.M'ITIOMSI ".- $Y3keyword ACKNOWLEDGEMENT Comm. ACM, Vol. 20, No.8, pp. 564-576, 1m. 'NIt/. .t n..[IME aNI(OF Wlt-UIEd TME t.:LASSlflllOf LQII(.(AMUllINsc Nt). 1T£"TYf'I.- TM( sraucr... HOLDING THE 81JUfi111M'Y\HILtll.S or [Lisko v 77) Liskov, B., et. aI. "CLU Reference Man- TYPE: TY1"I. Of "I" The authors would like to thank Professor Giorgio - , ,.. $Y3keyword (' paramname' op'paramvalue') ual," Computation Structures Group Memo No. . A IED f"1tON, , ,HOoIIItI,NOMf: 'MI£aMCMU:M Ptt08ItM .r.UCTUM"S where ~ P. Ingargiola of the Temple Computer Science Depart- 161, Laboratory for Computer Science, MIT, Cam- . .. TME 'M" '[lIT ... .rItUCTUItE"Df'ttOGi8tNIII'Il.... . keyword- the word IF or ELSE or ELSEIF ment for many helpful comments and suggestions con- bridge, MA., 1918. .. cerning the design of the capsule facility. ,. CT ATf:.f.U.U[IIICY."UIT.I.IT~. or ENDIF. [M-cCabe 76] McCabe, T.J., "A Complexity Measure," . paramname - a parameter name, exactly as IEEE Transitions on Software Engineering, SE-2 c_r . ., ::A,., it appears in the capsule parameter list. (4), pp. 308-320, 1916. . op [McCall 80] McCall, J.L., and M.T. Matsumoto, "Soft- - one relational operator chosen from the BIBLIOGRAPHY set: ware Quality Metrics Enhancements," General .) [Barnard 78] Barnard, David T., W.D. Elliott and David c. ULO-' CIII'8UI.["VMI...£. Electric Company/Rome Air Development Center , ,'". Off 0, ,N =, < >.<.>,< =,> == WIll'81 f8MtItAy _ 8OUMD8fOft tllll'E_Y - H. Thompson, "Euclid and Modula," SIGPLAN Final Technical Report RADC-TR-8(}.I09, Volume .to) L"'''-II. L 8OIJIII&IOf"Cllll1UlOltYo. (Note: ONLY may be used in com- Itel)" t..OIIItM- 80UIfD~ r..,I:.QOkY""'"" I. = and < > Notices (13,3), pp. 70-84, March, 1918. I, April, 1980. ItrN) ., L 8OUMOOf"CllllnOOltyM8) paring alphabetic operands). [Brand 78] Brand, D. Note on Data Abstractions," 18 Of 'ItI:DUl:IIICI(" fOR I:.IIeMOf "A [Mickel 79] Mickel, Andrew B., et. aI., Pascal ~ '.8' C.T£_U:S1' 0 SIGPLAN Notius (13,1), pp. 21-24, January 1918. COlWIl INn...'" UTO'. COUNTOf I'ttOCtS.") paramvalue a parameter value to be com- Release 3 Document. University of Minnesota, Min- 'OT ' HU'S - [Brinch-Hansen 75] Brinch-Hansen, P., "The Program- pared against the corresponding argument in neapolis, MN, January, 1979. ( ~.-: , ,( , the generic capsule call statement ($G ming Language Concurrent Pascal," lEE Transac- [Palme 76] Palme, J., "New Feature for Module Pr0- statement). tions of Software Engineering 0.2), June 1975. 1"ttOCf8Ultl tection in SIMULA," SIGPLAN Notices, Vol. II, (: 'I:CITII"f'lIIT£"TYP£', [Chand 78] Chand, D.R. and S.B. Yadav, "On the Ap- No.5, pp. 59-62, 1916. _'(M,. ' r 'I_y In'. .lftu(lJ .. . Remember that the Pascal compiler option must be . If""" ,IIIC,!€"'" plications of Data Abstraction Facilities," Proceed- [Shaw 78] Shaw, Mary, et. aI., "Validating the Utility . oIIII8Uf'Ir.'.FlNIf inserted within comment markers, and may contain ings of the 1978 ACM Annual Coriference, Decem- . '1If"U' Nt8 --- no blanks except as specifically stated. User com- of Abstraction Techniques," Proceedings of the . Ifl."- III."to_ CA UI. ber, 1918, pp. 639-645. ACM Coriference, Washington, D.C., pp. 106-110, .. ments may immediately precede the closing com- [Chang 78] Chang, E., N. Kaden and W. Elliot, "Ab- ment marker. December, 1918. LA8fL SO, stract Data Types in EUCLID," SIGPLAN Notius [Sheil 81] Sheil, B.A., "The Psychological Study of 1.,1111iIT' (13,3) pp. 34-40 (March, 1978). Proaramming," ACM Computing Surveys (13, I), - (.' '11"81 3. RelllllrU [Coleman 78] Coleman, Derek, A Structured Approach . I_ I (TO. DO March, 1981, pp. 101-120. f''' ITI" 8(11 The generic stack processing capsule in Figure 2 to Data, The MacMillan Press Limited, London, [Venema 78] Venema, Ted and Jim des Rivieres, "Eu- ." 'III. provides an example ofthe use of conditional inclusion. ..elN I_ England, 1918. clid and Pacal," SIGPLAN Notices. (13,3), pp. 57- .J '-If,_ , J+.. As shown, the cOlldition inclusion feature was used to [Dahl 72] Dahl, O.J. and C.A.R. Hoare, "Hierarchical ".IK.J) 69, March, 1918. 110'0 so determine the type of data to be printed by procedure Program Structures," in Structured Programming .... , :;y [Yin 78] Yin, B.H., and I.W. Winchester, "The Estab- '.LK II8C8£fCN',_ L." CAT€8OIII.... "prin!." The feature may also be used to restrict the by O.J. Dahl, E.W. Dijkstra, and C.A.R. Hoare, lishment and Use of Measures to Evaluate the Qual- ..,""MN),o,~ "'IK.]+",- ,cn~." use of a capsule based on a capsule user's knowledge Academic Press, 1912. ity of Software Designs," Proceedings Software '., ,.... of parameter values. At times, the feature may be uti- [Dijkstra 72] Dijkstra, E. W., "Notes on Structured Pro- Quality Assurance Workshop: Functional and Per- "11f' ...... lized to insert a variety of comments in the output pro- gramming," in Structured Programming, by O.J. formance Issues. San Diego, November, I~. P8I8CI:8UM. (: "I." aram, depending on substituted parameter values. Dahl, E.W. Dijkstra, and C.A.R. Hoare, Academic , ( ..ITMCAft_lfS 1MUff MIl H'tUUl.Mt.:U.tIIlf [Wegiter 79] Wegner, Peter, "Programming With Ada: ".., OM.'UMI, The form of the conditional statement which in- Press, 1972. . a.nlt'"" It£t.."w: ""'8Ul:MCIf.8 may be used An Introduction by Means of Graduated Exam- ,..... cludes a numerica.l digit following the 'Y' [DoD 79] DoD, "Preliminary Ada Reference Manual," ples," SIGPLAN Notices (14, 12), pp. 1-46, Decem- : IIIIItOUf'I(Nt ."lltltIOMS -- to help distinguish among IF-THEN-ELSE statements SIGPLAN Notius (14, 6A), June, 1979. PtIOC£'- ",..",,('n. f MlEiIoUt.,.10 ~ 8I:U' I"II:I..U:I M.MdY, ber, 1979. :. IT 11IITHIt((-COU T...IE ..11M COl.UNfME.MRS, which are nested. For example: [Friedman 79] Friedman, Frank L. and Judith A. Ste- "I"'. ' [Welsh 80] Welsh, Jim, and Michael McKeag, Struc- ..9 : II"ACM ... THi: tMoLt:;. N"t't:MS fOLl"*" - I bulis, "An Undergraduate Compiler Laboratory," tured System Programming, Prentice-Hall, 1980. II'" (*$YlIF( !'TIPE' REAL' )TII£,\*) ,:' [LOIIIIOJIft'. MI~D' fIM:OU£MC' IIIILIIIIYI. "tt.IlUtM,;, II =' SIGCSE Bulletin (II, I), February, 1979, pp. 28-36. [Wirth 71] Wirth, N., "The Programming Languaae [Girton 81] Girton, Anita, pp. 35-63, 1911. CONti'l, '(" "A Generic Capsule Prepro- Pascal," Acta lriformatica I. 1Cf' cessor" (in progress). [Wirth 76] Wirth, N., Algorithms + Data Structure; iIot:".'I'f .)., [Halstead 77) Halstead, M.H., "Elements of Software LJiRacto.COfW'I'-. '." = Programs, Prentice-Hall, 1976. . 'r 'f Science," Elsevier Computer Science library. 1977. [Wirth 77) Wirth, N., "Design and Implementatton of WIllI II lterfDf.' [Homing 75] Horning, J., "Some Desirable Properties Practice and Experience (7), Modula," Software - IIfR=~~::~~_t"t_OU~::~OOIt. _ ItI'L"'IUf ..~:...MC\'.I' of Data Abstraction Facilities," Proceedings of the pp. 67-84, 1917. WUlfl u_')f ._n~ ~(; - ;O;2:;;;.;~;-n_. Conferenu on Data: Abstraction, Definition and 1";::C_..~t11 :::;~~ . Structure, SIGPLAN Notias (8, 2), March, 1976, :~"N<" 'f"MIKO)I!~ ,01 Hlltognm Cap8Ule :: :~~~I' ,::"'Uiou,otM.COUfH.1 41' pp. ,... II_ . M-I DO 60-62. (from Dahl and Hoare -[Dahl 72]) '0 (*snELSE*) [Ichbiah 79] Ichbiah, J.D., et. aI., "Rationale for the -O:':nr '.L...iIoCtf;..tnl.OI2.C ,..1tt 1+1JlI012 ' ~lTfLIt(.._'Uc' I HIO~ Design of the Ada Programming Language," SIG- HI!HUOIt J/'01M.COUln,IIOI41 ("NNt( ., 1" YPF) 01.' PLAN Notius (14, 6B), June, 1979. M . rM-gl.II.["'8.' fIE""Yf" (...... ~~~:'::::.(")1'012.cOftM,'£, (1.]:10...... 1. [Lampson 77] Lampson, B., et. aI., "Report on the "It((."'I~~~ ..L ' ( HJ!H'}f}ft_C,.,.SUl£ , WIIIIf((' ',f"jt£O(O)UO If

20 Software Tools Softwere Toole 21 ~ ~

1 \

J J .,~

~({;lfI TOP I- loP II .., .(FItEOrOUTOTALCOUNT) 11014 ~I NGIIt C'SOII!UI I_ + '[Uti' ... III[IOP'I ITEM IDA II. 1 TO 101-1 00 ('VIIIlIDIIoTE """II(IN( '>'AI:4I U"lolkflOW IH I:M!iUt' PNN'IF ...'1' ' wt' 1HtUI al HE" t, rN8 OF .,..c. .. M:£N . IIOnONI""CAI'-. It(o\C'''' ('IV2IFI 'PSIROC1f.1111'l('-'SI_ll'(X(III,] !THEN . 11Ii," S,oIICIo.t..'.Y HINII",tlUflM(D . MIUttd oil ffl(OtWNCf "(]ok UH£W)kY I. JF XI.1J '1 - COU"'! 0..1"_" .. . no PkOl~fPUfIF f-"USfH IIfl'l1 f"JP[1I \1M IN11:_.. L 10 IIICCt&tiIMiSTo\Cl\ OH~ .. "'.XI EIII"''''. ,. Il!Iti'l.iU"UIi lIH I IX:- .11 ,... OHIU IHf ST.U;'" WtUH INPUI M6U"UIffSI'" UnXLSE:a, . "USH I_ ( INfI(JCnr" FfiEW.lEr«:V!:J!lIIl:.h(/f(Y 'It." ,. I - P£ ~t H.IIUoIt[, IF XC.1].F'f!:E' <: XU.].PKEf . IFI"'.11"10(.'Of"- '0P0f''''. I- TttUE A[IN__) ,.... . Mt'UUfttHI IIU INII IOHS E:L&E_filNI' IIOnDft'HEN I_ FM8I.f IffN I. E:N8. .. "' I. I- J' . ...kumu,HfS '1"" . 1""111J ~ ItJ III (NIf,IUft IHTO !H#W;4t. .... tolUI'" :_ UI.,2I.HOIF.1 . '1.1'1 ""IA lit" llorUUIJ Cal'fl£LSE:IF \ ,II4[It.) H"tOU£Hl'Y 'PPIMCIION' IflG1H _ INr, "IIJf"I 'f'SIlIIUCflJRt:) SIftf'1..E . IF .[.1] .u.)'-', '''Hal " 11 f-'SUI TItfH ...... ,... ft(liN10f' c 1'1ttII':f"(1IMf"'NIT MHI I.LHI' ... ~loIIII:1IiOVlkH06I IH CN'SUl( plrIoIIIfI(.a.' IT , '-":OCltlllkt IX 1-.1' WfurUII(. SloIIICtI.!illl .. 10PI. P1tOCFIII_ INltt UHI 1 UI"2[LS[al 10f' - '. ., (8 ToP M In.,... Wli IHN.' ~Xfr.IJlI{)H IUo!f'lIHAIt II.. '1 If" .t.j).PJ\.t'f'"IU!J.PKI:.T 8I"OININ"'* ".- hllkf JIoIJ t u,..,aouUfoIllAldlAllf'II'U"If'E)1 ,.... ~u EN. 101" I. o. """'1 IX I- .1' .... . ,"IIIAlI7r JtlJUHbAlfi oi\It(kjlll' 1010.."", MI 'k!:.\! H&1. #111011' C'IV2£NOI,.al II[Gllt f:", U Cllil"fin. CM"fIIJIf ... PUG . rnUiII 10/Lkn. AHk'" un IEL 8£.1 elM"'" HOlM . ,.U...,H '1INCOIIIII'f:Cr DIMCI JON IN81Co\UM rOM I5OftT. ""'lnLNI I' . 1",,111_bl_HI!>f"fH'I'J'~ -- WRITEL"(' RECOMPILE coPt: Ifilit COftKCTEO SOft" II . f)!'IIIIUH~"""V _lkollT Uf- ImUHI.IS'HIlII bl,-~IHl IHI:.l:oIIlt.UUfoIIlS EX£CUJlON nll'ltiNAIEO.' "'UTElNC'OOTO 99 nUJUIVo\L[HT TO I' [ltD. UlftNlR 'HALT". " II IHUtiflili UIUfHOIF.) LOOf''' ~I !i IH ''''''' rnl,.. f:(.UH' I_ U(.CI4MIG£ ELEJoIUflS I AND I..) :_ b(1 11)" I I fO HO' T[ItF'I-XIIXU 11.11 :_ X[IX) I_ IICl)t t:XflllJU!\l[tMR""YIIH X(I) I_ fOIl' I :. 0 10 H 1.10 n:M :_ OF I Jefllf II (NO' C'8OUTtIll LOOf"'. IHI' I"HI'.,,,, .., !HI! ("ll'Ift'Okollll'l' CoIiIF'SIIlF.11 END U80RUU (HIt (.SORT Ctllf>8ULU"

Sort Capnle Stack Capsule (with condllic>n81buertlon directly..)

t:APS'" (IiIt'S,*',,,_.. IPHoIIIl'If.t"!;llf,.f'IVP[) .r-fTf-"t: .r-!iuNl psrRUC'URl.pl'l"'CIIDH.PIIi['. f"NIIIM . r",,~":;Ull: f'1MI'I( . CAPSUlE I...... (. OUltkH; , SU.I C""SULI: tOJl". "'''UllOM II" U SToIIC"('lIIf";UI£...... CAIi'OL A. 81HSI!£.ffU . "'-'IHtM'1(,:ON'l£rllll ftIIrIHt:H I. IY82 . PflOVlltfS COltF'II'rr . IASIl"'Il DoIfIfEI'I(JIII'IUU MMC" ~. "HI "'AHI;! 1"'2 . . SToIIIC'" OPU'oIII'OfIS . SOftIS INIloIII ASC[Hl.l11fU OHIfIUI' (If _ f-'UIMcrION I 011I' - 'UP' . . 11(5(;1:111111016Ufl:DUtI" flf PIIIJIr£CflOH 'DOWII'I USU'O 011Isuwu. . (:'""1'1' . SI:.LfCnON SOJIf . .'"'f'W;" . "fW(oIWfEtf.1IDtf-IIIUIUtfS . .., . PIMM. Of"CAPSUI.-- I:. . IHII . P"PI: - .,.. 1 . "SUIItIIWIUI- J"'t,(II'Afllljl:)Uf- o\kllolllVOfIUIltl.ll.XIII:..0IHEI)H. Mllftj yDftrrb . - fV"'l A"RA' nll"'"I{: PIIII<_Tl",'1 . PSIItt.K:IL*t If 11011I. "...t IS 1:' Uh' '1I'1.t:tJkU' , . I'~ )lA1'I1lit 1,lIIr5UlL . - 1"I.IIt.:oIII'"''ITPI. If IS NUl LlESltiIftIIoII.U.''''IfW1 IHl:.H.Jtt.UJHf! . ,.sln HII1'IkU.:m II fl'lfMIS MlII""L[' . tt0\51 tlf :;111I1:'"III" f 1'Itlt'<;1H" "'.. IltblCoIIIl.. IF SUIH 15 IU M. oIIIlIClHDUIU Dl.ICEHDINO .. ~'"pr 1'1"" . - 011' . Uklltk, . tHIftt .. Jltt:ukll ",1.'f-IUII (ll'toolll'£lI If M"'oIIIVUf . f-''''''- Mf1I[((lflIISI H'H fXPOII'I'i ~t""n. "nf'. "WiN. fit', INII., . ~ UIOI.O\. UMrlollkllH 1 I,1:""'>1"[ VIIIH 0111 AkklllH .f'SI/I I Of It :iI,..:", .> U, 1'1'1'1'1; lOf'1 .t'Sllil \. ~'nl 1<111 iii lilt' II~1"'- ',1011I1:'" .. '" AVAILABU ON u 11IM:NO0l0 VAIIIIIIIr!! MOUllt[ft fUf( I fUttCllnH " . I:APSUl[.'''Iff 101 0Nf; MJltMVVlIIlI'loIII,,(..usf ... tJtClMt:D.'"IS 'Mf'T' MICROFICHE fo1101f_1 .. HlHtllUN DIRECT INCIUIIItES TO: VAllI 0tJIW0I'fI IHf[OUtt F""I" . rofIfH'HIt£If SI,..:" IS tMf'lY f'filOCIDUlll( 5011'1 IWIII .1 tIJlIoIWtlC DoIfI"'f'(1 FlfilS1.LoIIIST:P!WJlRoII'MJf"l' ." InICAOPHOTO ., . AIIOlHtfNI ItfftHlllONS - . ~Oft1 110III1011I USINO 011I SIJW't.1E SE.LfCflOlol SlMO . IMOIIIf"' ~ BEll..Howell . lIA'oIII IS fI1.oIICfD UI PPUtU::flON 0II'[lf1ll II£GIN OlD MANSfIELD ROAD . oIIISCfNII'IHe) loo.tN P£!U:t:NPINOI IF (fit. 0 TItfH WOOSTER OH 40669' - " . fl'lf'1V If1tlt Contacl ChrtIttne E.... " " I" . NtGUft£II' 11£' INlTlow.. ElSf ColI toH (8QGI321.... . IHf'UT oIIIRGIWNIS - FI'If>H 10IIII..5f tn 0N0, COIl (2i61 26W666 coM8cl . FIIIIS1.LoIIISIUPf"(1II LIMITS OF IN.. 10. oJiIR1II:lIIf I" . X - UIW'"K S08Itu:nMIl' - """",10 -'~ .,. FUHCIIOH POt' 1 ftlHf:TlON f-'Of'1 ~."...rf ,. PoP Iff" 011 rut (Of"III " "'" . AkGUMNII"UfIII.t

1 a fast one-pass compiler, p-code interpreter, module Modula 2, Niklaus Wirth's ne_at propamming ~ ...rq1,."qlW"C, ~ ~ ~"(J."OMI'''Q. ~..qlll"DiI._' ~""",,,.tU..,,.Q .91,."'."D6.'" "'~"fJ."".J library, the Advanced System Editor (ASE), Pascal lanauaae, wiD also be demonstnted on the XEROX compiler, and a complete set of utility programs. The 820-11 at the TlCOM booth. It, too, is available from The6dl PACS COMPUl'ER GAMES FESTIVAL system is proced at $595. 11COM. AmI"" ment," McCormack said. It can also handle larger pro- For more information stop by booth #969, or con- IIpOII8Ond by the grams. The new release, called Version 0.3, conforms A smaller configuration is available for the Apple II and 1/1running Apple Pascal. This system includes tact TlCOM II: 130470Waahiqton Blvd. #'1m, Marina Pblladelphla Area Computer Society to Wirth's recently published book on Modula-2. the Modula-2 compiler, interpreter, and module library. del Rey, Ca. 90291, (213)827-7118. Dealer inquiries are 8Dd Wirth developed Modula-2 (from MODUlar LAn- guage) to replace his earlier language, Pascal. Whereas It is priced at $495. Educational, retailer, and distrib- welcomed. All press contacts should be directed to LaSalle CoUeae Pbyslcs Depart_nt Lynn Andenon. will he held on the 19th of March 1983 Pascal was intended as a teaching laDlUaae, Modula-2 utor discounts are available. Volition Systems concentrates on systems soft- from 11:00 A.M. to 4:00 p.m. is expressly designed for use in a wide range of real- ware development and on research and development .UCSD p-System is a Tr8demark of the Regents of the ID the L8SaIIe College BaUroom world applications. The new language - designed to University or California. Olney in hardware and software. Since the company was located at 20th utilize standard software modules - olTers great flex- .FlNAL COPY is a Tr8demark of TIC OM SYSTEMS, PhIladelphia, PA" 19141 ibility in the development of large, complex systems. founded in 1980, it has been a leader in the implemen- tation and dissemination of the Modula-2language and Inc. Volition's Version 0.3 includes a comprehensive Featuring Computers ID DaDy LIfe other high level languages and in the design and devel- module library, a compiler that runs 25 percent faster opment of advanced computer architectures. than the previous version, and a tutorial designed to EDISON AVAILABLE FOR For further information contact Stephen A. Longo. bring Pascal programmers up to speed on Modula-2 in For further information contact: Volition Systems, P.O. Box 1236, Del Mar, CA, (619) 481-2286 THE IBM PERSONAL COMPUTER Ph.D. Physics Department, LaSalle CoUege, Philadel- a matter of hours. phia, PA 19141 Ph<>ne(215) 951-1255. The new version provides all the attractive fea- The Edison system is a portable software system tures of Modula-2: low-level machine access, real-time for personal computers written by Per Brinch Hansen control, concurrent processes, and type-secure sepa- TICOM OFFERS THE UCSD P.SYSTEM ON TWO 8Dd described in his book "Programming a Personal Oh! Puc:a1! rate compilation with automatic version control. "In- Computer" (Prentice-Hall, April 1983). terrupt handling is fuUy supported in Version 0.3 NEW MICROCOMPUTERS Oh! Pascal! is a book by Doug Cooper and Michael - pro- The Edison system supports the development of Clancy. Doug Cooper is an excellent programer living grammers can now write real-time applications in TlCOM, developer of integrated office manage- proarams written in the proaramming Janauaae Edison in Oakland, California and Michael Clancy directs the Modula-2 instead of resorting to error-prone assembly ment systems for micro computers, is now the exclusive a Puc:al-like 1anguage that supports program mod- language," McCormack commented. introductory programing courses at the University of distributor of the UCSD p-System. on the DEC Rain- ularity- 8Dd concurrent execution. California Berkley. Version 0.3 is available now for systems based on bow 100, and the NEC Advanced Personal Computer The Edison system includes an operating system, the 6502 (including the Apple II and /I"), 808OIZ80,TI (APe). A p-System veteran of four years, TlCOM adds an Edison compiler, a screen editor, a text formatter, Oh! Pascal! has been used at many leading uni- 9900, and the 68000. Implementations for other popular versities as a basic text book for Pascal. These schools these systems to their current list of UCSD p-System a print program, and an assembler written in the Edison microprocessors are expected in early 1983, Mc- include University of California (Berkley). Purdue Uni- based applications packages and development systems language. versity, Amherst College, Brandeis University, Har- Cormack noted. for a variety of microcomputers, including the IBM PC The program text and portable code of the software The most significant feature in Version 0.3 is the vard and The Rochester Institute of Technology. and the Xerox 82(}'11. are available on diskettes for the following The book is very readable and clearly written. It standard library, a collection of modules that olTers fa- TlCOM will offer both development and run.time mic:rocomputers: cilities normally provided by an operating system. The systems as well as its integrated office manaaement contains an emphasis on general problem solving tech- IBM Penoaal Computer pop 11113Computer niques, an early discussion of procedures, self-check library provides console I/O, random access files, disk software package, FINAL COPY., on the APe and the 32 K words 8Dd (or LSI II) 28 K words questions and self-test for each chapter. Anti-bugging directory operations, format conversion, strings, dec- Rainbow. FINAL COPY combines word processing, imal arithmetic, storage management, program execu- data entry, records processing and remote communi- Keyboard Dual 8' Diskette Drive and debugging sections foUow each chapter. There are Dual 5W Diskette Drive RX02 (or RXOI) numerous programing examples of varying difficulty, tion and process scheduling. cations in a single package. This is the same system that The standard library provides a portable interface has been olTered by TlCOM on the IBM Pe since Jan. single (or double) sided Terminal including long pr()grams. Interactive programs are Monochrome Display VT 100 (or VT 52) shown in action, thoe reader isn't forced to infer their to underlying operating systems. Volitions' current uary 1982. Modula-2 system interfaces to UCSD Pascal. Modula- These products are now availble directly from Tl. Printer Printer dilTerences from batch. It is 476 pages long and is illus- DisplaylPrinter Adapter trated. The cost is 515.95 paperback. 2 implementations for other popular operating systems COM. They will be shown on the NEC APe, DEC Oh! Pascal! is published by W.W. Norton & Com- will be available in 1983. Rainbow, IBM PC, Xerox 82(}'11, and the Texas In- The software can be edited and recompiled on pany, 500 Fifth Ave., New York, New York 10110. "With Modula-2, you can develop portable soft- struments Business System 200 at COMDEX 82 in Las tile. machine conflaurations. It CUI also be moved to ware systems that run without change on a number of Vegas, Nov. 29-Dec. 2 in the TICOM, booth #969. other similar microcomputers by rewriting a kernel of dilTerent operating systems," McCormack said. "This Demonstrations on the NEC APe wiDalso be available 2 K words. should be of obvious interst to software developers in the NEC booth, 1734. For more information on the availability of the faced with writing applications which must run on all TlCOM is no newcomer* to the p-System. They in- Edison system 8Dd the book, please write to: NEW MODULA-2 VERSION of today's popular operating systems." itially implemented p-System software packages on FASTER, EASlER TO USE Professor Per Brinch Hansen The Modula-2 system also provides access to sys- multi-user minicomputers in 1978. TWII8 fuU advan- Computer Science Department DEL MAR, CA, Nov. 30 - Volition Systems has tem-dependent facilities. For instance, Apple users can tage of the p-System's high degree of transportability, University of Southern California introduced a complete software system based on its integrate their existing Pascal and assembly software they later adapted it to several different Los Angeles, California 90089 fast. easy-to-use version of Modula-2, Niklaus Wirth's into the Modula-2 system. And Modula-2 gives them microcomputers. powerful new programming language. access to the AppleStutT and 1\1rtleGraphics units. One additional feature olTered. on the NEC APe is "Modula-2 is particularly suited for large industrial A m~or goal of the new version was to make the a graphics implementation. 'To completelyutilizethe and commercial applications. It wiD save software de- compiler more useful for program development, APe's extensive graphics hardware capabilities," Mi- velopers both time and money in program development McCormack said.- It can compile larger programs than chael Hadjioannou, president of TIC OM explains, "we JRT PASCAL and maintenance," according to Joel J. McCormack, Volition's previous version and it can compile existing have implemented a SIGGRAPH Core compatible set company president_ Volition Systems has pioneered programs 25 percent faster. In addition, the compiler of routines which are callable from UCSD Pascal. Soon Since May, when we slaahed JRT Pascal's price the commercial implementation of Modula-2. provides conditional compilation facilities and im- to be added wiD be the ability to access graphics func- from $295 to $29.95, we've added over 10,000 new cus- "Our new implementation is faster, more compre- proved error handling. tions with the Presentation Level Protocol (PLP) or tomen! - and we expect to reach 25,000 by year-end! hensive, and easier to use then the previous release, Modula-2 Version 0.3 is available now from Voli- 1\1rtlegraphics, making it easy to transport graphics Needle.. to say, we're grateful for the deluae of which was closely tied to the UCSD PascaJllt environ- tion Systems. The complete Modula-2 system includes applications to the NEC APe." orders. To handle it has taken a ne",:,office, new per-

Announcements Announcementa 25 t 1 ,i

...j -

sonnel, and new shipping systems; even then, the mass this update, it's yours for the cost of a diskette, postage The address for new orders: USUS FORMS FOUR NEW INTEREST GROUPS, of orders - a fifty times increase - caused some de- and handling: $10. JRT Systems ELECTS OFFICERS AT MEETING IN DALLAS lays. If your order didn't arrive quickly, thank you also 550 Irving Street for your patience. We believe you'll find JRT is worth The ONLY disk formats available are: San Francisco, CA 94122 DALLAS, TX, Nov. 15 - USUS, the UCSD-Pas- the wait. 5V.{'for Osborne, Apple CP/M, North Star, Superbrain, ca1 User's Society, elected new board members and With the new capabilities, the goal of a one week Heath hard sector, Heath soft sector, Xerox 820, Note 9: Feedback. . . Please! officers for next year, committed itself to increased user order turn-around is now in sight. education and informed new special interest groups Televideo A dynamic product, new JRT Pascal versions are (SIGs) at the orpnization's semi-annual national meet- Note I: Five and a quarter inch disk versions 8' single-sided, single density standard always being developed. The system's main evolution- ing recently concluded here. ary force is feedhack from YOU Please specify which of these formats you need. - the user. We invite Speaking of the strengths of this popular language, Requiring only 85K of diskette space for the com- and encourage you to write us your ideas about piler and 35K for the run-time system, JRT is currently - - keynoter John D. Paae of Software Publishing Corp. how to make JRT Pascal even better. (Mountain View, CA) noted, "PFS was done in UCSD the most compact Pascal available for CP/M systems. Note 5: Coming - JRT Pascal version 3.0 Pascal because a task of that size and complexity could For program development in JRT Pascal on computers In January we'll begin shipping JRT Pascal 3.0- with five inch disk drives, we recommend this file a major enhancement. New features include: not be done in BASIC." PFS. with more than 100,000 arrangement: unita aold, is the siDale best-selling Apple Pascal . builtin indexed file system ENHANCED PASCAL COMPILER FOR program. On disk A: On disk B: . facilities for screen and report formatttina IBM MAINFRAME COMPUTERS "As the p-System is becoming more widely dis- . EXEC,COM . JRTPAS2.COM . dynamic arrays tributed and an even more attractive target for appli- . your editor . PASCAL. LIB . improved compiler error recovery ACUMEN Software Services Ltd. is pleased to cation developers. we are experiencing a &rowing de- (ED, Wordstar, etc.) . PASCALO.INT . enhanced EXEC interrupt announce the release of Version 2.0B ofthe Australian mand for user education," according to Randy Bush of . the Pascal sou rce program . PASCALI.INT . full support for file variables and GET/PUT Atomic Energy Commission's PASCAL 8000, an im- Volition Systema (Del Mar CA). who is the newly being developed . PASCAL2.INT . expanded user manual proved Pascal compiler for IBM mainframe computers. elected chairman of the society's board of directors. . PASCAL3.INT Of course the price of new 3.0 will still be $29.95. The AAEC's PASCAL 8000 Versin 1.2 was one of "USUS plans to increase its emphasis on tutorials . PASCAU.INT the first production compilers for the Pascal language. and member education to meet that need," he said. In IMPORTANT NOTE - The file PASCAL. LIB must Version 2.0 offers the user significant improvements; the future, approximately DDT EXEC. COM - has improved compilation speed - its aoftware exchange library and formed four new SIGs long as it's not for resale. system makes for easy changes - it enables the user at the Dallas meeting. Some 200 people attended it. Error: multiplication o~ real DDT VERS 2.2 Permission to make copies is also specifically it can support numbers by 0.0 produces IDcor- to change the final condition code - SIGs were formed for uaers of the IBM Personal NEXT PC granted to schools and to computer clubs for members. lower case. The language accepted by the compiler Computer, Texas Inatruments computers and the Sage rect result 5BOO0100 If you develop application software for resale, you conforms as closely as possible to the ISO Draft Stan- computers as well as for those interested in inftuencing Patch procedure: Use CP/M pro- may distribute the run-time system (EXEC. COM and gram DOT to patch EXEC.COM -S563C dard. PASCAL 8000 Version 2.0 can rapidly pinpoint file access standards beiDIIdeveloped for multi-key ac-. PASCAL. LIB) with your package with no license or problems in original source language, a function which cesa methods for p-System networks. key in underlined code. 563C ED EB royalty fees. - - , is available on only a few other compilers. In addition to Bush, USUS directors for the com- 5630 53 In Version 2.0B, CMS support for VMlSP has been ing year will be N.C. "Arley" Dealey of Volition Sys- -GO added, improved traceback in the event of a system tema, Michael Ikezawa (Rolling Hills, CA). Nancy A> SAVE 90 Note 7: YOUR Pascal application prolrams &bend is provided, compile-time specification of the LanniDl of SofTcc:h Mi<:rosystems (San Diego, CA) and EXEC.COM. Naturally, more and more owners are developinl maximum procedure table size is introduced, as well as Robert Peteraon of Texas Instruments (DaUas. TX). more and more JRT Pascal written application pack- other improvements to the run-time system. Peteraon will alao aerve u preaident of the organ- Note 3: Patch # 2 ages for sale - we've heard from many of them. And PASCAL 8000 compilers are already in successful ization. Otheroftlers are A. Winaor Brown (Huntington Applicable version: 2.1 A> DOT - for developers - our copy and license policy is par- use in over 250 offices around the world, in banks, Beach. CA). vice president; Michael Hadjioannou of Error: Message 'Scurce file not JRTPAS2.COM ticularly attractive. schools, life assurance companies, universities, com- Ticom Systems (Marilla del Rey. CA). treaaurer; and Now we're putting together a JRT Application puting firms and government departments. IBM DOS Thomas Woteki of Ferox Microsystems (Arlington, found' when compiling under DDT VERS 2.2 VA), CP/M ver 1.4 or COOS Software Directory and would like to list the packages and Perkin-Elmer versions are currently under NEXT PC you have for sale. For free listing, just fill out the en- development. The IBM PC SIG will have three CCKhairs: Gary Patch procedure: Use CP/M pro- 5500 0100 gram DDT to patch closed Application Program Description and return it The compiler is supplied on 9-track EBCDIC 1600 Gibb of Thunderbird Properties (Oakland, CA), David key in under. -A2B9 to us with tangible evidence of your package such as BPI tape and includes; a user reference manual con- R. Gobel of Eastern Business Machines (Greenbelt, JRTPAS2.COM - lined code. 02B9 CALL 3F83 brochure, manuals, diskette - but quickly, please: the taining a description of the lanauage as implemented, MD) and Mitchell D. Garrett of Digital Engineering 02BC CALL 413D first Directory is scheduled for February distribution. an implementation guide and implementation JCL. Group. Inc. (HoUlton. TX). PASCAL 8000 has a one-time license charle of The TI SIG will be <:haired by Danny Cooper 02BF, $US 2,000 and annual maintenance and enhancements (Plano. TX). and Tom Siep of Texas Instruments (DaI- -GO Note 8: New address and phone number charge of$US 250. Iaa, TX) wiD bead the Saae SIG. Steve Castle (Park The new phone number for orders only is (415) Enquiries about installing a PASCAL 8000 Version Ridae. IL) is chairing the File Access SIG. A> SAVE 84 In addition to tutorials, SIG meetings and technical JRTPAS2.COM 566-5100. 2.0 compiler should be directed to: The address for technical questions and prob- Mr. Bryan Brooking sessions. the meeting featured product announcements and hardware demonatrations. SofTecb Microsystems lem reports: ACUMEN Software Services. Ltd. Note 4: JRT Pascal version 2.2 update P.O. Box 86787 aonounced the availability of iu 4.1 version of UCSD JRT Systems Pascal and Statcom (Austin, TX) announced and dem- Version 2.2 of JRT Pascal is now being shipped Technical Services North Vancouver, B.C. V7L 4L3 onatrated CRTForm. an automatic code generator for - 2.2 includes some internal enhancements and repairs P.O. Box 22365 UCSD Pascal on 4.0. aU problems rePorted in earlier versions. If you want San Francisco, CA 94122 Telephone (604) 980-7118

Announcements 27 26 Announcements .I."

Ticom showed the UCSD p-System running for the INMOS MICROCOMPUTER ACfIVITIES Three types of primitive processes are used in oc- CHAN tnpuU[16] .- dctc1are . 'elector.of 16 ch.nn,1s first time on the NEC Advanced Personal Computer. Inmos is already established as a technical inno- cam. The first and most familiar is the "assignment". 5EO t-(O fOR 100) n fOR loop. SUIII..,.,.ay ,1~nts sequenth1ly Other demonstrations included the Sage II computer vator in memory products. It has market leadership in Assignment in occam is exactly the same as in other sUII:-su.-+.,.r.y[t] from Sage Computer Technology (Reno, NV) and the ~ast.16K static RAMs in both 16Kx I and 4Kx 4 organ- languages; it gives a value to a variable. PAR'-(0 fOR 100) n ~re-pltcato"" c,.e-.US 100 ,a,..lIel proc,sses Modula-2 programming language from Volition Sys- .r,.a1[1]:-.rray[t]+1 ;ncr...nU .,.r.y elnenU tn p.,..11,' IzatIOns. Its IMS2600 64Kx I dynamic RAM is the fast- The other two primitive processes are "input" and ." tems running on the Sage II, the Apple II and the TI est available, and it wiD shortly be introducing 8Kx 8 "output". These allow communication between "con- AU t-(O fOR 100) u alternattve .nd rephcato,. c0llb1ned 990. tnputs[t Hch.r se1ect an tnput from a,.,..y of and 16Kx 4 versions. current processes", that is, processes which are run- -- Ch'Mf'h out !ch.r n find ~tput thf' .tnner The next scheduled meeting of USUS is April 22- The other plank in the product stratellY is the ning in parallel. Communication takes place by input- ch.,.:-.,.,.ay(BYTE t) ByTE lIeyword allows byte add",ssfn, 24, 1983in San Diego. USUS is a vendor-independent, -- Transputer, an advanced microcomputer due to be in- ting and outputting "messages" through "channels". u non-profit user's sroup for the most widely used, ma- PRO(: buff,r (C.HAN tn.out) abstractton ..chants. troduced in 1984, It is beina designed in Bristol En- WHILE TRUf loop for e.er chine-independent software system, UCSD Pascal. A channel is a one directional link between two -- gI~nd at Inmos' United Kinadom Technology C~nter. concurrent processes. A conversation between two VAR It: USUS was founded in 1980to promote and influ- SEQ u t1llP1Ment. 1-de'pbuff,r MIcrocomputers are the key products in the semicon- processes requires two channels. A channel imple- in?.. ence the development of the UCSD Pascal System and ductor industry, fuelling the silicon revolution. They ments a handshaken unbuffered data transfer between out !It to provide a forum for education and information ex- are the fastest growing market sector, and with asso- change about it. Annual membership in the society is the sending process and the receiving process, Since a CHAM c: ciated hardware and software support products, the channel is a point-to-point connection, no addresses are PAR $20 for individuals and $500 for institutions. buffer (tn.c) .- now 'nvolle thto abst,.action largest. needed in the messages. buff.r (c. out) Developing microcomputer systems is a complex Occam needs a minimum of constructors. The task, The user needs efficient tools to design and debug "sequential" constructor introduces a block of pro- OCCAM IMPLEMENTATION GREAT PLAINS SOFTWARE ANNOUNCES FIRST systems and languages to program applications. Inmos cesses which are to be executed one after the other. The SHIPMENT OF THE "HARDISK ACCOUNTING decided early that the support products would be made "parallel" constructor introduces a block whose com. The conventional implementation of a process, SERIES" TO APPLE DEALERS available in the order that the user needed them to cre- ponent processes are to be executed in parallel. which uses an area of memory to bold the variables and ate his systems. They will be announced during 1983 The "alternative" constructor selects one (and scheduling information, works. For many applications. Written in USCD Pascal, the program runs on Ap- a simple round-robin scheduler is adequate. Many im- ple II and III, with a Corvus or profile hardisk. The pro- ahead of silicon products. ' only one) of a set of processes. Each process has a While the transputer will support software in all "guard" associated with it which is usually an input plementations of a channel are feasible and should be gram will run on IBM's personal computers and most popular high-level languages available today, it is seen readily apparent to system. designers. The details wiD other microcompu ters in April. statement. The alternative constructor selects the first by Inmos as more than just a "better" microprocessor. of its processes whose guard is ready to input and then vary to exploit machine-specific features or other The menu driven, double entry accounting system Rather, it is a silicon "building block", the component choices, like a multiprocessor implementation. For in- features interactive modules and complete audit trials. executes it. If several guards are simultaneously valid, for the massively parallel systems of the SO's and be- just one of them is randomly selected. stance, a channel.between processors can use shared With extensive data prompts, error checking and an yond, such as the so-called Fifth Generation computer memory, 10 ports or seria1links. operator's manual. users will find the system easy to There are also looping and conditional construc- systems. tors, and a replicator mechanism - which allow the Interrupts are easily handled within occam. A pro- use and understand. The efficient design and implementation of these arraying of processes. In addition, the language gives cessor with N nestable interrupts can be modelled in For more information contact Great Plains Soft- sy.tems i. not possible with current languages, whose occam as N+ J communicating processors, The base ware, 123North ISthSt., Fargo, ND 58102 or call (701J acce.. to a real.time clock. designers never intended them for such applications. processor needs a scheduler, while the interrupt pro- 293-8483. To meet this need occam was created. OCCAM SYNTAX celson may have none; beinljust a single process wait- ina for input from a channel which hides the interrupt . Occam has been designed to be used with an in- WHY A NEW LANGUAGE? logic. The microprocessor hardware will then auto- teractive workstations, which affects aspects of the matically multiplex the processor between base pr0- A common factor in real systems is that they con- syntax. For example, since a screen provides a limited INMOS ANNOUNCES OCCAM cessor and interrupt proceSIOrs, This ability to handle sist of a collection of components which exist alonaside number of lines of text, the block structure of the text interrupti in the Janauaae can significantly reduce de- INMOS annot/nces occam, a new programming one another for the lifetime of the system. The com- is shown by indentation (rather than BEGIN..END sip and Integration timeacales, lanauage. Named after the philosopher William of Oc- ponents are independent, and from time to time com- keywords, which makes inefficient use of the screen). Implementations of occam are efficient, with code cam, the language is based on the concepts of concur- municate information with one another. Because the meaning of a program is affected by its densitiel and execution ratel closer to assembler than rency and communication. These concepts enable to- Existing programming languages are designed for physical position on the screen, an integrated editor- typical high levellansuages like Pascal. This is because single-processor use. Although they do allow a system compiler is nomaUy used to write an occam program. day's applications to be implemented more effectively of a deliberate choice to restrict the 1anguage to those and are essential for the complex multi-processor sys- to be broken down into its separate components, they Here are fragments of occam to illustrate the featurea which are supported directly by all likely ma- tems ofthe future. insist on executing these components sequentially. This syntax: chines. An implementation of occam needs a small run- Systems, even those with only one processor, con- is a poor model of a real system. . SEQ __.. Sf'qu~nth1 constructor time system but this is typically less than 100 machine SIst of many parts working together, that is "concur- With the reducing cost and increasing capability of tn?cha,. fj,.st input f,.om chann~1 "jn~ instructions. rently:' When used in programming a system, occam tomorrow's VLSI components, systems can be built out !char .. th~" output th. v.lu. to channel "out" ._ The overheads of concurrency is higher in systems directly represents these components and their inter- from multiple processors, which are much more com- PAR p.r.11!'1 constructor whicb use "gratuitous concurrency" than in those Dutil .. output connections and gives an efficient design and imple- plex than today's systems. The limitations of current 'A' __ "A~ to ch'nn~1 ~outl" In pUI11,1 outZ! w1th outputt 1ng ~8" to channel "outZ" where the parallelism is tuned for petformance. For in- mentation. Future systems will have many processors, languages prevent the exploitation of such systems, and '8' __ ALT .Itf'rn.th, constructor 1WICe, doing assipmeDt statements in parallel on a and occam's understanding of concurrency will be es- clearly calls for a new language. .. gu.,.d; try tnput trOlll chann!'1 tnl?char __ "'1'11" single processor system will result in some overhead. sential for their design. out !ch.r if gu.rd succ~~ds. output tu tnput However, concurrent communication is efficient and ,!,o introduce occam and concurrency, INMOS is OCCAM in2?char .. another guard out !ch.r _. and 1ts iSsoc;,t~d p"oc!'ss sensible. It is expected that an occam system on an in- offenng an Occam Evaluation Kit. This will run on any Concurrency in occam is implemented by having dustry-Itandard microprocessor will incur less over- system supporting the UCSD p-System (version IV), WHJLE x>O u WHILE loop a "process" for each independent activity. Concur- SEQ __ head than one usina a traditional real-time kernel. and costs $200. The kit includes a compiler-editor and ~ency reaches to the lowest level of the lanauage, the jn?x __ input. full supporting documentation. The UCSD p-System out !It th~n output .s long IS .1\>0 mdlVldual language statement. These statements are __ WILLIAM OF OCCAM may also be purchased with the Occam Evaluation Kit called "primitive processes". IF 1t(0 cond1t 10nal . u .sslgnment for an additionalcharge. A primitive process on its own cannot do much so __ The language occam was designed by Inmos in VARch.r; d~cl,"e . vlr1lb1~. "ctlU" Other occam products will become availble in the language provides "constructors" to group them __ co'liunction with Professor C.A.R. ('Tony') Hoare, CHAN in: dee1,r!' . ehanne1. ";n" Director of the Prosramminl Research Group at Ox- 1983. together into bigger processes. __ VAA.,.,..y[100]: dec1are . v!'eto", ".rr,y" of 100 el~nt' ford University. 28 Announcements Announcements 211 A predecessor of his at Oxford was the fourteenth . COMPILER to produce P-code, the assembly Rldge-32 2.2 Prime no 750 century philosopher William of Occam who is best language of the P-machine DEe 2060 5.4 VAX limo 331 known for "Occam's Razor", "Entia non sunt multi- . INTERPRETER to execute the compiled P- IBM-3701158 7.5 DEC 11I34 134 plicanda praeter necessitatem," Literally translated, code (with TRACE facility) VAX-limO 10.2 (680008MM) m "entities should not be multiplied beyond necessity", . Structured programming constructs: CASE-OF- 68000 8 Mhz 19.0 The Whetstone program is a lIoating-point intensive it is often seen as a plea to keep things simple. More ELSE, WHILE-DO, IF-THEN-ELSE, RE- IBM 4331 38.0 program representative of scientific calculations. generally, it suggests that if two or more solutions to a PEAT-UNTIL, FOR-TOIDOWNTO-DO, BE- Apple II 1500.0 problem exist, the simplest one is preferred. GIN-END, MEM, CONST, VAR, ARRAY The puzzle program, developed at Stanford University "With addition of hardware ftoating point. This approach of simplicity is fundamental to oc- TINY Pascal PLUS+ provides graphics and other by Forest Baskett, tests the computer's ability to per- Please contact Ridae Computers. 586 Weddell Dr., cam and is extended to all work that Inmos is carrying built in functions form basic operations, such as procedure calls, array Sunnyvale, California, 94086 or call Benay Dora- out in its VLSI products. It also reflects the well-pub- - GRAPHICS, PLOT, POINT, TEXT, IN KEY, ABS and SQR. The PET version sup- references, conditional branches and comparisons. Abrams at 408-745-0400. lished views of Professor Hoare that many modem lan- guages are unnecessarily complex, and in some cases ports double density plotting on the 40 column screen giving 80 x 50 plot positions. The APPLE II version WHETSTONE BENCHMARK dangerously so. supports both LORES and HIRES graphics with: COLOR, HGRAPHICS, HCOLOR, HPLOT and PDL. Whetstones OCCAM PRODUCTS For those users who do not require graphics capabili- Machine (ThousanlW see) Inmos ia announcing an Occam Evaluation Kit ties, the original TINY Pascal package is still available. Rldge-32 1500 along with the language itself. It allows medium-sized Prices for the diskette versions for APPLE 11and programs to be designed, written and executed, and is Perkin Elmer 3240 1172 PET are $50. A cassette version for the PET is also VAX 11/780 753 ("1168) intended to teach people to think "parallel". available for $55. The original non-graphics versions The kit is a portable compiler and editor built upon are available for 16K132K PETS and APPLE Ii's on Softech's UCSD Pascal system (version IV). It gener- diskette for $35 and on cassette for the PEt for $40. ates p-code, which is executed in the normal fashion by For more information contact: ABACUS Soft- SOFTWARE CONSULTING SERVICES a p-system host. It is available tailored for the Apple 2, ware, P.O. Box 7211, Grand Rapids, Mich. 49510. 901 WHITTI(R DRIvE Au.(HTOWN. P(HNSYlvAHtA (21~ 197-t690 Sirius I/Victor 9000, Intel MDS, IBM Personal Com- I"OJ puter, VAx/VMS and LSIJII and is provided in the ap- propriate diskette formats for these hosts. It is also PAS('AI. \'.\UDATION St'ITE \'ERSION 3,1 NOW AVAILABI.E lit'rnsf's of f'8rlif'r of tM available in uncommitted form on diskette in Sof- Thf'rf' art' nurl~' "f'rI'" Validat'" S.tlf'. 'he StHte" 8' HELP WANTED an eoxtf'nsi\t' rt"\'ision* of \t"rslon :UI. It c."O.la1.. ("Of'rft to ..rl, .. tlefteieacin ,.... tech's UCSD Pascal distribution format (single-sided, \,:1.0 and has ~;i;IIt"st pro~ram~ 01 ~kh single-density). Our company is presently looking for a Pascal ex- in P\'S O\'f'r I~ are w.' or modified. S.a.wqu.1 The kit includes language and compiler manuals, pert to work for us. His duties wiDinclude bringing Pas- rt'\'isions 10 Iht> Suitr 4Irt" likel~' 10 M minor. together with installation instructions, warranty and cal into the data center as a second language. He/she TtwValidalionSulteo dnt'toped b~BriaR,,'kit i. I. FK. An r Sa~ ia Tasmania undt'r tht' auspit"8" s of tlM-I)asull {.roup. TM i.tf'a.iea of tM PMc.'ka~r is example programs. The Occam Evaluation Kit costs should have five years experience in Pascal usage, a !!Ot"" '0 $200. degree and be a good communicator. This career op- t'nt'OUraKeo a \rr~- hilth df'Krf't" of por'abili.~. of Pa54.'.1 pI'OIr.ms 1f'\'f'8 ..iahrr prewa. portunity is with a major conglomerate and involves .Iy exis'si. aAd to pro\'ide USf'tS . mf'{ ism to .u.n .hfomwt"f'S t 'If'Mor'S During the first half of 1983, Inmos will announce _ ( state-of-the-art technoloay. prochwt!l rompl)' ,,'ith Ihf' S.andard. \'ali4alioll rt"pOl'ls piien arf' publisH4 i. hardware and software packages which support se- Pascal lected industry standard microprocessors, including Please have interested people contact Larry C. :"'\t'.'s. tbe iAPX 86 family and the MC68000 family of micro- McWilliams at 1-800-821-3194. Rn.rk"ie8. processors. These packages will be offered either as Th... ('onditions 01' rf'leoast' prollibit tilt' di..ri" 1M ",('k.lf' to tIIir. ,.rlif's H .s to IImil thc' ~roYoth 01 unaulhoriz" and iaanur.lt' '.rr "n'nrr. ao is pl.(~ 1) mtrtel'" "software-only" for running on a UCSD p-system on th... 1 prec.on fer bt'adII rki... 1..- a('('t'p. host, or integrated with a microprocessor-based work- ust" 01 th... pac.'kaRt' I'or \ aliu.inll lan('f' tt'sts, lor prf'par'na (..mpara.iu rf'port "imU.r .t'lh..it6n 4islribu. station offering high-resolution graphics, 256K bytes of RIDGE TIDRTYTWO GRAPIDCS hon of tht' results 01 su(.h uSt>, TIlt' \..IHIa Mile hHtI .''*1,. IISH alNl dis.rilMl.e'4. memory and high density ftoppy-disks. Expansion ca- and has nOI bfot'n rt'slri('l" to a small 5..bwt .f IIKoIIIf'r c.'Omm..II,. pability for the workstation will include a local area The RIDGE ThirtyTwo is a 32-bit multi-user Thf' Wa~' nia.. Ar~ network and Winchester disks. graphics work-station. Pascal is the system languaae. Th(' .-as(..1 ('ompiler \'.lidaliDR Suite ot.",od188'ft,: 11._ u.,. 01 It's. 4:ode" (or For more information on the Occam Evaluation We are seekina engineerina and scientific packages I'as('al c.'ompilt'rs. It "as df'\f'loprd b~' A.II,J.Saw .1Id R,.'reak .. Ibe l..ht"rsit~' 01' Kit, contact Brad Hartman at INMOS, Colorado written in Pascal to run on our machine. Tasmania and B,A.Wid.maa. aad Z.J.Cifto kl .. tlw Brili.h S n,'.ic.'al , soIf' Springs, Colorado (303) 630-4362. The RIDGE ThirtyTwo offers high-performance t..aboralor~. Thf'~ own it and ha\'t' ri_ltts i. .1~'mi.j.1 tM poUdo i.\olu'd ia ih disaribulion. Allhou«h Ihe tile V.lidaI... StIlle I. 801 dirt'('tt~' It...ablf'. 0IIf' (.a.. (2-4 times the speed of a VAX 11/780) and high-reso- \'8lut' 0' f'S' timaleo atilt"('osl ot rt"("fealinK it al approximatel)' six Milan per iiiit' t.'OM or .boul S..... lution graphics (l024x 800 pixel graphics displays). I o' 000. Ors. Sail' aDd Wi...ltmann h8\'e hte4 .. 4 '''i",W 8Ct al . ...triMI8I' . have enclosed results from the Stanford Puzzle Pr0- '0 TINY PASCAL PLUS+ FOR PET AND APPLE II gram and the Whetstone Benchmark. Please contact for Ihe \'alid.tiOll Suitt' in bolh Nert81 SMtll A..eriea. ABACUS SOFTWARE announces the release of me if you know of any software houses or OEM's who [A'I l'S "elp Y.. TINY Pascal PLUS+, an enhanced version of TINY would like to use our hlah-performance Pascal. I. Should ~'ou ha\'f' an~ te('hRi('al qtIftt reprdl~ tlte \'IIW8lio1t S.h~, plf'aw "rilf' 10 mf' Idon'l 't'If'phonf" and I ,,'III rnpotHI or 'onurd C'Ommt'.t.r~' Saw .Ad Pascal with support for graphics. The package runs on Y'" '0 Wic.'hmann. Thrseo men ('Onslantl, tr8\lt'1 al8d II _«MIld ~ difficult 10 Irad, thf'm do.n the 32K PETS and APPLE II's with Applesoft in ROM. STANFORD PUZZLE BENCHMARK heolp, It is available for immediate delivery. (Pascal, Subscript version) ".ithoul m,' TINY Pascal PLUS+ is a complete package allow- t. It ~'ou ha\-t" Iroublf' rf'adinK Hf' of..r tapPI or 81Ulin ('811 Martlla {'i(,HIii 1!Ii-m. and sheo "ill ht'lp strai«htf'n out t~ problem. !\larllta i. in ('8Iarlle of prepari.1I tIN- ing the user to create, compile and execute programs Machine dislribution."H' written in the Pssal language. TINY Pascal PLUS+ (seconds) Time H.lp l includes: Ptf'.W '. IBM-3081 1.3 H the leorm~ of Ihf' tj('f'nsf' ..r«mnl ar~ not a(,,('f'ptable 10 ,'our aiu16oa. ptfttw do . LINE EDITOR to create, modify and maintain nol req\Wst a ('OpY o. Ihe \'aUdaliOll Suite. I M'i.M, tM ri«hl DOf'Ihf' iaelill8lion 10 S-I Mark I 2.0 u"'C" source IBM-370/168 2.1 aulhorizt' an~ amendmen.s to Iht' SaIt'.Widlmanll U(,f'Mt' ..rumenl.

30 Announcements Announcements 31 ~

~ I i i

APPI.ICATION FOR LICENSE TO USE VALIDATION SUITE FOR PASCAL

N.m~ address of reqUt'ltor: ICompony namr it rrqurstor Is a rompo.yl O. DATE 11/23/R2 , Numlorr: ,. IMPLEMENTOR/MAINTAINER/DISTRIBUTOR(' aiY. . _d ".,."". """". ""m.., '/ N81M aDd address to which inform.tion should Foster Schucker lor msed !wrltr .bevr"lf tltr ..mr}: Assistant Oirector Computinq Services Suny 13 Fresonia Fredonia, ~IY 141163 SlI_t.rr of rr<8uestor: 716-673-3393 DoIk: 2. MACHINE/SY~TEM CO~FI~URATION (' A"., M.",,, t/I.,:"",...,._., rt sohw.,.,..,,,;,.d. .... Burrouqh!; ,anTC. ys cms -.." I. m.bl.. thl. .ppllrotlon. which.hould lor.llned by. lhlr penon 18tItr of. y. tItr" qrrn ""., ,.tMr. '1 thaI: 'n B5000/B6000/B7000 ., TItr V.Udall... S.llr I. rrroiniud as Iorlal tItr eopyrlpled. proprlrtary property of TItr BrlIiIIIStaaoIard. 3. 2, 3. 3, r1CP Orpnlsa_ .nd A. H. J. Salr. .nd hI TItr rrqwotor will DOldl.trlbtolr or othrrwlar makr I..hlr ~reHahh .".,... of tItr V., tI8a Salk. "Ied or unmodified. to any Ihlrd party withoul wrll" pe,ml8.1oa of tItr eopyrlplllolden. I. rrl.,.. tItr eopyrllhl holdrn .,.nllull pe,mluloa to _ thr proIf8m. .iId e88tal8e4 .. tItr V.I I_ """_1108 3. DISTRIBUTION (' Who ..i. how com... in ",h« oprIo",. _« ""'.',.nc.. 'I Salk lor tItr ''''poor 01rompllr, v.lldallon, .eerptaarr &rIta.be8eUta ,..., 1108of nmpantlve repert. .. '0 i' .Iml.., purpooe.. and to mabr av.l..hlr tItr 118118pof tItr renlta of ,...tI8a ... of tItr 18IIIInI Operations Supervisor 1600 BPI or 800 BPI partin 18tItr counr of tItr .bevr .etlvltln. 18._ ,.mr.ta. rrlere8re ..II ...... ex""'"18tItr eopyrtpt _lee Computing Services Library r1aintenance tape ... 11I_,er. Fred Suny A Fredonia Distribution Charge: $300.00 Fredonia NY 14063 Make checks payable to: Mall Request ud Check To: $25 w/tape $50 without (1800) Software Coasultiu Servlees Software Consulting Services 901 Whittier "Dr. Ask for 3.3 Pascal In US dollars drawn on a US bank. AlientoWDI. P A, 18103 USA Attn: 1\. J. Clcbelli Remittance must accompany application. 4. DOCUMENTA nON Wh.,i. ...,..,. ."d ""'.,. '/ Not much hut is" in computer readable form

5. MAINTENANCE (.,. it unm8int.;n.d.fullym.;",.m«l. ~,-} Partially naintained. It's used as a teachinq tool, so not M'ICh I .. I r' ...... support is rp.allv nenc1ec1 ( 8} ",11III... pertly.112",800'. ,: I , 8. STANDARD f. HOlMdo.. it me.,ur. up to ,t."d.,d /#ucM1lilt. EateHH1 How. , I , """." (1-'" I 11100'" Have not had a chance to try the sale suite yet. It has extensions I AIIII-$TMDMI. EIcIIII;cII ,... 18. FIrIIII to fit into the Burrouqhs Pile SysteM. Other minor hells/whistles. 80__ en ... EIcII".,... , 11:1'11 IUCII. 1'1... 1 ~ ... . MIll!IIa II 40 II;cII I I UCII .. IV I BIT IIIIIIIIIIIIIII ~. CIIInctIr1:8: ( I IDEe_FIlII" I. 1740, ,_I I 1ASCII 1 EICDIC F.... 7. MEASUREMENTS I IIEC AItnII8F.-: , I (1,211 " a'." ."..d 0'.".c. '/ 1 IIIIX-IAI"'I'" AIIII"'ax maBll. 1 1_-1m FU. I I '''211

Running at ~ 25 sites Ofllee Uar O8Iy 9. DEVELOPMENT METHOD How w.. it ,..d."d whM"'H it ",,;IIM 1101'1 Slped: " Step 5 compiler modified by Jim Hadden UCSD. Pascal is source DoIk: Lanquaqe. Richard J. Clchrlll (. 10. LIBRARY SUPPORT An.. othe, ,uppo" c.mpO., itI the .J 'IN'" 0' Ii""..., to otlt.',,,,,.u NU," NlHwle.. elt:. On 01 A. H. J. Salr .nd B. S. I. supports Burrouqhs intra lannuaqe'0' librarv support. ""Iu"

32 Implementation Reports 33 CDC 6000 DEC PDP-i1, VAX-ii (Oregon SOftware) A ~rsion of Pascal 6000 3.2 is now avail!lblp that usps thp ASCII charactpr Oregon Software Pascal-2 spt (rath~rthan CDC Display Codp). If sufficipnt intprpst Is found, it will bp madp avallablp for distributIon throu9h thp standard Pascal 6000 MPchanlsm. o. DATE 4 November 1981 Con~y your Intprpst to your Pascal 6000 distributor or: 1. IMPLEMENTOR/MAINTAINER/DISTRIBUTORr ow. . _. -.. _ ",..,.. .J Scott Trappp Oregon Software I'f,; 92-134 Tpktronix, Inc. 2340 SW Canyon Road Portland Oregon 97201 PO Box see lIPa~rton. Q-P90n <:nVJr7 (503) 629-1717 Phone: (503) 226-7760 2. MACHINE/SYSTEM CONFIGURATION r A""__ _",.co~ ..,. CDC 7600 (Manchester) J All Digital PDP-ll processors, Including Vax-ll in compatibility o. DATE mode. All Digital PDP-ll operating systems, RSTS/E, RSX-ll, H/15/fJO RT-ll . 1. IMPLEMENTOR/MAINTAINER IDISTRIBUTOR (. G... . p...on. odd,... .nd phon. numb., Compiler requires EIS, 28K words of memory, 500 blocks of disk.. 'J 3. DISTRIBUTION r Wlto'o howIt_'.In ."".,.-. _.,."".,,,,,.,.. .J University of 'Ianchester Reqional Computf!r Centrf! Oxf.ord Rd., !Ianchester, Enqland Available from above. Write for price and terms.

'Iaintainer - Sf>e S

2 MACHINE /SYSTEM CON FIGURATION ,.Any lenaw" limit. on the configuI.rion 01.UPPO/' lof,w.,. ,~ui,.d. .,.' .) Control Data 7600 and CY~t.R 76'p.,.ting 'f.t,,", SCOPF. 2.1.5, 32/~4K/ SC~. 4. DOCUMENTATION (.WlMtf J (. 3 DISTRI8UTIO N Who to ask. how it com... in wh.t option.. .nd.t wh.t prie.. .J pascal-2 User Manual, 175 printed pages, includes Contact Collins at above address. h distribution aqreement utility guide. Shipped with order, or write for a free copy. R. J. (. fu/fy ,_. mu~t he sionf!d and the cost is ~50 sterlino. 5. MAINTENANCE I.Itunm"""'.. .c'.J 4 DOCUMENTATION (' Wh., is ..oi/.bI. ..d wh.,. ./ Fully maintained. Same as Pascal ~ooo release 3. (.Howdo..Itm...",. up at__ "_.111. It. _, E_ He J 6. STANDARD '0 ,. I, It unm.I",.in,d, fully 8} 5 MAINTENANCE "','nt.m.d, .,e' Very close to draft standard without contormant arrays. U'IR~C cannot 1I,:dertake to maintain the nroduct al thou'Th we ~lOulrl Extensions include structured constants, "otherwise" in case, he J.nterested J.n anv bUrTS in the 76110 denendent corle. I/O interface, Random access I/O, low-level machine interface extensions. 6 STANDARD (. Howdo.. it m",UI, up to .t.nd.,d P.sc." I, it .,ub,.,' E.,.nd.d' How.8J Sane as 6000 PhSCAL release 3. 7. MEASUREMENTS (. OfIta _. .J Of 7 MEASUREMENTS (' irs sp..d., sp.co '} Code is a small as and as fast as any other Digital Language Requires 50000B words ner>ory to cOMl,ile most student iobs. processor. Benchmark data available on request. (.Anylnfomr_"__,, 8 RELIABILITY r Anv info,m.t;on .bout .fi.'d s;t.s inst.lI.d_ 8J 8. RELIABILITY J u" 0' Installed at over 200 sites. Has been used in-house for Same as fiOOI1 I'hSC1\T, release 3. 2 years. . 9. DEVELOPMENT METHOD r Howw.." dewIetH

Cross cormil"cj from CYnE~ 7200comr>iler Written in Pascal, bootstrap using OMSI pascal-l

10 10. LIBRARY SUPPORT r A"yother__ ~ In",. fomr.f /In"- J, _ """'_Jt#IIrOO _. _. .J ./ Linkage to external routJ.nes"" in Pascal~ Macro, or Yor~ran. Utility programs include cross reference generator, formatter, documentation aids. 34 Implementellon Reports Implement.tlon R8p0r18 H ~I !I I

a. Intel 8085 (Cogitronics) Intel 8080, 8086 (Microsoft)

o. DATE 28 January 1981 o. DATE 1. IMPLEMENTOR/MAINTAINER/DISTRIBUTOR Gitto 0 ,-.. 'J 1. IMPLEMENTOR/MAINTAINER/DISTRIBUTOR I" _. - Donald l. Dunstan (503) 645-5043 Cogitronics Corporation Bob Wallace or David Jones MICROSOFT, INC. 5470 N.W. Innisbrook PI. 10700 Northup Way Portland, Oregon 97229 Bellevue, WA 98004

2. MACHINE/SYSTEM CONFIGURATION (' An" known U_. on thoconf/tl

lIWtoto _It .,.",... In whl8t option.. ond I8twhot,mc.. 3. DISTRIBUTION I" 'J 3. DISTRIBUTION (' 1IWt010 how It In whl8toptloM. _III -",.,.. 'J """". Bill lowery. Director of Marketing Only offered to the Hardware Manufacturers for distribution. Please Available on mechlne readable media of host computers contact OEM Sales for price and availability. Single user license $2000 Customer Demonstration Kits available

4. DOCUMENTATION (.IIWtI8tI.."oIIoblundwh.,..'J 4. DOCUMENTATION (.lIWtol/..,, 'J Cogitronics Pascal Reference Manual (available for $15) Manual - $20.00.

5. MAINTENANCE I" I. It "nmolntolnod. moIntoinod.18tc7'J ""'" 5. MAINTENANCE ('I.Itunmolnlolnod.fIIIIr molntoltlod. 18tc7'/ Fully maintained Fully Maintained. ,. E.t_7 How.'J 6. STANDARD How doo.1t ",...",."" to .tondonl P..col71.1t 0 Ho_doo. to xtondonlP_71.lto_7E.t_Ho-.'J """.t7 6. STANDARD I" Itm...",."" ISO standard (Level 0) plus many extensions .forsystems progr8lllDing: ISO standard, see validation suite results strings, address type, super arrays, attributes, value section, interfaces. Microprocessor Software Engineering Adaptations etc.

7. MEASUREMENTS 1"0flt ,"'_..J 7. MEASUREMENTS (.Oflt ,,,,_..J

Z-80 based GenRad development system compiles at 800 source lines per minute Generates very efficient optimized native code. Requires 64K system _ __. 8. RELIABILITY I"An"Infonn__ _ _,'not_d. S. RELIABILITY Infomtotlon_t _ "..'" 'J I"An" "..", 'J Product released 111/81 Relatively new but well tested.

9. DEVELOPMEN'T METHOD I" How w..1t dovolopodond whlll w..1t __1n7 'J 9. DEVELOPMENT METHOD ('Ho__..It.., ,_ _ _..It__1n7'J Developed with DEC-20 Pascal; now self-compiled. Cogitronics Pascal was written and developed In Cogitronics META complier generation system. 0_ __,., comp/Iwlnthofonnof1In._. to ot_lontlfl_. __ __. _. 10. LIBRARY SUPPORT 0_ __,., comp/Iwlnthofonnof1In~ toot_~. _. _. '/ 10. LIBRARY SUPPORT I"An" 'J ('An" -- linkage is available to externally compiled Pascal modules, externally compiled FORTRAN-77front end available, shared library. Compatible with MICRO language modules, and externally assembled routines. other Microsoft products. 37 Implementation A.porta Implementlllion Raportl .... Intel 8080 (Onacki) Intel 8080 (MT Microsystems)

o DATE O. DATE A['ril 20, 1981 AU<:Tust 1, 1981

1. IMPLEMENTOR/MAINTAINER/DISTRIBUTOR 1. IMPLEMENTORLMAINTAINER/DISTRIBUTOR H1.chael f;. Leh!l'\C\n ~teve lIarrison ~IT rUcroSY~TE"S ()nacki Systep1s 1562 Kings Cross Drive 5161 Colp Street C3rdiff,'CA 920n7 ~an Dieao CA 92117 (714) 755-13(:;(:;

(. Any 2. MACHINE I$VSTEM CONFIGURATION Anow"IImiu on the 1:0,,11.1.1,.';0"or ,uppo,' ,ohw.,. ,equlred..... 2 MACHINE/SYSTEM CONFIGURATION I.Any rIt. "lfl..'MIon Of .ohw.,. ,-.III,.d. ..g. ."ow" II""" 0" ~""" op.,.tl". .y"... 8J Radio ~hacles TRS-Rn Microcon!"rit~~';!,"'{ro'd;!l I and '10del III 5(:;k BOBO/ZBO Runs under the TRDO~ operating system CP I"~ re,,!uired 24 by BO CRT

3 DISTRIBUTION (. Who 10.slt. how it com.,. in wh.t options. .nd.t wh.t price. (. pm.. .} -J 3 DISTRIBUTION Whoto .sll. how it com... in wh., option,. MttI., ""It., Available From Onacki systems From ~IT HicroSY~TI:M~, on floppy diskettes, $475 (suqqested retail) Cost: $239 (discounts available on volune orders, write for information) (no options] includes screen pditor w/ proqran proofreader Distributed on 5.25 inch diskette (checks syntax, spelling, reformats, etc.) Please specify '~o<1el I or '10del III micro"oMputer

4 DOCUMENTATION (.Wh..i...MI.bl..ndwh / 4. DOCUMENTATION t. Wh.. i. .vMI.bt. .nd wh... ./ User r.1anual" whi"h is included with purchas!>, describes how to use 1B5 page User.s Guide supplied with Systf!M the conpiler and the points ot' difference 1~ith I~O DP195.1 DP7185.1 Pascal 5 JA'iM'E~ P9.'irsuni;!ilnT.in

1>.11 questions or comments will be answered by Onacki ~ystems. Fully maintained by 'IT HicroSY~Tr.'1S

The nrinci~le restrictions from ISO DP7185.1 ISO Standard with extensions: Dynamic Strings, Modular COMpilation *Procedural, Functional and Conformant-array parameters are not Bit/Byte Manipulation, I/O port access, 1nline assembly code iMn lenen ted *The aoto statement is not iM!"lementoc! *Files have been (sliqhtly) chanaed to work with TRDO~ operateinq systen MEASUREMENTS t. OfiI. .p..d .p.c. ./ .p.c. .1 0' 7. MEASUREMENTS f. Of il. .p..d 0' Extremely comn1\ct object code forMat. For example: the cOM~iler is less 15nk bytes of disk space flonnies than Bk bytes 40n lines/r1inute on 4 I.Ulz ZBn with B" 8 RELIABILITY Any ,,,form.'ion .bout fi.ld un or .it.s in,f.lI"d -) (. Any inlo,mationabout li.ld u,. ,it.. in.t","1/ .} (- 8. RELIABILITY 0' An earlier version of this con~iler has been in use for 2.5 years Ilore than 1000 field sil:es installed

9 DEVELOPMENT METHOD (.How w.s it d.'II./op.d ."d wh.t w.s it w,irt." in'.} Conpiler is written in Pascal and was written ann is maintained on a TRS-80 1.10del I cOMputer with

o LIBRARY SUPPORT ,- Any oth., support oll;n/(.g.. to oth., I.ngu.g... .} (e Any oth., support/o, compll., in th. 10,," o/lin" to ot"-, langua,... IOfHC. NIH.n... .,C. .} 10' comp".,in th. 10'," 'OU'C. lib,.,i... .tc. 10 LIBRARY SUPPORT Addi tional r!eclaren nrocedures and functions allow acce"s to the TR~- 80. s Larqe suhroutine library of portable and Machine dcnendent procprlures araphics, rannoM number generator, etc.. a~ well as access to machine (more than 1nn routines) lanquage routines Implemenlallon Reports 39 38 Implementation Reports Mostek 6502 (Abacus) f Motorola 6809 (OmegaSoft) O. DATE January 2, 1981 O. DATE 1. IMPLEMENTOR/MAINTAINER/DISTRIBUTOR (' Giv. . PMlon. MIl ",...,.. """"..,. ') I 1. IMPLEMENTOR/MAINTAINER/DISTRIBUTOR GiY. . p.,'o~. ""_., _II phon. numb.,. Abacus Software I' 'I P.O. Box 7211 OmegaSoft Grand Rapids, Michi~an 49510 P. O. Box 70265 I Sunnyvale, CA 94006 2. MACHINE/SYSTEM CONFIGURATION An. on tltoeo~/ill"'otIotJO,"u_'ohw.,.,,,,,";,.II. ..11. ."0"""_' 2. MACHINE/SYSTEM CONFIGURATION " op.,.ting .,.,.",. -} I" A"y /mow" Nmit. on thoco,"""",otlotJ0,"_ ..hw...... ,,_. ..11. t APPLE II,APPLE 11+ with DOS _,ot/..,.,.",.,) 11otorola 6809 compiler PET/CBM New ROMS l6K/32K cassette or diskette ~mos version: ~1DOS09 03.00 8K RAIl for operating system plus 24K or more at $2000 for cOMpiler, 2 or more disk drives, at least one drive caoable of reading a sinqle-sided disk in the standard ~DOS format

FLEX version: 6809 FLEX V3.0, 8K RAM for operatin~ system plus 24K 3. DISTRIBUTION (' Wltoto NIt. how It _.. lit whot option.. MIl ot whotprloo. or more at $0 for compiler, 2 or more disk drives, at least one capable APPLE II/APPLE 11+ standard TINY Pascal 35. diskette of. reading an 8 or 5.25 inch sinqle-density, single-sided, soft-see- APPLE II/APPLE 11+ ~raphics TINY Pascal PLUS : 50. diskf'tte tored disk in the standard FLEX format PET l6K/32K standard TINY Pascal $40 cassette PET l6K/32K standard TINY Pascal $35. diskf'tte Other formats: contact omegagoft for availahility PET 32K graphics TINY Pascal PLUS+ $55. cassette PET 32K graphics TINY Pascal PLUS+ $50. diskette

(. __., wit., ",;ce. -, 3. DISTRIBUTION Who IDed. how,t come.. in wh., ""rio".. 4. DOCUMENTATION (' WIt.tl.."oIiobIoMIl wh.,.. ') Available from Omeqagoft TINY Pascal User's Manual $10. refundable with order Cost $200 with run-time library object of software $250 with run-time library and source 5. MAINTENANCE I" I. It _moiIttlliltod. IuIJy moiIttlliltod. .tel') Includes compiler, assembler, loadp.r and debugger in obiect fOrM. Manual Will correct any problems found by users. utilities in object code and Pascal source, and user

6. STANDARD,. How ...It _au,. lIPto.,__ P..coIll.lt. ..,b..tl E.tMdedl How.') 4. DOCUMENTATION Wh.ti, ...iI.bl. .nd ""h.,.. '1 " User manual, included with purchase, available seperately for $20 Subset implementation with p.raphics extensions for PET and APPLE II.

7. MEASUREMENTS Oflto__.,_. (has HEX, STRING types: only textfilesf oriqined variables, EXTCR~AL I" ') procedures: OTHr:R~nSE/ELgE in case statements, no non-local nota's: '... power operater: string concatenation, and, or, not on numbers) (May be one of the More complete implemantationsof rascal for micros) 8. RELIABILITY Any Hour _"..., 8It..I".,_. ') I" 1 MEASUREMENTS 01 its sp..11 0' SP'C' '1 Cver 200 users of TINY Pascal. " TINY Pascal PLUS+ just released. 9. DEVELOPMENT METHOD I"Howw..1t dovolopod_ whotw..1t w_" IItl') BASIC and 6502 Assembly langua~e 9. DEVELOPMENT METHOD Ie How INiI.ir delle/oplld end wit. w.. it written in'-/

10. LIBRARY SUPPORT ,., I"A"yoth... littho_ of/In"-. to or"., 1IIIt/lll_'.__ IIIH_.. .re. ') --' -"'" Not required Additional predeclared procedures and functions for strings, files 40 Implementation Aeports Implementation Report. 41 8.

Texas Inst. 990 (TI) 2ilo~ 2-80 (Ithaca)

O. Release 1.7, Auqust 1'181 DATE o. DATE May 12, 1981

IMPLEMENTOR/MAINTAINER/DISTRIBUTOR Giv. . p...on. I' .dd.." .nd phon. numb.,. '} 1. IMPLEMENTOR/MAINTAINER/DISTRIBUTOR(" Q",. . ,...". _.. _ ,,- ,,_. '1 Imolementerl by Texas Instruments. Information is available from Ithaca Intersystems, Inc. PASCAL/Z TI sales offices, or \~rit~ to: 1650 Hanshaw Road Texas Instrurn~nts, Diqital Systems Group, '1"784, p. O. Rox 1444, P.O. Box 91 Houston, Texas 77()01 or call (512) 251'1-7305. Ithaca, New York 14850 Problems should be rerorted to: Texas Instruments, ~o~tware Sustaininq, '152188, P.O. Rox 290~, Austin, Texas 78769 or call (512) 25/'1-74'17. 2 MACHINE/SYSTEM CONFIGURATION (. An~ known on th. conliguT.fion suppo,t .oft.,.,. '.quIT.d, .... 2. MACHINE/SYSTEM CONFIGURATION (.A"" "IM ",_..Irw___..... lim'" 0' comriler runs on The '1'19'10/11'1ri'P"'f\Vf),,'r''';{.,mputerund('!r the OX1 I')or Z-80 system with minimum of 56K me~~i~~d~ng the CP/M operating gystemJ o'ins o!,er<'ltinq system " ('1'105'1'10 system 'lode I 4 or l<'lrqer, with , <'It least and one disk drive. '12K bvtes of memorv). The cOMpiled and li~l:er1 ohj('!ct procrrams c<'lnbe executed on (64K and two disk drives recommended for serious program development) an" menber 01' the '1'10cOMPuter f11lT1ily(1"5<1'1/'1or OS990 system) usino th':! '1'X5. TX<1'10, D;{1 I), or D'IOS onerati"q system. (. 3 DISTRIBUTION Who to .s', how it com.s. in wh., options. .nd.t wh.t .J P"", 3. DISTRIBUTION('W1totouIt._ ft_..In _., _"".. '1 Available on Macrnetic taoes, disl: ""Cl:, or r1iskettes. Contact" Package includesobjectcode for Pascal/Zcompiler,ASMBLE/Zmacro-assembler, T1 salesMan for a "rice quotation anet Further netails. LINK/Z linker/loader and SWAT, our interactive symbolic debugger. The 4. DOCUMENTATION I' Wh.,I, ...iI.bl. .nd wh.,.. ') libraries are provided in both object and commented source code (Z-80). T'1e TI p<'lscal lanquaae is speci fie,] i.n the T1 Pnscal ~I'!fE'rence "l\nulIl Also included are a number of support and example files and programs, and documentation. TI part number 2271'151'1-<1701.Instruction!'! for usincr the compiler Available on CP/M compatible diskettes from the distributor--contact <'Inrl 8" Jinkinq and executino Pascal oroarams are oiven in the "DX10 '1'1nl\sc<'ll Intersystemsfor informationon obtaining other formats. rroor<\:"1/11ers Guide", part nUT1h~r 2271152[1-1)7111 anu the' 'D:IOS TI U:S.{Dom)retail price: $395.00 rascal Proqra~p.rs r.uine", oart number 22711517-'171')1. 5. MAINTENANC E (." it unmeinr.ined. fully m8i"t.in.d, .te' 8} 4. DOCUMENTATION("W/lot, _ _. '1 T1 Pa~c~l is n full su~ported product. nua renorts are welconed and Over 300 pages of documentation, including: the Pascal/Z Implementation Manual, maintenance and furt~er develonmentswork ar~ in proore~s. ASMBLE/Z, LINK/Zand SWAT manualsand.theJensen & Wirth USER MANUALAND REPORT. 6. MAINTENANCE ("I. ft_t_. ftIIIy_t_. _1'1 Updatesapproximatelyevery threemonths,availablefor a nominalchargeto TI Pascal has sone di~fer~nces from standard Pascal. The Major differences registeredusers. are: * A aote> cannot be used to ;U1'10out of a nrocerlure * The control variahl~ of a'rOR statement is local to the loop. 8. STANDARD ("How".ftm_upto__,.ft._,E_How.'J * The precenance of noolean operators has been Modi~ien to hp. Closely follows Jensen & Wirth definition. Exceptions. No GET/PUT (our READ/WRITE t~e s~ne as in Alool and PORTnA~ routines have been expanded to handle all I/O functions), no PAGE, no procedural ~he stanrl"r'] nrocerlurm; r.r.T anrl T>UT have he en replacf'rl by * parameters. Extensions: Direct File Access, Variable length strings, EXTERNAL qenerl\llizeJREAD <'Ind '''RITE nroce(!ure~. routines, separate compilation, INCLUDE files, variant records implemented, TI Pascal has nanv extensions to stanrlard ra~cal inclurlino randOM ELSE on the CASE statement. access files, dyni\l1\icarravs, ESCAPE and ASSERT state!'1ents, ontional OTHERI-1ISE clause on CASr; statements, and ':ormatted R"=Af). 7. MEASOREME NTS ill ,pood 7. MEA8UREMENTS (" Of I' 0' 0' 'p.c.. '} Its __ 01_. '1 The conpiler occu~ies a 64K hvte nemorv reaion. Running the Erasthones sieve on page 54 of the USER MANUAL AND REPORT (with a 8. RELIABILITY'. Any ;nfO/m.f;on.bout fi.ld us. 01,it., i"".,,.d. .} WRITE statement added to display) 6K COM file ran in 45.85 seconds, much better T~c systen h liS been use,] by several (11~ferent

!

Machine Index

Zilog 2-80 (Cogitronics) M8chlne (oper8tIng 8yatem) l88ue:pege Comm8nt8 All ",5:,0, 1~ S) BESM-6 ",5:,07 ""'" Bunough8 85700 ",5:,07 ~~ Int~l sees. IIum>ugh8 B87OO/B7700 (MCP) ",8:,13 coc 110OO ",8:,,5 CDC 110OO ",5:108 Cyber70 , 170 ",5:,08 D C POP.11 "'5:1,1 DEC POP.11 "'5:,,2 UC80 ...... DEC PDP.11 ",8:1,5 UC8D_ DEC PDP-11 ",5:124 DEC POP.11 (RSTS) ",5:,00 S DEC POP-II (R$)(.IIMt1AS) "'7:118 DEC POP.11 (RSX.IIM/Rf'11) ",5:,01 ~- DEC POP-l1 (UnIx) Zilog 28000 (Microsoft) DEC PDP-11 (UnIx) "'5:'"",5:100 I! DEC POP.11 (UnIx) ",5:103 DEC POP-15 ",5:,24 - DEC VAX ",7:. ~~ Int~ 1 8080, 8086. DEC VAX (UnIx) ",8:115 DO EdipM "'7:108 DG EdIpM (AOS) DO EdlpM (AOS) "'5:"0",5:,08 DO EdlpM (lIDOS) ",5:,08 DG Nova (AOS) ",5:,,0 DIgIco MIcro II1E "'5:113 Facom 230-455 Ganeral_ GECI082 ",5:1,3"'5:"2 GoIam 8 (GOBOS) ",7:,04 HP 1000 "'8:"8 ~ 8000ISartea eo l.aY8I 118(GCOS III) "'5:"3 ~ l.aY8I8 -"5:113 Zilog 2-80 (MT Micros~stems) IBM 3033 "'8:'20 IBM 3801370 ",5:,,5 IBM 3801370 ",5:114 IBM 370 "'5:'24 ~~ Int~ I 8080. IBM 370 ",7:,04 IBM 370 "'7:'02 IBM 370 "'8:,,7 IBM 37O/303Jr/43xx ",8:,,7 IBM SaItaa 1 "'8:1,8 IBM SaItaa 1 "'5:"4 ICL 1800 "'5:"8 1n181808OI8085 "'5:"8 1ntal1IOeoI8085 ",5:". InI8I 808018085 "'5:,,8 1n181808OI8085 ",5:117 1n181808OI8085 ",7:,02 InI8I 808018085 (CP/M) ",7:,05 InI8I_(T~ "'5:100 TIny- InI8I_ ",5:118 1ntaI_ "'5:'08 MOS Tech 8502 (AppIa) "'5:107 UCSD ...... Modcomp II and IV - "'5:,20 _188800 ",7:,02 MoIoroIa 8800 "'5:,20 _8800 ",8:,2, _8800 "":120 _ 8800(Flax) ",5:123 "'8:,21 --_8IOe_ "'8:103 8IOe(MDOSOII) ",7:102 - _ 10and 100(SInIranIII) "'8:121 _~3220 "'5:122 _Elmar7/18 "'5:121 ReA 1802 "'7:103 ReA 1802 "'5:122 7.748 ",5:124 Spany-UniYac V77 "'5:124 T__880 "'7:,0' Te__8800 "'5:124 ZlIogZ-eo "'5:,24 ZIIogZ-eo ",7:. ZIIogZ-eo ",5:124 Implementation Reporta 48 .. Irnplemenlatton Report. Machine (opendlng sy8tem) Is_:P898 Comments ZiIogZ-80 #17:104 ~ YtUM "f/~ YtUM "f/~ YtUM "f/~ YtUM y~ Zliog Z-80 #19:123 ~ ~ ~ ~ ZliogZ'80 (CPIMO) #17:103 ZiIogZ-80 (TRS-80) #15:124 ZliogZ'80 (TRS-80) #19:124 HP 3000 Series 33 ZliogZI80 #15:118 ZiIogZI80 #15:119 Zliog Z8000 #15:119 Autbon: Paul J. Campbell and Charles R. Williams ican National Standard. Institute (ANSI) Pascal." Beloit College, Beloit, WI 535II, USA (Puca1I3000 Reference Manual, p. I-I). Programs in the validation suite were compiled Puc:aI Proceooor ldentllkatloll with the compiler option ANSI ON, so that the com- Computer: Hewlett-Packard 3000 Series 33 run- piler would issue a warning when it encountered fea- Fo,," UMA:12041S ning under operating system HP 32033 MPE IV Version tures not lepl in ANSI Standard Pascal. In the section. C.DO.20 below, warnings of this nature are either mentioned ex- USUS MEMBERSHIP APPUCATION Proceooor: Pascall3000 Version HP 32106A.00.03, plicitly or the feature involved is marked as a feature which Hewlett-Packard asserts is an extension of the of HP Standard Pascal. The validation suite itself con- I am applying for membership as proposed ANSI Standard Pascal (May 20, 1981version). tains some defective tests. Those previously reported an Individual ($20.00 U.S.) by Wichmann [ an organIZation ($500.00 U.S.) Installation: Beloit College, Beloit, W153511, USA 1983]are marked "ignore test output per Wichmann. Test CondItions " These rales are for 12 months of membership Tested by: Paul J. CampbeU and Charles R. Williams Prl8dpsl DeYiations Date: July-August 1982 . GET is implemented 81 a "deferced" get in or- Validation Suite Venlon: 3.0, (issued 8 January der to facilitate interactive 110 ----- 1982), which appears to test agreement with DP7185.1. . real numbers are not written correctly to files Affiliation the second draft of the proposed ISO Pascal Standard . a FOR loop variable may be altered from within ~" ~----- its loop, and it is still defined after completion of the Address Report Sent To: loop Lance Carnes, Editor, HP-3000 Speciallntere.t Group . pointen which are still needed are allowed to be Country for Pascal (SIGPascal), TEXET Company, 163 Lin- disposed, and pointers with explicit tag values are han- Phone den Lane, Mill Valley, CA 94941 dled in<:orrectly TWX/Telex William J. Cody, Applied Mathematics Division, Ar- . a procedure call may be bound to a wrong de- gonne National Laboratory, Argonne, IL finina occurrence Option: Do NOT print my phone number in USUS roslers Jean Danver, Hewlett-Packard Company, Information . the LN function has larae relative errors (about Optkm: Print ONLY my name and country in USUS roslers Systems Division, 19420 Homestead Rd., Cuper- 10%) for 81'JIumentsnear I Option: Do NOT release my name on mailing lists tino, CA 95014 Lloyd D. Davis, Editor, Newsletter, HP.3000 Special M8In ExteIIIiou Interest Group for Education (SIGED), Director, . OTHERWISE and subranae-like li.ts may be Computer System: Academic Computina Service., 209 Hunter, The used as case-selector elements Z'BO 8080 PDPILSI.11 6502/AppIe 6800 8809 University of Tennessee at Chattanoop, Chatta- . the predefined type LONGREAL is available 8086 zeooo GA.16 68000 M,c,oEngine other noop, TN 37402 . the predefined type STRING is implemented as Bob Dietrich, M.S. 92-134 Tektronix, Inc., P.O. Box a PACKED ARRAY OF CHAR with a declared maxi- Intareated In the following Commltt_lSpeclallnterest Groups (SIGs): 500, Beaverton, OR 97077 mum length and an actual lenath that may vary at Charley Gaffney. Pascal News, 2903 Huntington Road, runtime --~ AdvartCed?tanning ConcurrencySIG PublicalaonsComm. ._.~ Apple SIG EducatIonalSIG SWExchangeLibrary Cleveland, OH 44120 . primitives are provided for manipulation of ob- Applications SIG Industrial SIG Pascal S.andard. William M. Kahan, Computer Science Dept., Univer- jects of type STRING - - - BylawsCommillee Medical Appr.SIG TechnicalInfo. sity of California, Berkeley, Ca 94720 . a function may return an object of structured CommuniCations SIG Meetings Committee User Services type - Emil Knorr, Math. Dept., Shaker Heights Hiah School, Word Proce..ing Shaker Heights, OH . constructors are available for assigning constant John Nierengarten and Dan Abts, Computer Center, values to objects of strUCtured types Send check or money order in the amount of $20 (drawn on a U.S bank or U.S. office), payable to USUS to Chip Chapin, s.c..l8ry, USUS, P.O. Box 1148, 18 Jolla, CA 92038-1148, USA. University of Wisconsin. LaCrosse. WI . values of user-defined enumerated types can be ' John R. Ray, Editor, Journal of the HP.3000 Interna- directly written to and read from files USUS stands for !he UCSD p-Sy.tem Users' Society (or tional Users Group, The University of Tennessee- . a packed array of CHAR can be read with a sin- 'he UCSD Pascal System Users' Society) end is pr~nced "Use Us", T.~ UCSO PasC8:1Sy~ter:n is a machine Independent software system deve~ to Knoxville, Knoxville, TN 37401 ate READ command facilItate soft ware pot'tabihty: Pascal was ,ts pnnclpallanguage, but now other languages such as FORTRAN, Mike Riedel, Software Engineer, Hewlett-Packard, 150 . a subprogram in any oCthe languaaes SPL, For- COBOl and BASIC a,ebecomlng available. The Socoety was created 10 promote and innuence the development S. Sunny Slope Rd., Brookfield, WI 50005 tran/3000, Coboll3000, and PascaV3000 can be called by of, and education and ,nlormation axchange abou' the UCSD p-System. To do thi., USUS periodically holds Arthur Sale, Dept. of Information Science, University a prosram in any of the other laJI8U888s -ng. aroundthe UMed States and publishes a quarterly newsletter to provide its members a forum lor technocalpr...entat","sand discus.ion and new. about the UCSDp-System and its derivatives. USUS also of Tasmania, Tasmania, Australia . conforment arrays are not handled supports a ~ftware Exchangelibrary from w~lch mem~rs can obtainsoftwarefora nominalreprooucUon Richard Sours, Math. Dept., Wilkes CoUege, Wilkes- charge. Speclalln'er..t Group. (SIG.) on tOpiCSIncluding !he Advanced Planning of new .ystem featu..s Barre,PA CONFORMANCE TESTS Pascal and ~rd. Processing have been formed, and others will ~ 'orm as the Interestclevetops,USUS B. A. Wichmann, NPL Number of tests run 154 ISa non.prorit organization and is Independent 01all vendors, invalid 3 Introduction irrelevant o UCSD p-System y. I irrelevant 0 claiming that a "set of this size cannot be constructed." 6.1.7.\2 String constants are indexed. dard requires EOF(fyle) to be true under this circum- - stance; it is fyle" that is required to be undefined. The detectina compiler buss 0 The standard requires the expression to be interpreted 6.1.8-5 Space may be omitted between a number - compiler abides by the standard. as the empty set. and a following word-symbol. t 6.2.1.8,6.2.1.10 6.9.3.2-3 The statement REWRlTE(f) must be DetaIls or "valid Ie8b 6.9.3.5.2.1 Multiple declaration parts are f - - The fixed-point representation of allowed: the CONST.-TYPE. and VAR sections can be inserted before the call to write to f. With this correc- A standard fune:tion may not be used real numbers is 110twritten correctly to textfiles. as the I '.6.6.1-1 - repeated and intermixed. The LABEL section must i tion. the compiler passes the test. as parameter to a procedure. number 0.0 is written a .0 instead of the required 0.0. still precede, and the procedure and function sections 6.6.6.2-11 Because this test relies on non-detec- The compiler omits the initial zero for all positive reals I - follow. the block of CON ST. TYPE. and VAR sections. Details or tests fallina to deted elTOrs tion of underflow at runtime. the procedure MACHAR between 0 and I. (HP Standard Pascal feature) I has to be modified to trap run-time undetftow and con- 6.4.3.3-10 throuab 6.4.3.3-13 - Undefined 18&- 6.3-9 The value of a declared constant may be fields in variant records are not detected. tinue execution. (This is accomplished by using the EXTENSION TESTS - compiler library routine XARITRAP). Even with this specified with a constant expression. (HP Standard 6.5.5-2 - Compiler fails to detect the change in Number of tests run Pascal feature) value of a file buffer variable when used as a global var- modification, the prngram fails 10produce results com- pletely agreeing with known features of the processor. 6.4.3.3-8 - A warning instead of an error message iable while the buffer variable's dereferenced value is DetaIls of Ie8b is issued if a case label is not within tag or select expres- passed as a VAR parameter...... PlOD ,.... sion range. 6.5.5.3 As for 6.5 .5-2. except that here the buffer t C1" 1.. 6.1.9-7 - Equivalent relational symbols are not - .... -.. - ..... defined. 6.4.5-\2 - To compare two string literals. the com- variable is an element of the record variable list of a piler blank-fills a shorter one. (HP Standard Pascal WITH statement...... n.u.,., .ap...,.111t18 6.1.9-8 - None of the alternate symbols %, %=. feature) 6.6.2-9 - Compiler does not detect that a function ."pitt.... " .= is defined. 6.6.1.5 Formal parameters may be repeated in identifier has not been assigned a value within the fune:- 6.8.3.5-16 - The alternative OTHERWISE is ac- the subsequent- procedure declaration of a FORWARD tion; the standard requires such a function identifier to - cepted in a CASE statement (HP Standard Pascal ...... eI ...... _._ procedure. (HP Standard Pascal feature) be undeftned. (The test would be enhanced by reveaJiDa fer 8101t.UU_U" feature). - 6.6.2-5 f what value (if any) is assigned by execution of the 1...~()I.. - A function may return a set. an array. or I _ . a record instead of an object ofsimple type. (HP Stan- j function. ) - 1.1 ,...... ( ) I.t DEVIANCE TESTS dard Pascal feature) -.. ji 6.6.5.3-6 - Compiler fails to detect disposinc of ...... , lit...(1IIe1..... " Number of tests .....)...... tw run 115 6.8.3.5-7 - Subrange-like lists may be used as a pointer variable which refers to a current actual VAR 1" invalid case-selector elements. (HP Standard Pascal feature) j parameter. -. 2 ...... aM.- 1.1_U8M .. irrelevant I 6.6.5.3-7 - Compiler fails to detect disposin&. n_u...... f8IIIW correctly detecting 91 Deviations not detected I within the scope of a WITH statement. of a pointer var. wi' deviations iable wllicb refen to an element of the current record- -.. _.1.81..- ... 6.2.1-6 - Declared but unused labels are allowed. n_u...... '" true extensions 13 (Note: Such behavior was not prohibited in the first variable-list of the WITH. _wi' () not detecting deviations 8 (4) draft of the ISO standard. but is prohibited in the sec- f 6.6.5.3-8 t 6.6.5~IO Compiler fails to ~ - - 1.'_.... ()1.' ,.t"" and not true extensions ond and third drafts at 6.2. I.) detect errors in the use of a pointer variable 'that wu 1.0 ..... 1.0 '.J.t. 8-OT (number of causes) I alloceted with an explicit tag value. - .-1188ttl_u...... detectin8 compiler bugs 6.6.1.3, 6.6.1 - A procedure call may be bound 6.6.5.3-11 Pointer still usable after DISPOSE. _wi' I.TIT""&-" o to a wrong defining occurrence: in these cases. to the - 6.6.6.5-7 - Compiler fails to detect error of apply- l...... t1_U.. '.uun8-YT Tests Invalid outer of the two wrong procedures. ing EOLN function to a file for which EOF is true. ,...", .....r 6.6.3-4 - A variable parameter is allowed to de- 6.7.2.2-13 Error of a negative right operand in 6.3-7 - The syntax in lines 14and 15is incorrect: note a field which is the selector of a variant-part. - the caret symbol" should be deleted in both. With these MOD is undetected. (The test would be more valuable The program assumes that maxexp c~n be cal~u- 6.8.3.9-7 - Assignment may be made within the if it revealed how a compiler accepting this construct corrections the cOlTlpilerdeviates from the standard by loop to a FOR loop control variable. lated by adding minexp to a power of 2. This reuonll18 handles it.) fails to account for computers like the one at hand, 48 Validation SlMIe Reports Valldallon Su~. Raports 48 which have a sinlle exceptionto their assumptionof a ure of 53. The values printed are ACC ~ 16.7319145. from all of the leading blanks the compiler inserts to such as leadinl I preceding the mantissa of a ftoatiAl point ACCI = .0016733; the value for ACC should be right-justify the shorter output. Using j,,:st WR~- . Iinore it [the message to inform HP if a certain number: namely. the number with exponent zero and 16.73343. TELN(X) gives asreeable results. (The behavlOfof.this error occurs], your program is correct and can be run Speed of procedure calls: The program mantissa zero is interpreted as 0.0. instead of as 2-2S6. 1.2-3 - compiler seems more reasonable than that prescnbed as is. In fact the compiler can represent all ftoatiAl point contains 228,057 procedure calls. and executes in 20.0 by the standard.) . Use a real file name [instead of '] numbers (within its range of precision) between 2-2S6 sec.. for an average of 11,400 calls per second, or an . Do not take advantage ofthe fact that this error and 22S6.not including these lower and upper bounds. overhead of 88 microseconds per call. LEVEL I (CONFORMANT ARRAYS) TEStS is not detected. because it wiD be.) The smallest ftoating point number is 6.4.3.4-4 Warshall's al80rithm executes in 0.8252 - Number of tests run II ) sec. (averase of five runs) and requires 2330 bytes of (I + eps 2- 2S6and the largest is (I - epsneg) 22S6 irrelevant 11 Here..- storage for all varibles. Addyman, A..eral., ISO DPnl85 -A Draft Proposed In the other tests using MACHAR. the procedure 6.6.3.7-1 through 6.6.3.7-10, 6.6.3.8-1 - Ignore 6.6.5.3-12 This test prosram must be compiled Standard for the I'rop'ammiAl Lanauage Pascal. is replaced by one simply assigning the known correct - test output per Wichmann. Conformant arrays are not with the PascaV3000 compiler option HEAP_ DISPOSE Pascal News Number 18 (May 1980) 2-70. ["ISO values. ON; the default setting is OFF. (This option is not avail- handled by PascaV3000. First Draft] (The following changes should be made in the text able in Ihe HP Standard Pascal subset.) of the long initial comment of the test 6.9.2-6 should be Concluding Comments Differences Between the Draft International and Amer. 6.8.3.5-12 - Use of a case constant of the same ican Pascal Standards, X3J9I82-102 JPCl82-102, 5 6.9.1-6 negeps should be negep. and it is the largest in base type as the case selector - but outside the sub- Compiler errors discovered by users of Pascali pp. . magnitude negative integer. . .) range of the case selector type - results in a compile- 3000 and reported to Hewlett-Packard are published DP718~ Specification for the Computer Prosrammmg time error. monthly in the Software Status Bulletin for Program DeI8lls or Implementatlon-dependencles Languaae Pascal 97/SC 5 N 595 (January 1981). Pas- Team 3000. Most of these errors involve extension or cal News Number 20 (December 1980) 1-83. ["ISO (., Details or tests railed 6.1.9-5 - The alternate comment delimiters other feature which do not involve the Pascal standard, Second Draft'1 . .)are implemented. Very large values: Each very larse value but some involving the standard were not caught by the 6,1.5-9 - DP7185 Specification for the Computer ProgramnuD8 6.1.9-6 - The equivalent symbols@ for up-arrow produces an error message. Validation Suite; Langoage Pasca197/SC 5 N 6d78 (4 November 1981), and (. , .) for braces are implemented. 6,1.8-6 Compiler fails to issue a warning for a . Inteser multiplication by (- I) crashed an earlier 88 pp. ["ISO Third Draf"] 6.4.2.2-10 MAXINT 2147483647 - - = = 2"-1 possible unclosed comment. version (Version 00.00) of the compile~ . HP 3000 Support Systems, PascaV3000 Reference Man- 6.4.3.4-5 The base-type of a set may have as 6.4.3.2.6 . The invalid use of declared vanables whIch are ual. 1st Edition. December 1981. . many as 32768-elements. according to Pascall3000 Ref. - The index type of an array may not be INTEGER, and the compiler prints an appropriate er- accessed within binary and unary expressions - but Joint ANSIIX3J9 IEEE Pascal Standards CO~U1uttee. erence Manual. ror message. which never have values assigned to them - is not al- American National Standard ProgrammlD8 Lan- 6.7.2.3-3,6.7.2.3-4 - In test of short-circuit eval- Fewer than 300 identifiers are allowed t ways detected, although one instance was caught by goaae Pascal, Second Draft, 15July 1982, Foreword 6.4.1-2 - uation of (A AND B) and (A OR B), only the first in a declaration list. + 81 pp. expression A is evaluated. It is possible to force full Test 6.2.1-11 6.6.6.2-8 Test of EXP function produces loss of . compiler erroneously allows redefinition of the Software Status Bulletin for Prosram Team 3000. evaluation by using the compiler command PARTIAL- - f Wichmann, B.A., Status Report on Version 3.0 ofthe _EVAL OFF. the default being ON. 7 base 2 significant digits for arguments -103.762 and j reserved word WRITE as the name of a procedure 115.1674. See note below on 6.6.6.2-10. Pascal Test Suite, Pascal News Number 24 (January 6.8.2.2-1,6.8.2.2-2 Evaluation precedes selec- I (The Software Status Bulletin also features s~m~; PUG - Tests of SIN and COS functions pro- 1983) 20-22. tion in the assignments All] ;= expression, p' := 6.6.6.2-9 - times-amusiAl advice under "Temporary Solution, duce respective losses of 16 and 15 base 2 significant expression. digits for respective arguments 18.84967 and 23.56232. Actual parameters to a procedure are 6.8.2.3-2 - See note below on 6.6.6.2-10. evaluated in forward order. Intel 8085, Zilog 80 (Cogitronics) 6.6.6.2-10 - Test of LN function fails because of 6.9.3.2-6 - default field widths are large relative errors (about 10%) for arguments near 1. integer 12characters Since the PascaV3000 compiler calls system library rou- boolean : varies according to the boolean value tines to calculate EXP, SIN, COS, and LN, other com- PucaI ~r Idendftcatlon Procedures and functions may not be used as p8I'8IDCten. real : 12 characters pilers and interpreters which also use those routines Tarpt computers: Z80. 8085 (e.g.. Fortran/3000, Basic/3000, etc.) inherit the same . PAOEprocedure i. not supported. . 6.9.3.4.1.2 Tile number of digit characters writ- Host computers: GenRad ADS 2300; Tektromx - inaccuracies. A OOTO taraet must be within the current rout11le ten in the exponent e>fa real value expressed in ftoating- B002A, 8550; CDC Cyber (6000 series) or the maintiDe. point format is 2. 6.8.3.4-2 - IF statements can be nested only II ned host computers: DEC PDP-II; IBM 370; deep, not 24. No restrictions are placed upon the FOR loop con- 6.9.3.6-1 - The representations of true and false. CPM compatible systems trol variable. with parenthese s to indicate width, are 6.8.3.5-15 - CASE statements can be nested only ~r: Cogitronics Pascal VI.2C II deep. not 15. The standard tile. INPUT and OUTPUT are al- (TRUE) (FALSE) way. opened automatically whether or not they are 6;8.3.8-3 - WHILE statements can be nested only Teot Conditions QUALITY 14deep, not 15. mentioned on the proaram header. -n-: December 1980 Implicit referencel to the standard files IN,PUT Number of tests Aln 61 6.8.3.9-20 - FOR loops can be nested only II deep, not 20. TeIt8 earr1ed out by: D. Dunstan and OUTPUT are always possible, even when the Iden- invalid o Validation SuIte Venlen: 2.2 tifiers INPUT and OUTPUT have been redetlned. irrelevant o 6.9.1-8 - Test of accuracy of read/write for reals passed fails. Result was too large 47 times, equal 0 times, and 48 ! ReotrldIoaa and ExteMIons eo.ror- TeIt8 failed (number of causes) \3 (9) too small 53 times. See 6.9.3.5.2-2 for underlying detecting compiler bugs o explanation. t Due to the byte addressable nature of the target Number of teets lltempted: 139 6.9.3.5.2-2 Test to check accuracy of write for I machines, PACK and UNPACK procedures are not 127 - I "-d: Det811sor some tests possecI reals produces repeated error message "input incorrect supported. . FIlled due to rt8r\cdo8 and extenIIonI: 7 - nondigit read," The standard (6.9.4.5.2 of second PACK is ignored in declaratIons. FIlled: 5 1.2-1 - General check on execution speed: the draft, 6.9.3.4.2 of third draft) requires that WRITELN StriAls are compatible iftheir lengths are the same. program executes im 11.2 sec., corresponding to 89 (X:33:30) write 30 digits after the decimal point. PascaV The lower bound ofthe index type need not be one. Det8lII of ral1ed~ IeIt8 thousand whetstone instructions per second. 3000 Reference Manual (p. 6-41) notes that in no case No runtime checks are made. type (other 6.4.3.3-1 - Test does not conform to current ISO 1.2-2 - GAMr.t: measure: The program executes will more digits be printed than are in the internal rep- The result ofafunction may be any data standard. 3 million GAMM units in 160.8sec. for a GAMM meas- resentation. The input errors ("non-digit read") are than file.) 51 50 Validation Suite Raports Validation SuRe Reports ,.-

'-I

I

6.6.3.1-1 - Test does not conform to current ISO Error Handling Tests standard. Standard (ISO DPnJ85) appears to require that a con- 6.9.4-4 Number or tests attempled: 46 hhows maxint to be 2147483647. - Test does not conform to current ISO Pasaed: 7 forming processor distinguish identifiers that differ in Test 6.4.3.4-2 shows that a set of char is allowed. standard. any character position. 6.9.4-7 Test does not conform to current ISO Failed doe to reslrlcllona and utenalons' . 39 1Ht 6.4.3.4-2 shows that sets must be of 64 ele- - Failed: 0 ments or less, with sets of inte,en falling in the range standard. Deviance Tests Implementallon Defined Testa 0..63. Deviance Tests Number or tests attempled: 15 Number or deviations colTedly detected: 87 1Ht 6.'.6.1-1 shows that standard functions may Number or testa not det..,tlng erroneous deviations: nOi be used as actual function parameters. Number or lests attempled: 94 Pasaed: 12 '[ailed doe to restrlcllona and ute--' 3 (I basic cause) 1nt '.6.6.2: II displays some characteristics of the 1"8-.1:67 Failed:2 .-. I Number or testa showing exlenslons:2 ftoatiDJI-point arithmetic. The results are reproduced in Failed doe I.. reslrlctlona 8Dd extensions: 23 InvaUd testa discovered: 3 section 2 of lhis repon. ("Floating-Point Arithmetic 4 Details of failed implementation defined tests Failed: Details or extensions: Tesl 6.8.3.5-12 shows that Characteristics", below). 6.11-2 - Alternate operators not allowed 6.11-3 subrange-like lists are allowed as case-constanl TesIa 6.7.2.3-2 and 6.7.2.3-3 show that boolean Details or railed deviance lests - Alternate operators not allowed: elements. expressions are completely evaluated in all cases. Quality Measuremenl Tests 6.1.5-6 - Test does not conform to current ISO Test 6.8.3.5-14 shows that the "otherwise" clause '.8.2.2-1 and '.8.2.2:2 show that the variable' standard. Number or tests atlempled: 23 is allowed in case statements. on the left -hand side of an assipment statement is se- Pasaed: 21 6.4.6-11 - No check for fields of type file. DetaJIs or devlatlona not detected: Testa 6.8.2.4-2. lected before evaluation of the expression on the risht 6.6.1-6 No check for procedures or functions Failed due to reslrlclloaa and exlenaions' 2 6.8.2.4-3, and 6.8.2.4-4 show that it is possible to band side. - Failed:0 . that are declared FORWARD but are never defined. branch into if statements, between branches of a case 1Ht '-'.4-5 shows that Iwo disits are written in an Extension Test exponent. . ~.6.2:5 - No check to verify that the function statement, and into a case statement. IdentIfier ISdefined within the function. Otherwise is implemented as described in th 1Ht6.9.4-1I shows that the default field widths for e cur- Details or Invalid tests: Test 6.1.5-6 shows that rent ISO standa rd output are inte8er 12; Real- 24; Boolean -4 if true . PUG lower case 'e' is allowed in an unsigned-real numher - as specified by the ISO Draft Standard. ' 5 if false. ' Teat 6.2.1-5 contains a label that is declared but Test 6.10-2 shows that the operation neVer defined or referenced. This is allowed in the cur- REWRlTE(OUTPUT) is permitted IBM 370 (AAEC) rent version of the Standard. (The compiler issues a TesIa 6.1I-I, 6.1I.2, and '.1I.3 show that alterna- wamin8 message in this case.) tive comment delimiters. as well as the .ymbols (. .) Test 6.4.5-5 declares identifiers that are nol unique and are implemented. (Also implemented are the ) I'UcaI 8008 Version 2.0 Valldallon Suite Report records may not be written. over the first eight characters. The deviation is cor. sym.bols ~-ct and I rectly detected if appropriate changes are made to the . Details or invalid tests: Tests 6.1.2-3 and 6.3-1 re- IBM 370 (AAEC) qUIre that IdentIfiers that are identical in the first eight identifiers. QualIty MeMaremeIIt Valldallon Sulle Resuhs characters be distinguished. Both tests passed after the Number or tests run: 23 (8 modified) Idenllfiers were changed. Error h8Ddllng l'aKall'roftsoor Identification Number or errors colTedly delOt:led: 30 . ~est 6.1.8-3 shows that either form of comment Computer: IBM 3701168, Model 3 delimIter may end a comment, as specified by the ISO Number or errors no! detected: 16 (7 basic causes) ReeuIts or tests: Test 5.2.2: I shows that different I'roftsoor: Pascal 8000, Version 2.0 (27JUL80) Draft Standard, DetaJIsor errors no! detected: Testa6.4.3.3-5, 6.4.3.3- identifiers that do not differ in the first eiaht characters 6,6.4.3.3-7, and 6.4.3.3-8 show that the variant fields are not ft88JIed. . T~~ 6.4.3.5-1 c,~~tains an invalid file type decla- Test Condillona rallon ( file of ptnOi ,where ptnoi is a variable name of a record are not "undefined" when the tag field value 1Ht '.1.3-3 shows that identifiers are distinguished not a type). is changed. only over eight characlers. Tesler: Joseph A. Miner, Cornell Computer ' Services Test 6.5.1-1 attempts to define a file of files. Test 6.4.3.3-12 shows that assignment of an unini- 1Ht '.1.8.4 shows tbat a semicolon or open com- Date: July 19110 Testa.6.6.3.1-1 is invalid since one of the actual pa_ tialized empty record is not detected. ment symbol wilhln a comment is ft8lllled wilh a warn- Valldallon Suite Version: 2.2 rameters not of the same type as the corresponding Test 6.4.6-7, 6.4.6-8, and 6.7.2.4-1 show that as- mes581e. '~ ~ Note: In the body of this repon, the words "ISO formal vanable parameter. sianment of a set expression containing elements that 'n.c.U.I-8, '-2.1.', and '-5.1.2 show that IoDJI Draft Standard Pascal" and "the ISO Draft Standard" Test 6.6.3.1-5 contains invalid syntax for an actual are not within the subrange base-type of the destination Iiata of types. !abela, and variables are allowed in their set is not detected if all the elements of lhe expression refer t? the Dra~ Pasc.aI Standard ISO DP/7185 pub- procedure parameter. respective definition plUtl. lished m the Apnl 1980 Issue of Slgplan Notices and the Test 6.6.3.4-2 contains invalid syntax in a formal set have ordinal values in the range 0..63. '.4.3.2-4 shows lhat array [inteser) is not May 1980 issue of Pascal News. procedural parameter specification. Testa 6.6.5.2-6 and 6.6.5.2:7 show that a file vari- allowed. :rest 6.9.4-4 compares a line previously written to able may be modified while the associated buffer vari- 1Ht '.4.3.3-9 ShoWI that variant fields of a record Conrorm8DCCTest.. a stnng constant. The string constant does not match able is an actual variable parameter. type are overlaid in Ihe order of definition. the fo~at used to write the line. (The leat succeeds if Testa 6.6.5.3-5 and 6.6.5.3-6 show that a variable 1Ht 6.4.3.4-5 (Warshall's aJaorithm) uses 0.134 Number oUests pasaed: 126(2 were repaired) appropnate changes are made to lhe program.) may be DISPOSED while it is an actual variable seconda of processor lime with all execution tesls en- Number oUests railed: 3 (I basic cause) parameler. abled, and 0.067 seconds without tests. (By . Test 6.9.4-,7 expects boolean values to be left jus- compari- Invalid lesta discovered: 10 tified whe.n wntten to a text file. The ISO Draft Stan- Testa '.'.5.3-7, 6.6.5.3-8, and 6.6.5.3-9 show that IOn. tbe prosram uses 0.816 seconda on a 86700 wilb Details of Repaired Tests:(These tests passed after variables created by the variant form of NEW may be lhe Tasmania compiler). the errors noted were fixed.) ~ard specifies that writing a boolean value to a text file IS eqUIvalent to writing the string used in expressions and on the left hand side of assip- 1Ht 6.6.1.7 shows that five levell of procedure or Test 6.6.1-6 was missing a semicolon in the main 'true' or 'false'. ment stalements. program after the caD of procedure one. Therefore the values should be right justified. function nesting is allowed. Testa 6.6.6.2-6, 6.6.'-2:7, Test 6.6.3.3-3 had type compatibility errors be- . Note: Several tests contain declarations of iden- Implementation Defined "'''.2-8, 6.6.'.2:9, and llfiers that are identical in the first eiaht characters '-6.6.2:10 show that the ., 1Iretan. expo In. and sin! cause of anonymous pointer types. (6. L2-3, 6:3-1, 6.4.5-5, and 6.8.2.2-2). Because the VaI- Number or tests run: 15 COIfunctions are implemented without any sisnificant Detai~orralled tests: Tests 6.4.3.5-2, 6.4.3.5-4, and Number or tests repaired: I error. (Details in section 2 oftbls report, below.) 6.9.1-1 fall because OS/360 requires that at least one I~atl~n S.ulte ~ssumes that the processor only need dis- tmgUlsh Idenllfiers that differ within the first eiaht char- Det."~. or repaIred lest: Test 6.8.2.2:2 contains type 1Ht 6.7.2.2-4 sbows that division by and into nea- data character be written on each line of a text file (two compatibility errors caused by anonymous pointer ,fthe file contains ASA control characters). Zero length acters. these tests have been reponed here as "Invalid ative operands is implemented consistently, that the Tests". A more recent version of the ISO Draft Pascal types. quotient i. trunc(aIb) for ne88live operands, and that Delalls or Implementatlon-dependence: Test 6.4.2.2: mod yields remainder of div wilh ne88live operands. 52 Validation Suhe Reports Validation Suhe Reports Test 6.8.3.5-1 shows that unreachable case branches The programs were written by W. J. Cody of Ar- TIIbIe I are not flagged. gonne National Laboratory and revised for Pascal by Test 6.8.3.9-8 shows that at least 256 branches are R. A. Freak, University of Tasmania. Parts of the pro- ~ + allowed in a case statement. grams are based on an algorithm by M. Malcolm (CACM :Test: Range :L~rge :Me~n Rel~tive:Max Relative :RMS Relative: Test 6.8.3.9-18 is not relevant, since use of a for 15 (1972), pp. 949-951), with some of the modifications I: :Small: Error :Error, arg: Error : statement control varible after termination of the loop suggested by M, Gentleman and S. Marovich, (CACM '~ is detected as an error. 17 (1974), pp. 276-277). + ~ ~ ~ ~ + 1 Test 6.8.3.9.141 shows that for statements may be : 1 : 2.5000e-01: 0: -1.7565e-17: 1.1077e-16: 2.9011e-17 I i nested at least 15 levels. Machine Characteristics : 1.000e+00: 919: 1688-13.92: @2.5058e-01 : 16**-13.73 I Test 6.8.3.10-7 shows that with statements may be + ~ ~ ~ t + ~-i nested at least 15 levels. Radix of Representation Beta 16 : 1 1.OOOOe+OO:0: : : = I : i Test 6.9.4-10 shows that output is flushed at the end N umber of base Beta digits in T= 14 : 4.0000e+00: 0: : : I of the job. significand + ~ ~ ~ ~-t + ~ Test 6.9.4-13 shows that recursive I/O to the same Chopping is used (not rounding) 'Rnd 0 : 2: -6.250e-02: 29: 3.4137e-19 I 6.04~2e-17 3.2065e-18 file is allowed. = : : 6.2500e-02: 0: 16**-15.34:.1. 433ge-02I 16--14.53 iI More than T base Beta digits NgRd = I Details of Modifications participate in post + ~ + + + + t normalization after : 3: 6.2500e-02: 1438: 7.6733e~11: 2.2153e-16: 9.815ge-17 Test 6.4.3.4-5 was modified to use the Pascal 8000 multiplication : : 2.6795e-01: 0: 16**-13.38: @1.2595e-01': 16--13.29 iI CLOCK function to calculate the processor time used + by the program. Number of bits in exponent IExp 7 ~ ~ ~ t + 1 = 4 2. 6795e-01 : 1776: 4. 6<;53e-17: I. 5834e-16: 5.563ge-17: Tests 6.6.6.1-6, 6.6.6.1-7, 6.6.6.1-8, 6.6.6.1.9, representation I: : Smallest positive number S.t. Eps : 4.1421e-01: 42: 16**-13.56: @3.1675e-01 : 16--13.50: 6.6.6.1-10, and 6.6.6.1-11 were modified to disable = 2.2204e-16 arithmetic interrupts during execution. These tests gen- 1+ eps<> I + + + + + + 1 : 4: 4.1421e-01 : 358: 4.0Mge-18: 2.2196e-16 5.5'598e-17 erate exponent underflow interrupts that are normally Smallest positive number s.t. EpsNeg I i = : 1.0000e+00: 193: 16**-14.44: @5.4685e-01 I 16**-13.50, trapped and treated as an error. I-EpsNeg<> I 1.3878e-17 Test 6.9.4-14 was modified to remove the unde- +, I I I ~ t clared and unused file F from the program statement Smallest positive number XMin= 5.3976e-79 :--5-f-=;~~o;~=;~-f--;;~-f-=;~;;5;~=~;-r--;~;;;9~-16 8.7417e-17 I i parameters. Largest positive number 3.4657e-01 181 16--13.61 I 4I'5.915Se-02 I 16**-13.34 I XMax= : : : : 7.2370e+ 75 t + + + ~ + ~ CompilatioD Speed : 6: -3.4657e+00: 579: -2.2268e-17: 2.2048e-16: 5.808ge-17 i Several programs were compiled on the IBM 370/ Arithmetic Function QuaUty : : -1.4002e+02: 207: 16*.-13.8'5 :@-8.8676e+01: 16**-13.48I 168 Model 3 processor using the VM/370-CMS oper- In the twelve quality tests, various identities were + ~ + + +---: + t atillll system release 6.8 with Basic System Extensions tested with 2000 arguments randomly chosen from a : 6: 6.9315e+00: 576 : -2.3871e-17: 2.2138e-16: 6.0656e-17 release 2. The virt ual CPU times used to compile the logarithmic distribution over the stated rRIIIIe.The tests I \ 1. 7457e+02: 198: 16--13.80: @1.0817e+02: 16**-13.47 iI programs were recorded. CPU times include time spent are identified by the following numbers: + ~ ~ + + + 1 interpreting the PASCAL EXEC command file and : 7: 9. 9998e-01 : 550: -2.0664e-17: 4.3116e-16: 4.1493e-17, compiler program loading and initialization. The ver- 1. a'\rt(.*x:) 11:.0,1 I ') bn( If) .- t.run,..'t~.~1 t.'tylor Z!ll'trtltlJ. : 1.0000e+00: 414: 16**-13.86: .1.0000e+00: 16--13.60 I sion of the compiler used was compiled with all exe- 't"r cution tests disabled and without any traceback ~. qr~t'lnrx) . 'H~t"n(1/16) . Itr~t.ltn«x-'/1i))I("x/'I})) + t ~ ~ ~ ~ ~ .1. ? 'u"t'ln(...) . 'trct1n(2x!(1.x.x)) : 8 I 7.0710e-01: 0: -1.070ge-17 2.1473e-16: 6.3062e-17 information. ~xp(x* i i '1. - 0.16?'i) . exp(x}/lItxp(O.062~) f 9. 3750e-01 : 757: 16**-14.09 I 09.3741e-01 16**-13.45 I Five programs containing a total of 13,875 lines of .;. "!xp(x -).~1?()). exp(x)jexp{?~12':)} : I: I I I : code. rangillll from 1829to 3706 lines each, were com- 7. 1nlle) .. ~ T T r------. ----- l''ylor 3~rie3_ expR.n~ion of In('+y) t t I) r' t ------piled. When the programs were stored in files contain- 9. In(,) . In('7,!16) 10(17/16) I 9: 3.1623e-01 I I -1.0710e-17 3.7234e-16 9.9664e-17 I I I I I ing variable length records with trailing blanks re- q. lnr,,).. 10(11x/10) 10(11/10) 9.0000e-01 : 1072: 16**-14.09 I t8.9347e-01 16--13.29 I In(,,*x) .) . In(x)- moved, compilatiol1 speed was about 30.000 lines per 'J. . + L ~: 11. ~in\x) ";.~in(xln 4.3in(xt~).., ~ ~ + ~ minute, with a range of 23.000 to 45,000 lines per min- - _ : 10: 1. 6OOOe+01: 1503: 2. 2328e-17: 1. 1152e-16 ~. 1590e-17 ''1. "r):J(x) '" -1.'-:o"/x/~)..'i ')*.:os(x/'i} I I ute. The average speed was around 1,030,000 charac- '" 2.4000e+01: 0: 16**-13.83: @1.9817e+01 I 16**-13.70 I ters per minute. Table format + ~---~ + + t + t When the programs were reformatted in files with : 11 : O.OOOOe+OO: 1676: 7.10449-17: 3.6831e-16: 9.4375e-17 fixed-length 8O-byte records, compilation times de- From left to right: the test number, tbe argument i creased about 2%. The average number of lines per range, the number of times the result was too large or I I : 1.5708e+00: 122: 16**-13.41: @1.8953e-01: 16--13.31 I minute increased sl ightly to 31,400. and the number of too small, the mean relative error in decimal and hex- t ~ ~ + t + 1 : 11 1. 8850e+01 ~04 -6.249~e-15 2.7247e-12 6.6908e-14 characters per minute increased about 145% to 2,- adecimal, the maximum relative error and the argument : : : : I I 510,000. This increase in speed is apparently due to re- : : 2.0420e+01 : 1662: 16--11.80: @1.8850e+01 I 16--10.94 I value at which it occured, and the root-mean-square t duced CMS overhead when processing files with fixed- error in decimal and hexadecimal. (See Table Ion fol- I t + + + + + ~ length records, and high-speed skipping of blank char- lowing page,) \ : 12: 2.1991e+01: 1891: 5.6811e-15 1.3817e-12 4.016Oe-14 i acters by the compiler. , : : 2. 3562e+01 : 93: 16**-11.83 I @2.3561e+01 I 16--11.13 I + + Floallng Point Aritlametic Characteristics Several of the Validation Suite programs test the Modifications to the Validation Suite quality of the floating point arithmetic and mathemati- The following modifications were made to the test cal functions. These results are summarized here. programs before they were processed.

5~ Validation Bulta A8portl V81ldatlon Buna A8por18 Cllat-8c:RrSetCbanges ing a comma after the test number. which caused the · Thecurlybrace('{' and '} ') characters were skeleton program to stop. fists 6.8.2.4-2, 6.8.2.4-3. and 6.8.2.4-4 sbow that a FOR control variable is not invalid after execution of changed from standard EBCDIC to the text printing Test 6.6.1-7 and 6.6.5-3 fail to end with a line con- a GOTO between branches of a statement is permitted. the FOR loop. (TN) character set. taining· 'end: written in lower case in columns one Tests 6.8.3.5-10 and 6.8.3.5-11 show tbat the com- through four. piler accepts case tags wbicb are the same type as the lmple8entation DeIDed The EBCDIC not symbols used for the Pascal index. altbougb a real index is flagged as an error. up-arrow· character were changed to '@>'. The last line in the file is not a complete heading Number of tests run: 15 · Tests 6.8.3.9-2, 6.8.3.9-3, 6.8.3.9-4, 6.8.3.9-16, and Several cltanges were needed so the fileof test pro- comment with a test number of 999 (it consists only of Number of tests Incorrectly handled: 0 grams could be processed by the skeleton program sup- '{T999'). The skeleton program failed to stop correctly 6.8.3.9-19 show tbat an assignment to a FOR control DetaIls of Implementadon-depeqdence: 'lest 6.4.2.2- variable is permitted within the loop. plied with the test suite. at the end oflhe file. 7 shows maxint to be 34359738367. Tests 6.8.3.9.9 and 6.8.3.9-14 show that the FOR Sequence numbers were removed and all lines Additional repairs made to individual programs are Testa 3.4-2 and 6 3.4-4 show that all set bounds control variable may be declared anywhere, 80 long as were· truncated to 72 characters or less. noted in the Validation Suite Report. These repairs deal must be positive.' A set of char is permitted. Set bounds with programming errors or similar problems. it is declared at tbe same or outer block (tbis excludes allowed are 0 to 143. The heading comment oftest6.8.3.4-1 was miss- PUG formals, pointers. and record components). · 'lest 6.6.6.1-1 shows that no standard functions Test 6.9.4-9 indicates that 0 and negative field may be used as parameters. widths may be used in a write statement. . . '.6.6.2-11 details some macblne charactens- fist 6.10-3 sbows that "output" can be redefined tics regarding number formats (e.g.. single precision Pascal 1100 and yet still be used as the default file for write state- reals in range 1."7E-39 to 1.70E+38). ments (similarly for "input"). Testa '.7.2.3-2 and '.7.2.3-3 sbow that boolean expre88ions are evaluated only to the extent needed to Error Handling Punl Procesaor Identification determine the result. by bad code generation in loop termination tests in- Number of errors correctly detected: 18 C_puter: Univac 1100160 volving maxint. Testa 6.8.%.2-1 and '.8.2.2-2 show that a variable is se- Number of errors not detected: 28 (13 basic caUlles) lected before the expression is evaluated in an assign- I'ro«soor: Pascal 1100 Enhanced descendant of Test 6.9.4-6 fails because a string is always entirely Details of errors not detected: Test 6.2.1-7 sbows U.S. Naval Ocean Systems -Center compiler developed displayed, even if its field width is smaller. ment 8latClDent. by M.S. Ball that local variables are not preset to "undefined". Testa 6.9.4-5 and 6.9.4-11 show that the default size Test 6,9.4-7 fails because TRUE is rigbtjustified. fists 6.4.3.3-5, 6.4.3.3-6. 6.4.3.3-7, and 6 3.3-8 Version 2. ULR, Updated 10/26181 for the exponent field on output is 2, and the real. in- indicate that no checking is performed on the ta&field Note: This is not a Univac supported product. Deviance 'Jests of variant records. tell'r, and boolean default field widths are all 12. However, versions of it are available through the Uni- That sbows s rewrite on the standard file Number of deviations correctly detected: 54 fists 6.4,3.3-12 shows tbat an asslanment to an '.1"2 versity of Maryland. empty record is not detected. "output" is not allowed. Number of tests showing true 9 Testa 6.11.1, 6.11-2, and em""""': '.11-3 show that alterna- fist Conditions Number of tests not detecting erroneous devladoas: fists 6.4.6-7, 6.4.6-8, and 6.7.2.4-1 indicate that no tive comment delimiters have been implemented, as 31 (13 basic causes) bounds or overlap cbecking is performed on set T_r: L L. Ruben ("unofficial" maintainer of the bav. the alternative pointer symbol ("@"). No other operations. symbols from thelle tests arc accepted. compiler) Details of extensions: Tests 6.1.5-6 sbows tbatlower Test 6.6.2-6 shows that the use of a function witb- Date: October 1981 case e may be used in real numbers (e.g. 12.34e-12). out an assignment to tbe function-value-variable is Q811tyM-.e_ Validation SUllteVersion: 2.2 Tests 6.1.7-4,6.1.7-9 (cases Ito 4). 6.1.7-10, and permitted. 6.4.5-11 sbow tbat a right-hand side string constant (or Testa 6.6.5.2-1 and 6.6.5.2-2 fail because I/O bas Number oftsts ru: 23 Conformance Tests value procedure parameter) is made the same length not been implemented according to tbe standard. Also, Number of tests IIoeornetIy handled: 0 (padded with blanks or truncated) as tbe left-band side Number of tests passed: 125 cbaracters are written to 1100 text files in multiples of RenIta of tests: That 5.2.2-1 shows that identHlers (or formal parameter). In otber words, string constants are nol distinguished over their whole length; only the Number of tests railed: 14(10 basic causes) 4, padding with blanks if necessary. Tbus, eoln and eof are made to conform acro.. binary operators and IIrst 12 cbaracters are used. Det.11sof failed tests: Test 6.2.2.3 contains a scope do not occur where expected in the tests. error which is not detected by the compiler. assignment. fists 6.6.5.2-6 and 6.6.5.2-7 fail because the com. Tell '.1.3-3 shows the number of sianiflcant char- fist 6.2.2.8 fails because the compiler restricts as- Test 6.4.2.4-2 sbows that real constants are per- piler does not detect (invalid) operations on buffer"... 8cfen In an identifier is 12. signmentto a function identifier to that function's block mitted in a subrange declaration. iables Jl888ed as a procedure or function pIIf1UIIeteror '.1 shows that no W8I'IIiII8is siven if a valid level. Tests 6.8.3.5-12 and 6.8.3.5-13 sbow tbat a sub- changed within the range of a WITH statement. It8tement or a HmicoIon is detected in a comment. range used for a CASE tag is accepted. Also. overlap- Testa '.%.1-8, 6.%.1-9,and 6.5.1-2 indicate that tarae Tests 6.4.2.2-5 and 6.4.2.2-6 fail because the Testa 6.6.5.3-3 and 6.6.5.3-4 fail because dispose ping and duplicate ranges are detected. . Hsts of declarations may be made In eacb block. expression is too long for the code generation scheme (under full memory management support) "ianORS" fist 6.10-1 shows tbat "output" is a predeclared pointers that do not point to tbe beap (N IL bas the value Test 6.4.3.2-4 shows an array witb an intelllr index utilized. Note however. that the ASCII collating se- type is not permitted. quence is used, so that these tests would pass if the IF file (note, "input" is also). 0). Note, Pascal 1100 supports three levels of memory statements were broken up. DetaIIoof deviations not detected: That'.1.2-1 shows tDIUIIIICmentconfigurations (under user option). Under That 6.4.3.3-9 sbows that variant fields of a record that the reserved word NIL may be redefined. occupy the same space, using the declared order. Test 6.4.3.5-1 fails because the compiler only al- the other two configurations, these tests pass. lows a file declaration consisting of a file of type. The Test 6.1.7-6 sbows tbat tbe index bounds of a string 'Jill 6.6.5.3-5 fails because dispose successfully That 6.4.3.4-5 (Warsha1l's aJaorithm) took 350 ms. lest has a file of variable (????). are not restricted to I. .n. releases tbe space allocated by new (is this test wrong to run (on 1100(60). Tests 6.1.7-7 and 6.1.7-8 show that strings are per- 7717). Test 6.'.1.7 shows that procedures cannot be oeated fists 6.4.3.5-%, 6.4.3.5-3, 6.9.1-1, and 6.9.4-4 fail to slevel areater than 9. because characters are written to 1100text files in mul- mitted to be an array of a subrange of char. That6.'.5.3-6 sbows that no check is performed for tiples of 4, padding with blanks if necessary. Thus, the Tests 6.2.2-4. 6.2.2-7. '.3-6, and 6.4.1-3 contain a I leOping on the parameter to dispose. Testa 6.6.6.2-6, 6.6.6.2-7, 6.6.6.2-8, '.'.6.2-9, and eoln and eoffuncti ons do not occur where expected in scope error wbicb is not detected by tbe compiler. t fists 6.6.5.3-7, 6.6.5.3-8, and 6.6.5.3-9 fail because '.'.6.2-10 tested the sqrt, arctan. exp, sin/cas, and In these tests. Tests 6.4.5-2, 6,4:5-4. 6.4.5-5 and 6.4.5-13 indicated i no checks (other than type compatibility) are done on functions respectively. No sipificant errors were reported. fist 6.5.1-1 fai Is because a file of a type, tbat type compatibility is used witb VAR parameters the pointer assipments tested. A cbeck is done. ~ow. where the rather than enforcing identical types. ever. that a pointer points to the area allocated to It by Test 6.6.6.2-9 (sin/cas) produced an "out of range" run- type contains (or is) a file type, are not permitted by the compiler (i.e., a file of files is not supported). Test 6.6.2-5 shows that a function witbout an as- new. time error on the last test in the program. The araument signment to tbe function variable in its block compiles Test 6.6.5.2-3 I'ails because a reset is not allowed fists 6.6.6.3-2. 6.6.6.3-3, 6.7.2.2-6. and 6.7.2.2-7 was outside tbe acceptable rang6 allowed by the 1100 and runs. on a file that was never written to. fail because overflows are not detected. The values math library for the sine function. Tests 6.6.3.5-2, 6.6.3.6-2, and 6.6.3.6-4 fail because Test 6.8.3.9-7 fails due to a infinite loop introduced eventually 110negative due to the overflow. That '.7.2.2-4 sbows that mod and div are consist- parameter base types are the same (integer). fists 6.8.3.9-5, 6.8.3.9-6, and 6.8.e.9-I7 sbow tbat ent for negative operands except tbat when i mod 2 56 ValidationSune Reports Validation SuM. Reporla 57 r

IT

(kO) is O. it is represented as a negative 0 on the 1100. than 15. Thus the expression i-j div 2.2 fails to compare with i Test 6.9 10 shows that file buffers are ftushed at ual the space required would have been 5120 bits 0'640 cease to exist. A reference to that fI~lddid Dotcause an mod 2 for the even cases of negative i. Mod returns re- the end of the program. bytes. erro; 6.4.3.3-6 mainder of div. . Test 6.9 14 shows that recursive I/O is permitted. Test 6.6.1.7 Failed: Procedures cannot be nested FaIled: A reference to a field with the Test 6.8.3.5-2 shows that case constants do not using the same file. more than 8 levels deep. undefined value did Dotcause an error. The undefinition have to be of the same type as the case-index. if the arose because a change of variant occured ~d tho.se case-index is a subranse. But the constants must be Extell8ions Contormance tests fields associated with the new variant come mto eXls- type compatible with the case-index. teDce with undefined values. Number ot tests rUB: I Number ot tests rUB: 138 Test 6.8.3.5-8 shQws that a large CASE statement Number ot tests tailed: II Test 6.4.3.3-7 Fa1Ied: A reference to an Undefl~d (> 256 selections) is permissible. Details ot test: Test 6.8.3.5-14 shows the compiler . field did not cause an error. In this case the vanant does not accept OTHERWISE in the syntax given in Test 6.1.Jl..2 Failed: A opening curly bracket m a Test 6.8.3.9-18 shows that the compiler ensures comment is not allowed. changes occured implic:idy as a result of assignment to that because the FOR control variable is available after the test. However, it does accept OTHERWISE (and . . fields. ELSE) when used in the syntax of a CASE label. Fur- Test 6.1.Jl..3Failed: The closins comment ~lilD1ter the FOR loop. the final value is the final value of the does not have to be ofthe same type as the opemlll one. 1nt 6.4.3.3-8 Fa1Ied:As for 6.4.3.3-7 except no tag loop (not I greater or less). Thus the range checks (al- ther. many other (non-standard) extensions are pro- field is used. vided to allow Pascal 1100 to be used for implementa- Test 6.2.2-1 Paaed: The identifier name range ~p- ways generated) in the CASE accept the CASE index peared to have some special ~ea~in~ to the compder Test 6.4.3.3-11 Fa1Ied: Allowed assignment of an (value is "pink"). tion purposes on the 1100. These include external and the program did not compIle uillt was changed to undefined empty record. A contradiction in that the Tests 6.8.3.9-20 and 6.8.3.10.7 indicate the FOR compilations. external variables. 1100 Exec 8 support. proaram did not detect the error and printed pass. and variable length strings. and WITH statements may be nested to a depth greater PUG sco';;,.. 6.4.3.3-1 Failed: A record declaration of. the Test 6.4.6-5 FaIled: An expression with the value 10 was passed to a procedure when the parameter was fonn d = record; end; was not accepted by the compiler. Test 6.4.3.5.1 Paaed: Error in the program var declared to be O. .5. The error was DOtdetected. ptrtoi :N i; instead oftype ptrtoi = Ni; Test 6.6..5.2-1 FaIled: Read past eof not detected. IBM 4341 Test 6.4.3.5-2 Failed: Writins an empty hne. to a file 1nt 6.6.5.2-6 Fa1Ied: Cbangilll the position of the results in a blank followed by an end of line marker. file variable while it was the actual parameter to a pro- cedure did not cause an error. Computing Services Centre Test 6.6.3 2 FaIled: A routine passed as a param- . Test 6.4,3.4-4 The ord of all set members must Test 6.6.5.2-7 Jl'aUed: Changing the file polRter - eter must not be nested within another routine. . 1st March 1982 be in the range O. .255. Test 6.6.5.2-3 FaIled: Does not seem possIble to while It is within a with statement does not cause an Dear Sir, Test 6.6.6.1.1 - Standard functions are not per- create an empty file under CMS. erro; 6.6.5.3-5 mitted as parameters. . . Fa1Ied: A variable which was ac- Enclosed are reports on running the Sale Pascal Test 6.7.2.2-5 FaIled: The expressIon (maxmt .- ~ Test 6.6.6.2-11 (maxint div 2» 2 was ftagged as causing fixed potnt tual variable parameter was refered to by the polRter validation suite asainst the Pascal compilers on the - Smallest positive real number . parameter of dispose without causing an error. larger than zero is 5.39760535E-79. Largest real number overftow. IBM 4341 (PascaIlVSR 2.0) and the VAX 11/780 (VAX is 7.23706558E+ 75. Reals have a 7 bit exponent and a . . 1nt 6.6.5.3-6 FaIled: A variable which was an ele- II Pascal V 1.2-82). The latter is a later release than the Test 6.8.3.Jl..2 FaIled: A while loop contalmng no 14 digit base 16 mantissa. statements is not allowed. ment of a record variabIe lilt of a with ~tate~t was one reported in Pascal News No. 19. Test 6.8.2.2.1 retered to by the pointer parameter of dIspose wIthout You may wish to publish these in Pascal News. - In the situation array(exp2] := Test 6.9.4-4 Failed: Confonns to the standard.ex- expl: expl is evaluated before exp2. cept when the number will not fit in the field wIdth causing an error. Test 6.6.5.3-7 FaIled: A variable created by Yours sincerely. Test 6.8.2.2-2 - In the situation p-:_ exp; the specified. th~ us- expression is evaluated before the position of p~ is ina the variant form of new is used as an operand In an C.R. Boswell evaluated. Examples: represents a blank) expression. The error is not detected. Fonnat 0.0:6'-Output _0.0 instead of _0.0 . Director Test 6.9 5 - Number of digits in exponents is 2. Test 6.6.5.3-9 FaIled: A variable created by uSIng Test 6.9 11 Format 1.0:6 Output _I. E+ 00 instead of _1.0 the variant form of new is used as an actual parameter. - Default fteld width for integers. Fonnat 123.456:7:3 Output 123.456 instead of _123.456 reals and booleans is 12, 20 and 10respectively. The error was not detected. . . Puc:81proce8>r ldentilication. The expreSSIOD(m8Xlnt Test 6.10.2 - A rewrite is allowed on the file Test 6.9 7 FaIled: Writing of booleans does not 1nt 6.7.1.2-6 "-d: - Computer: IBM 4341. output. conform to the standard. Accordina to the standard the (maxiDt div 2» ·2 could not be compiled. Other meth- Location: Victoria University of Wellinston. New Test 6.11-1 - '(.' and '.)' are allowed io delimit output should have been left justified but the PASCAU ods were used to ICta fixed point over(low and the error Zealand. comments. t VS output was right justified. was detected. ~r: PASCAUVS R2.0 Test 6.11.2 - Alternative symbols are not imple- . Test 6.9.6-1 FaIled: Page procedure did not cause Test 6.7.1.2-7 "-d: Same problem as for 6.7.2.2- mented. '@' is used instead of '-. , a pase throw when writing to a terminal. It will work 6. Test conditions. ! when writins to a file if the file has the correct format. 1nt 6.'.3.9-5 Fa1Ied:The use of a contro I variabI e Quality tests ! ot a for loop after that loop had completed was not Tester: R. H. Hefford (CSC programmer). Error handlln.. ftaaed as an error. Date: January. 1982. Number ot tests run: 24 . Test 6.8.3.9-6 Failed: The use of a control venable Valldallon Suite Version: 2.0 Number ot tests tailed: 5 Number ottests rUB:46 Test 5.2.2-1 FaIled: Meanilll of the program was Number of tests failed: 17 for a loop which had not been entered was Dot ftaged as an error. Notes: chansed by the truncation of identifters. 1nt 6.1.1-7 Failed: The compiler does not check .ABCI23.456 . IDtO. a Test 6.1.3-3 Paaed: Number of significant charac- tor UBdefined variables. 1nt 6.9.2-5 Fa1Ied: Readina 1) The LANGLVL(STANDARD) option was used T.. 6.4.3.3-5 FaIled: A chanse of v~ant ~cured real variable did not cause an error messaae. The result with the compiler. ters in identifiers is 16. Test 6.1.8-4 Paaed: The compiler will help in the j in a record (by assigning a value assocIated With the wu zero. PUG 2) The compiler was runnins under the CMS op- variant to the Ia8 field). This caused a previous field to eratins system. discovery of unclosed comments by issuing a wamins if it finds inside the comment the start of another comment. ImpIe_ntation defined Test 6.4.3.2-4 FaIled: The declaration 'everythins Number ottesls rua: 15 = array [integer] of integer' is not allowed because Test 6.4.2.2-7 there are too many elements. - MAXINT = 2147483647. Test 6.4.3 2 - Implementation allows a set of Test 6.4.3."'5 Pa-.l: Execution time for the War- char. shall algorithm was 0.2 seconds. According to the man-

58 Validation Suite Reporl8 Validation Suhe Reports 59 r I i

because the program would not do a PUT to a file it had number is 127. VAX 11.780 just done a RESET on. 7) The smallest positive ftoating-point number eps Test 6.6.5.2-6 Changing the current file position such that J.(H-eps Plue81 p""""",,r identification DEVIANCE TESJ'S - <> 1.0 is 5.96046448E-08. of a file f. while the buffer variable is an actual param- ') The smallest positive floating-point number is Computer: VAX/II-780 Number of tests run: 95 eter to a procedure was not detected as an error. 2.93873588E-39. 9) The largest finite floating-point number is Number of tests failed: 29 Test 6.6.5.2-7 - This test is similar to 6.6.5.U. Location: Victoria University of Wellington. New Test 6.1.2-1 NIL is not implemented as a reserved except that the buffer variable is an element of the re- 1.70141173E+38. Zealand. word. cord variable list of a with statement. The error was not Procesaor: VAX-II PASCAL VI.2-82 Test 6.1.5-6 detected. Test 6.7.1.3-2 'e' is equivalentto 'E' in real numbers. - In the short circuit evaluation of Test 6.2.2-4 Allowed a global symbol to be used Tests 6.6.5.3-3 thru 6.6.5.3-6 DISPOSE ac- (a and b) both expressions are evaluated. Test conditions - - within a procedure with its global definition and then cepted as parameter a NIL pointer. an undefined pointer, Tell 6.7.2.3-3 - In the short circuit evaluation of Tester: R. H. Hefford (CSC programmer). allowed it to be redefined. a pointer that is pointing to a actual variable parameter (a or 11)both expressions evaluated. DIlle: February. 1982. Test 6.3-6 - A constant was used in its own and a pointer that is pointing to a variable that is an Test 6.'.2.2-1 - The binding order of (a[i] := exp) Validation suite venJon: 2.0 declaration. element of a record variable list. No error message or it selection then evaluation. Test 6.4.1.2 warning was given. Tell The binding order of (p exp) - The compiler allowed the use of 6"'2.2-2 - "':= Notes types in their own declaration. Test 6.6.5.3-7, 6.6.5.3-8, 6.6.5.3-9 - A variable illlelec:tion then evaluation. I) TIle vaUdatlon suite was compiled using tbe ICHECK Test 6.4.1-3 - Again a type was used in its own created by the use of the variant form of new is used as Test 6.9.4-5 - The number of digits written in an and ISJ'ANDARD Clptlons. definition. In this case a global symbol was available an operand in an expression. as a variable in an assign- expotleftt il2. 2) Changes from VAX 11 Pascal V 1.0-1 (as re- with the same identifier. ment statement and as an actual parameter. This was Tell 6.9.4-11 - Implementation defined default Test 6.4.5-2 thru 6.4.3-5, 6.4.5-13 not detected as an error. ported in Pascal News No.. 19.); - The compiler field width values: a) Empty record is implemented. checks the types of the formal and actual parameters. Test 6.8.3.9-5 - Allowed use of a control variable INTEGERS: 10characters b) Tag field redefinition allowed. The identifiers do not have to be the same. after the for loop had completed. The variable had re- BOOLEAN: 7 characters c) Run time checking of the appropriateness of Test 6.6.2.5 Functions do not have to contain an tained the final value it had in the for loop. REAL: 16 characters assignment to the- function name identifier. Test 6.'.3.9-6 If a for loop is not entered tbe con. the value of variables. Range checks are done for - Test 6.10-2 - A rewrite can be performed on the array subscripts. assignment statements, PRED. Tests 6.6.3.5-2, 6.6.3.6-2 thru 6.6.3.6-5 trol variable retains the value it had before the for loop tests could not be run as this pascal does not- allowThesea is entered. ftIe output. SUCC. CHR. case selecters and set operations. Test 6.11-1 - Alternate comment delimiten have d) Default field width for a boolean is now 7 procedure passed as a parameter to bave a parameter Test 6.'.3.9-17 - Two nested for statements can list. use the same control variable. been implemented. characters (was 16). Test 6.11-2, 6.11-3 - Alternative symbols not Test 6.8.2.4-2 - Jumps between branches of an if statement are allowed. implemented. IMPLEMENTATION DEFINED Tell 6.6.6.1-1- Test could not be done as this pas- CONFORMANCE TESJ'S Test 6.8.2.4-3 - Jumps between branches oca case statement are allowed. Number of teats run: 15 c:aJwill not acc:ept a function or procedure with a pa- Number of tests run: 138 Test 6.8.2.4.4 Test 6.4.2.2-7 The implementation defined value rameter list as a parameter to a function or procedure. - Allowed a goto into a case - Number of testa failed: II statement. ofmaxint is 2147483647. Test 6.1.3-1 - The compiler issues a warning if an Tests 6.8.3.9-2, 6.8.3.9-3, 6.8.3.9-4 Test6.4.3.4-2 Implementation allows set of char. QUALITY identifier exceeds 19 characters but the program will - Allows as- - signment to the control variable in a for loop. Test 6.4.3.4-4 - Set element values must not ex- N_ber of teats run: 23 still run. Test 6.8.3.9-9 ceed 255. N_ber of Ies88f8IIed: 2 Test 6.5.1-1 Would not allow a file of files. - A non local variab1e at an inter- - mediate level can be used as a for statement control Test 6.6.6.2-11 Test 6.1.8-4 - The program contained an unclosed Tests 6.6.3.1-5. 6.6.3.4-2 - Tbe tests could not be variable. 1) The radix of the ftoating-point representation is comment bracket. The compiler did not assist in any run as this pascal does not allow a procedure passed as Test 6.8.3.9-13 - A formal parameter can be used 2) The number of base 2 digits in the ftoating-point way with finding this error. The program compiled a parameter to have a parameter list. as a for statement control variable. significand is 24. without errors. Test 6.6.5.2-3 A RESET on a non existant file - Test6.8.3.9-14 - A global variable (at program 3) The arithmetic rounds. Test 6.4.3.2-4 - Declaration 'array{inteaeri of in- caused the program to fail. level) can be used as a for statement control variable. 4) The number of bits reserved for the repreaen- lepr' it not allowed. The error message wa 'Index Test 6.6.6.2-3 - The EXP function failed the ac- Test 6.8.3.9.16 A for statement control variable tation of the exponent of a ftoating-point num- type must not be inteaer'. curacy test. It gave the value of EXP(9) as 8103.083984. - value can be read during the execution of the for ! ber is 8. Test 6.4.3.3-9 - The fields of a record are stored The test program eJl

Requests from outside USAp add $5 per 88t. . Please renew early (before November) and please write us a line or two to tell us what you are doing with Pascal, and tell us what you think of PUG and Pascal News.

All memberships entered in 1983 will receive issue 24 and all other issues published in that year. ORDERING BACK ISSUES OR EXTRA ISSUES? Make check payable to: "Pascal Users Group," drawn on USA bank in US dollars. . Back issues will have a price rise to $25 on July 83 . Our unusual policy of automatically sending allissuas of Pascal News to anyone who joins within a year Enclosed please find US $ _'_ means that we eliminate many requests for backl8sues ahead of time, and_ don'thaveto reprint important on check number_ information in every issue - especially about Pascal implementations I Issues 1 . . 8 (January, 1974 . - May 1977) are out of print. . Issues 9. . 12, 13 ..16, & 17 . .20,21 ..23 are avaHabIe from PUG(USA) all for $15.00 a set. (I have difficulty reading addresses. Please forgive me and type or print clear1y) · Extra single copies of new issues (current academic year) are: $10 each - PUG(USA). My address Is: SENDING MATERIAL FOR PUBUCATlON? NAME . Your exper1ences with Pascal (teaching and otheMIse),IdH8, letters, opinions, nottces, news, articles, c0n- ADDRESS ference announcements, reports, implementation Information, 8ppIlcatlona, .tc. are welcome. Please send material single-spaced and in camera-ready (use a dark ribbon and lines 15.5 em. wide) form. . All letters will be printed unless they contain a request to the contrary.

PHONE

COMPUTER

DATE ,!

62 IMPLEMENTATION NOTES ONE PURPOSE COUPON

O. DATI

,. (1M . 1. IMPLIMINTOil/MAINTAINEil/DISTII18UTOil ".,..". ..".. MIl ~ .J

2. MACHINI/.VITIM CONFIGUIIATION ,...", tIN,.""".".,.,.,."",." llifrw_,."""...... ,-. .J

3. DI8TIU8UTION , to how It_. MIl. ",... .J '"""".

4. DOCUMINTATION ,.Wht,...,o/IHItJ8tHI_. .J.

_ .. 8TANDAIID ,. .. hi.1IItHItIttI~ ,.". "./lteIt8tI1N.w..J Hew"'''

7. .1A.U NT8 ,.Of 01_. .J

_ ,. .., IIMI 01 ,. .J 8. IIILIAIIU1'Y AIr "".""",."

.. DIVILOPIIIIIIIT IUTHOD ,. Hew _It ~ 11IIII _It .'.J """- r I

Membership 1983

Pascal News 2903 Huntington Road Cleveland, Ohio 44120

Please enter my o New or o Renew membership In Pascal Users Group. I understand I will receive "Pascal News" whenever it Is published in this Facts about Pascal, THE PROGRAMMING LANGUAGE: calendar year.

Pascal News should be mailed Pascal is a small, practical, and general-purpose (but not 8I/-purpoIIff) programming language possessing algorithmic and data structures to aid systematic programming. Pll8ca1 was Intended to be aasy to learn and 1 yr. 0 in USA $20 0 outside USA $30 0 AirMail anywhere $55 read by humans, and efficient to translate by compute",. 3 yr. 0 In USA $40 0 outside USA $70 0 AirMail anywhere $115 Pascal has met these goals and is being used successfully for: (Make checks payable to: "Pascal Users Group," drawn on USA bank in US dollars) . teaching programming concepts . developing reliable "production" software Enclosed please find US $ _'_ . implementing software efficiently on today's machines on check number . writing portable software

Pascal implementations exist tor more than 105 different computer aystema, end IhI8 number Increase. every (Invoice will be sent on receipt of purchase orders. Payment must be received before newstetter will be sent. month. The "Implementation Notes" section of Pascal News de8ct1bes how to obtain them. Purchase orders will be billed $10 for additional work.) The standard reference ISO 7185 tutortal manual for PaecalIa: (I have difficulty reading eddresses. Please forgive me and type or print clearty.) Pascal - User Manual and Report (Second, study edition) by Kathleen Jensen and Niklaus Wirth. My address is: Sprtnger-Vertag Publishers: New York, Heidelberg, Bertin 1978 (corrected printing), 167 pages, paperbeck, $7.90.

NAME Introductory textbooks about Pascal are described in the "Here and There" section of Pascal News.

ADDRESS The programming language, Pascal, was named after the mathematician and religious fanatic Blaise Pascel (1823-1662). Pascal is not an acronym.

Remember, Pascal User's Group is each individual member'. group. We currenUy have more than 3500 active membe", in more than 41 countries.

PHONE

COMPUTER

DATE o This is an address correction here is myoid address label: POlICY: PASCAL USERS GROUP , ;

Me8bership :

(FOLD HERE) ------

Facta about Paacal, , PLACE POSTAGE /],<*> HERE Paace! is a lIIIall, practical, .uS,.... programming language possessing .tgort aystematic programming. Paacal MIS J.ntend8CI hunans, and efficient to translate by C08pUWt8~:tc;( ' , Bob Dietrich ,"";.;r;:s"~;¥.,:~,,.. M.S. 92-134 Pascal hes I118tthese goals .uS is being"'~::;#' tesching progr...ing conce~c~~"f' Tektronix, Inc. * . , .. P.O. Box 500 * developing reliable "pi' " tt * implementing aoftware.rf Beaverton, Oregon 97077 writing portable eoft..re U.S.A. * Pascal implementations exist for lIore .~.. this number increases every JDOnth. !!!£!!!i!!!! describes how to obtain t .The atend8rd reference and tutorial (ro~H~~------

NOTE: Pescal News publishes all the checklists it gets. Implementors should send us their checklists Introductory textbooks about PaecaJ,.; for their products so the thousands of committed aectionofPascal News. ," Pascalers can judge them for their merit. Otherwise we must rely on rumor..

Please feel free to use additional sheets of paper.

ILEMENTATION NOTES ONE PURPOSE COUPON