DPANS1.HTM (17560B)
1 <HTML><HEAD> 2 <TITLE>DPANS94</TITLE> 3 <link disabled rel="stylesheet" href="mpexc6.css"> 4 <style>@import url(mpexc6.css);</style> 5 </head> 6 7 8 <BODY> 9 <table width=100%> 10 <tr> 11 <td align=left> 12 <a href=dpans2.htm><img src=right.gif 13 width=26 height=26 align=ALIGN border=0></a> 14 </td> 15 <td align=right> 16 <a href=dpans.htm#toc><img src=up.gif 17 width=26 height=26 align=ALIGN border=0></a> 18 Table of Contents 19 </td> 20 </tr> 21 </table> 22 <p> 23 <hr size=4> 24 25 <H1>American National Standard for Information Systems</H1> 26 27 <H1>Programming Languages</H1> 28 29 <H1>Forth</H1> 30 31 32 Secretariat 33 34 <BR> 35 Computer and Business Equipment Manufacturers Association 36 37 <BR> 38 Approved: March 24, 1994 39 40 <BR> 41 American National Standards Institute, Inc. 42 43 <P> 44 45 46 Copyright (c) 1994 by Technical Committee X3J14. 47 All rights reserved. 48 49 <P> 50 51 52 This is a working document of Technical Committee X3J14 which represents 53 the last draft of ANS Forth submitted to ANSI for publication. 54 Permission is hereby granted to copy this document provided that it is 55 copied in its entirety without alteration or as altered by (1) adding 56 text that is clearly marked as an insertion; (2) shading or highlighting 57 existing text; and/or (3) deleting examples. 58 59 <P> 60 61 62 Specifically, permission is granted to use this working document as the 63 foundation for textbooks, system manuals, and online documentation so 64 long as the requirements in the preceding paragraph are met and the 65 resulting product addresses a technical need that is not practically met 66 by the official ANS. 67 68 <P> 69 70 71 <b>NOTE:</b> This file is provided as a working document of the TC for public 72 review and comment as well as documentation uses described above. It is 73 not intended as a substitute for the official ANS Forth document 74 published by ANSI. In the event of conflict, only the printed document 75 X3.215-1994 represents the official ANS Forth. 76 77 <P> 78 79 80 To obtain the official standard, please contact the American National 81 Standards Institute Sales Department, at (212) 642-4900 or FAX (212) 82 302-1286, or Global Engineering Documents, at (800) 854-7179 or FAX 83 (303) 843-9880, and request Document X3.215-1994. Thank you very much 84 for your interest. 85 86 87 88 <HR> 89 <a name=foreword> 90 <H1>Foreword</H1> 91 </a> 92 93 94 (This foreword is not a part of 95 American National Standard X3.215-1994) 96 97 <P> 98 99 100 Forth is a language for direct communication between human beings and 101 machines. Using natural-language diction and machine-oriented syntax, 102 Forth provides an economical, productive environment for interactive 103 compilation and execution of programs. Forth also provides low-level 104 access to computer-controlled hardware, and the ability to extend the 105 language itself. This extensibility allows the language to be quickly 106 expanded and adapted to special needs and different hardware systems. 107 108 <P> 109 110 111 Forth was invented by Mr. Charles Moore to increase programmer 112 productivity without sacrificing machine efficiency. Forth is a layered 113 environment containing the elements of a computer language as well as 114 those of an operating system and a machine monitor. This extensible, 115 layered environment provides for highly interactive program development 116 and testing. 117 118 <P> 119 120 121 In the interests of transportability of application software written in 122 Forth, standardization efforts began in the mid-1970s by an 123 international group of users and implementors who adopted the name 124 <B>Forth Standards Team</B>. This effort resulted in the Forth-77 125 Standard. As the language continued to evolve, an interim Forth-78 126 Standard was published by the Forth Standards Team. Following Forth 127 Standards Team meetings in 1979, the Forth-79 Standard was published in 128 1980. Major changes were made by the Forth Standards Team in the 129 Forth-83 Standard, which was published in 1983. 130 131 <P> 132 133 134 The first meeting of the Technical Committee on Forth Programming 135 Systems was convened by the Organizing Committee of the X3J14 Forth 136 Technical Committee on August 3, 1987, and has met subsequently on 137 November 11-12, 1987, February 10-12, 1988, May 25-28, 1988, August 138 10-13, 1988, October 26-29, 1988, January 25-28, 1989, May 3-6, 1989, 139 July 26-29, 1989, October 25-28, 1989, January 24-27, 1990, May 22-26, 140 1990, August 21-25, 1990, November 6-10,1990, January 29-February 2, 141 1991, May 3-4, 1991, June 16-19, 1991, July 30-August 3, 1991, March 142 17-21, 1992, October 13-17, 1992, January 26-30, 1993, June 28-30, 1993, 143 and June 21, 1994. 144 145 <P> 146 147 Requests for interpretation, suggestions for improvement or addenda, or 148 defect reports are welcome. They should be sent to the X3 Secretariat, 149 Computer and Business Equipment Manufacturers Association, 1250 Eye 150 Street, NW, Suite 200, Washington, DC 20005. 151 152 153 154 <HR> 155 <a name=x3.membership> 156 <H1>X3 Membership</H1> 157 </a> 158 159 This standard was processed and approved for submittal to ANSI by the 160 Accredited Standards Committee on Information Processing Systems, X3. 161 Committee approval of this standard does not necessarily imply that all 162 committee members voted for its approval. At the time it approved this 163 standard, the X3 Committee had the following members: 164 165 <P> 166 167 168 James D. Converse, Chair 169 Donald C. Loughry, Vice-Chair 170 Joanne Flanagan, Secretary 171 172 <P> 173 174 175 176 177 <PRE> 178 Producer Group Name of Representative 179 -------------- ---------------------- 180 AMP Incorporated Edward Kelly 181 Charles Brill (Alt.) 182 183 AT&T/NCR Corporation Thomas W. Kern 184 Thomas F. Frost (Alt.) 185 186 Apple Computer, Inc. Karen Higginbottom 187 188 Compaq Computers James Barnes 189 190 Digital Equipment Corporation Delbert Shoemaker 191 Kevin Lewis 192 193 Hitachi America Ltd. John Neumann 194 Kei Yamashita (Alt.) 195 196 Hewlett Packard Donald C. Loughry 197 198 Bull HN Information Systems Inc. William George 199 200 IBM Corporation Joel Urman 201 Mary Anne Lawler (Alt.) 202 203 Unisys Corporation John Hill 204 Stephen P. Oksala (Alt.) 205 206 Sony Corporation of America Michael Deese 207 208 Storage Technology Corporation Joseph S. Zajaczkowski 209 Samuel D. Cheatham (Alt.) 210 211 Sun Microsystems, Inc. Scott Jameson 212 Gary S. Robinson (Alt.) 213 214 * Xerox Corporation Dwight McBain 215 Roy Pierce (Alt.) 216 217 3M Company Edie T. Morioka 218 Paul D. Jahnke (Alt. 219 220 </PRE> 221 <P> 222 223 224 Consumers Group 225 226 <BR> 227 --------------- 228 229 230 <PRE> 231 Boeing Company Catherine Howells 232 Andrea Vanosdoll (Alt.) 233 234 Eastman Kodak Company James Converse 235 Michael Nier (Alt.) 236 237 General Services Administration Douglas Arai 238 Larry L. Jackson (Alt.) 239 240 Guide International Inc. Frank Kirshenbaum 241 Harold Kuneke (Alt.) 242 243 ** Hughes Aircraft Company Harold Zebrack 244 245 National Communications Systems Dennis Bodson 246 247 Northern Telecom Inc. Mel Woinsky 248 Subhash Patel (Alt.) 249 250 ** Recognition Tech Users Association Herbert P. Schantz 251 Edwin Hale (Alt.) 252 253 Share Inc. Gary AinsworthDavid Thewis (Alt.) 254 255 U. S. Department of Defense William Rinehuls 256 J. Pasquariello (Alt.) 257 258 U. S. Department of Energy Alton Cox 259 Lawrence A. Wasson (Alt.) 260 261 Wintergreen Information Services John Wheeler 262 </PRE> 263 <P> 264 265 266 267 General Interest Group 268 269 <BR> 270 ---------------------- 271 272 273 <PRE> 274 American Nuclear Society Geraldine C. Main 275 Sally Hartzell (Alt.) 276 277 Assn. of the Institute for Certification of Computer Professionals 278 Kenneth Zemrowski 279 280 Nat'l Institute of Standards and Technology 281 Robert E. Rountree 282 Micharl Hogan (Alt.) 283 284 Neville & Associates Carlton Neville 285 ________________________ 286 287 * Abstain ** Non-Response 288 </PRE> 289 290 <P> 291 292 293 294 295 <HR> 296 <a name=x3j14.membership> 297 <H3>X3J14 Membership</H3> 298 </a> 299 300 At the time it approved this draft of the proposed American National 301 Standard, the Technical Committee X3J14 on the Forth Programming 302 Language had the following members: 303 304 <P> 305 306 307 Elizabeth Rather, Chair 308 309 <BR> 310 Mitch Bradley, acting Vice-Chair 311 312 <BR> 313 Don Colburn, Secretary 314 315 <BR> 316 John Rible, Technical Editor 317 318 <BR> 319 Len Zettel, Vocabulary Representative 320 321 <BR> 322 Greg Bailey, Technical Subcommittee Chair 323 324 <BR> 325 326 <P> 327 328 329 330 331 <PRE> 332 Organization Represented Name of Representative 333 ------------------------ ---------------------- 334 ATHENA Programming, Inc. Greg Bailey 335 Howe Fong (Alt.) 336 337 Bradley Forthware Mitch Bradley 338 339 Creative Solutions, Inc. Don Colburn 340 341 Ford Motor Company Leonard F. Zettel, Jr. 342 343 FORTH, Inc. Elizabeth Rather 344 Dennis Ruffer (Alt.) 345 346 Institute for Applied Forth Research Lawrence Forsley 347 Horace Simmons (Alt.) 348 349 Johns Hopkins University, Applied Physics Lab. 350 John Hayes 351 352 Mephistopheles Systems Dave Harralson 353 354 NASA/Goddard Space Flight Center James Rash 355 356 Nomadic Software John K. Stevenson 357 358 Unisyn, Inc. Gary Betts 359 Stephen Egbert (Alt.) 360 361 Up and Running Martin Tracy 362 363 Vesta Technology Jack Woehr 364 365 Individual Members Loring Craymer 366 John Rible 367 E. (Jet) Thomas 368 369 X3 Liasons Clyde R. Camp 370 Kathleen McMillan 371 </PRE> 372 373 <P> 374 375 376 The following organizations and individuals have also participated in this 377 project as Technical Committee members, alternates, or observers. The 378 Technical Committee recognizes and respects their contributions: 379 380 <P> 381 382 383 Organizations 384 385 <BR> 386 ------------- 387 388 389 <PRE> 390 British Columbia Inst. of Tech. MCI Telecommunications Corp. 391 Computer Cowboys Micromotion 392 Computer Sciences Corp. MicroProcessor Engineering Ltd. 393 Computer Strategies, Inc. National Institute of Standards & Technology 394 Digalog Corp. NCR Medical Systems Group 395 Embedded Sys. Programming Mag. Performance Packages, Inc. 396 Forth Interest Group (FIG) Purdue University 397 H.B. Pascal & Co., Inc. Robert Berkey Services 398 Harris Semiconductor Shaw Laboratories 399 IBM Corporation Social Security Administration 400 IEEE Software Engineering 401 Kelly Enterprises Texas Instruments 402 Laboratory Microsystems, Inc. The Dickens Company 403 Maxtor Corp. 404 </PRE> 405 406 <P> 407 408 409 Individuals 410 411 <BR> 412 ----------- 413 414 415 <PRE> 416 David J. Angel Ray Duncan Charles Moore Dean Sanderson 417 Wil Baden Douglas Fishman Mike Nemeth George Shaw 418 Robert Berkey Tom Hand Harry Pascal Gerald Shifrin 419 Ron Braithwaite Gregory Ilg Stephen Pelc Robert Smith 420 Jack Brown Charles Keane Dean Perrine Tyler Sperry 421 Chris Colburn Guy M. Kelly David C. Petty Tom Zimmer 422 Ted Dickens Andrew Kobziar Bill Ragsdale James Ryland 423 John Dorband Martin Lascelles 424 425 </PRE> 426 <P> 427 428 <hr> 429 <H1>AMERICAN NATIONAL STANDARD ANSI X3.215-1994 American National 430 Standard for Information Systems</A></H1> 431 432 433 434 <H3>Programming Language</A></H3> 435 436 437 <H3>Forth</A></H3> 438 439 440 441 <HR> 442 <a name=1.> 443 <H1>1. Introduction</H1> 444 </a> 445 446 447 <hr> 448 <a name=1.1> 449 <H2>1.1 Purpose</H2> 450 </a> 451 452 The purpose of this Standard is to promote the portability of Forth programs 453 for use on a wide variety of computing systems, to facilitate the 454 communication of programs, programming techniques, and ideas among Forth 455 programmers, and to serve as a basis for the future evolution of the Forth 456 language. 457 458 <P> 459 460 461 <hr> 462 <a name=1.2> 463 <H2>1.2 Scope</H2> 464 </a> 465 466 This Standard specifies an interface between a Forth System and a Forth 467 Program by defining the words provided by a Standard System. 468 469 <p> 470 <code> 471 See: 472 <a href=dpansa1.htm#A.1.2>A.1.2</a> Scope 473 </code> 474 <p> 475 476 <hr> 477 <a name=1.2.1> 478 <H3>1.2.1 Inclusions</H3> 479 </a> 480 481 This Standard specifies: 482 <P> 483 484 485 <UL> 486 <LI>the forms 487 that a program written in the Forth language may take; 488 <LI>the rules for interpreting the meaning of a program and its data. 489 </UL> 490 491 <P> 492 493 494 <hr> 495 <a name=1.2.2> 496 <H3>1.2.2 Exclusions</H3> 497 </a> 498 499 This Standard does not specify: 500 <P> 501 502 503 <UL> 504 <LI>the mechanism 505 by which programs are transformed for use on computing 506 systems; 507 <LI>the operations 508 required for setup and control of the use of programs 509 on computing systems; 510 <LI>the method 511 of transcription of programs or their input or output data 512 to or from a storage medium; 513 <LI>the program 514 and Forth system behavior when the rules of this Standard 515 fail to establish an interpretation; 516 <LI>the size 517 or complexity of a program and its data that will exceed the 518 capacity of any specific computing system or the capability of a particular 519 Forth system; 520 <LI>the physical 521 properties of input/output records, files, and units; 522 <LI>the physical 523 properties and implementation of storage. 524 </UL> 525 526 <P> 527 528 529 <hr> 530 <a name=1.3> 531 <H2>1.3 Document organization</H2> 532 </a> 533 534 <P> 535 536 537 <hr> 538 <a name=1.3.1> 539 <H3>1.3.1 Word sets</H3> 540 </a> 541 542 This Standard groups Forth words and capabilities into word sets under a name 543 indicating some shared aspect, typically their common functional area. Each 544 word set may have an extension, containing words that offer additional 545 functionality. These words are not required in an implementation of the word 546 set. 547 548 <P> 549 550 551 The <B>Core</B> word set, defined in sections 1 through 6, contains the 552 required 553 words and capabilities of a Standard System. The other word sets, defined in 554 sections 7 through 17, are optional, making it possible to provide Standard 555 Systems with tailored levels of functionality. 556 557 <p> 558 <code> 559 See: 560 <a href=dpansa1.htm#A.1.3.1>A.1.3.1</a> Word sets 561 </code> 562 <p> 563 564 565 566 <hr> 567 <a name=1.3.1.1> 568 <H4>1.3.1.1 Text sections</H4> 569 </a> 570 571 Within each word set, section 1 contains introductory and explanatory material 572 and section 2 introduces terms and notation used throughout the Standard. 573 There are no requirements in these sections. 574 575 <P> 576 577 578 Sections 3 and 4 contain the usage and documentation requirements, 579 respectively, for Standard Systems and Programs, while section 5 specifies 580 their labeling. 581 582 <P> 583 584 585 <hr> 586 <a name=1.3.1.2> 587 <H4>1.3.1.2 Glossary sections</H4> 588 </a> 589 590 Section 6 of each word set specifies the required behavior of the definitions 591 in the word set and the extensions word set. 592 593 <P> 594 595 596 <hr> 597 <a name=1.3.2> 598 <H3>1.3.2 Annexes</H3> 599 </a> 600 601 The annexes do not 602 contain any required material. 603 <P> 604 605 606 <a href=dpansa1.htm>Annex A</a> 607 provides some of the rationale behind the committee's decisions in 608 creating this Standard, as well as implementation examples. It has the same 609 section numbering as the body of the Standard to make it easy to relate each 610 requirements section to its rationale section. 611 612 <P> 613 614 615 <a href=dpansb.htm>Annex B</a> 616 is a short bibliography on Forth. 617 618 <P> 619 620 621 <a href=dpansc.htm>Annex C</a> 622 provides an introduction to Forth. 623 624 <P> 625 626 627 <a href=dpansd.htm>Annex D</a> 628 discusses the compatibility of ANS Forth with earlier Forths, 629 emphasizing the differences from Forth-83. 630 631 <P> 632 633 634 <a href=dpanse.htm>Annex E</a> 635 presents some techniques for writing portable programs in ANS Forth. 636 637 <P> 638 639 640 <a href=dpansf.htm>Annex F</a> 641 includes the words from all word sets in a single list, and serves as 642 an index of ANS Forth words. 643 644 <P> 645 646 647 <hr> 648 <a name=1.4> 649 <H2>1.4 Future directions</H2> 650 </a> 651 652 653 654 <hr> 655 <A name=1.4.1> 656 <H3>1.4.1 New technology</H3> 657 </a> 658 659 This Standard adopts certain words and practices that are increasingly found 660 in common practice. New words have also been adopted to ease creation of 661 portable programs. 662 663 <P> 664 665 <hr> 666 <A name=1.4.2> 667 <H3>1.4.2 Obsolescent features</H3> 668 </a> 669 670 This Standard adopts certain words and practices that cause some previously 671 used words to become obsolescent. Although retained here because of their 672 widespread use, their use in new implementations or new programs is 673 discouraged, because they may be withdrawn from future revisions of the 674 Standard. 675 676 <P> 677 678 This Standard designates the following words as obsolescent: 679 <P> 680 681 682 683 <PRE> 684 <a href=dpans6.htm#6.2.0060>6.2.0060</a> #TIB 685 <a href=dpans15.htm#15.6.2.1580>15.6.2.1580</a> FORGET 686 <a href=dpans6.htm#6.2.2240>6.2.2240</a> SPAN 687 <a href=dpans6.htm#6.2.0970>6.2.0970</a> CONVERT 688 <a href=dpans6.htm#6.2.2040>6.2.2040</a> QUERY 689 <a href=dpans6.htm#6.2.2290>6.2.2290</a> TIB 690 <a href=dpans6.htm#6.2.1390>6.2.1390</a> EXPECT 691 </PRE> 692 693 <P> 694 695 <hr> 696 <A href=dpans.htm#toc><IMG src="up.gif" ></A> Table of Contents 697 <BR> 698 <A href=dpans2.htm><IMG src="right.gif" ></A> 699 Next Section 700 <P> 701 </BODY> 702 </HTML>