|Table of Contents|
Copyright (c) 1994 by Technical Committee X3J14. All rights reserved.
This is a working document of Technical Committee X3J14 which represents the last draft of ANS Forth submitted to ANSI for publication. Permission is hereby granted to copy this document provided that it is copied in its entirety without alteration or as altered by (1) adding text that is clearly marked as an insertion; (2) shading or highlighting existing text; and/or (3) deleting examples.
Specifically, permission is granted to use this working document as the foundation for textbooks, system manuals, and online documentation so long as the requirements in the preceding paragraph are met and the resulting product addresses a technical need that is not practically met by the official ANS.
NOTE: This file is provided as a working document of the TC for public review and comment as well as documentation uses described above. It is not intended as a substitute for the official ANS Forth document published by ANSI. In the event of conflict, only the printed document X3.215-1994 represents the official ANS Forth.
To obtain the official standard, please contact the American National Standards Institute Sales Department, at (212) 642-4900 or FAX (212) 302-1286, or Global Engineering Documents, at (800) 854-7179 or FAX (303) 843-9880, and request Document X3.215-1994. Thank you very much for your interest.
Forth is a language for direct communication between human beings and machines. Using natural-language diction and machine-oriented syntax, Forth provides an economical, productive environment for interactive compilation and execution of programs. Forth also provides low-level access to computer-controlled hardware, and the ability to extend the language itself. This extensibility allows the language to be quickly expanded and adapted to special needs and different hardware systems.
Forth was invented by Mr. Charles Moore to increase programmer productivity without sacrificing machine efficiency. Forth is a layered environment containing the elements of a computer language as well as those of an operating system and a machine monitor. This extensible, layered environment provides for highly interactive program development and testing.
In the interests of transportability of application software written in Forth, standardization efforts began in the mid-1970s by an international group of users and implementors who adopted the name Forth Standards Team. This effort resulted in the Forth-77 Standard. As the language continued to evolve, an interim Forth-78 Standard was published by the Forth Standards Team. Following Forth Standards Team meetings in 1979, the Forth-79 Standard was published in 1980. Major changes were made by the Forth Standards Team in the Forth-83 Standard, which was published in 1983.
The first meeting of the Technical Committee on Forth Programming Systems was convened by the Organizing Committee of the X3J14 Forth Technical Committee on August 3, 1987, and has met subsequently on November 11-12, 1987, February 10-12, 1988, May 25-28, 1988, August 10-13, 1988, October 26-29, 1988, January 25-28, 1989, May 3-6, 1989, July 26-29, 1989, October 25-28, 1989, January 24-27, 1990, May 22-26, 1990, August 21-25, 1990, November 6-10,1990, January 29-February 2, 1991, May 3-4, 1991, June 16-19, 1991, July 30-August 3, 1991, March 17-21, 1992, October 13-17, 1992, January 26-30, 1993, June 28-30, 1993, and June 21, 1994.
Requests for interpretation, suggestions for improvement or addenda, or defect reports are welcome. They should be sent to the X3 Secretariat, Computer and Business Equipment Manufacturers Association, 1250 Eye Street, NW, Suite 200, Washington, DC 20005.
James D. Converse, Chair Donald C. Loughry, Vice-Chair Joanne Flanagan, Secretary
Producer Group Name of Representative -------------- ---------------------- AMP Incorporated Edward Kelly Charles Brill (Alt.) AT&T/NCR Corporation Thomas W. Kern Thomas F. Frost (Alt.) Apple Computer, Inc. Karen Higginbottom Compaq Computers James Barnes Digital Equipment Corporation Delbert Shoemaker Kevin Lewis Hitachi America Ltd. John Neumann Kei Yamashita (Alt.) Hewlett Packard Donald C. Loughry Bull HN Information Systems Inc. William George IBM Corporation Joel Urman Mary Anne Lawler (Alt.) Unisys Corporation John Hill Stephen P. Oksala (Alt.) Sony Corporation of America Michael Deese Storage Technology Corporation Joseph S. Zajaczkowski Samuel D. Cheatham (Alt.) Sun Microsystems, Inc. Scott Jameson Gary S. Robinson (Alt.) * Xerox Corporation Dwight McBain Roy Pierce (Alt.) 3M Company Edie T. Morioka Paul D. Jahnke (Alt.
Boeing Company Catherine Howells Andrea Vanosdoll (Alt.) Eastman Kodak Company James Converse Michael Nier (Alt.) General Services Administration Douglas Arai Larry L. Jackson (Alt.) Guide International Inc. Frank Kirshenbaum Harold Kuneke (Alt.) ** Hughes Aircraft Company Harold Zebrack National Communications Systems Dennis Bodson Northern Telecom Inc. Mel Woinsky Subhash Patel (Alt.) ** Recognition Tech Users Association Herbert P. Schantz Edwin Hale (Alt.) Share Inc. Gary AinsworthDavid Thewis (Alt.) U. S. Department of Defense William Rinehuls J. Pasquariello (Alt.) U. S. Department of Energy Alton Cox Lawrence A. Wasson (Alt.) Wintergreen Information Services John Wheeler
General Interest Group
American Nuclear Society Geraldine C. Main Sally Hartzell (Alt.) Assn. of the Institute for Certification of Computer Professionals Kenneth Zemrowski Nat'l Institute of Standards and Technology Robert E. Rountree Micharl Hogan (Alt.) Neville & Associates Carlton Neville ________________________ * Abstain ** Non-Response
Elizabeth Rather, Chair
Mitch Bradley, acting Vice-Chair
Don Colburn, Secretary
John Rible, Technical Editor
Len Zettel, Vocabulary Representative
Greg Bailey, Technical Subcommittee Chair
Organization Represented Name of Representative ------------------------ ---------------------- ATHENA Programming, Inc. Greg Bailey Howe Fong (Alt.) Bradley Forthware Mitch Bradley Creative Solutions, Inc. Don Colburn Ford Motor Company Leonard F. Zettel, Jr. FORTH, Inc. Elizabeth Rather Dennis Ruffer (Alt.) Institute for Applied Forth Research Lawrence Forsley Horace Simmons (Alt.) Johns Hopkins University, Applied Physics Lab. John Hayes Mephistopheles Systems Dave Harralson NASA/Goddard Space Flight Center James Rash Nomadic Software John K. Stevenson Unisyn, Inc. Gary Betts Stephen Egbert (Alt.) Up and Running Martin Tracy Vesta Technology Jack Woehr Individual Members Loring Craymer John Rible E. (Jet) Thomas X3 Liasons Clyde R. Camp Kathleen McMillan
The following organizations and individuals have also participated in this project as Technical Committee members, alternates, or observers. The Technical Committee recognizes and respects their contributions:
British Columbia Inst. of Tech. MCI Telecommunications Corp. Computer Cowboys Micromotion Computer Sciences Corp. MicroProcessor Engineering Ltd. Computer Strategies, Inc. National Institute of Standards & Technology Digalog Corp. NCR Medical Systems Group Embedded Sys. Programming Mag. Performance Packages, Inc. Forth Interest Group (FIG) Purdue University H.B. Pascal & Co., Inc. Robert Berkey Services Harris Semiconductor Shaw Laboratories IBM Corporation Social Security Administration IEEE Software Engineering Kelly Enterprises Texas Instruments Laboratory Microsystems, Inc. The Dickens Company Maxtor Corp.
David J. Angel Ray Duncan Charles Moore Dean Sanderson Wil Baden Douglas Fishman Mike Nemeth George Shaw Robert Berkey Tom Hand Harry Pascal Gerald Shifrin Ron Braithwaite Gregory Ilg Stephen Pelc Robert Smith Jack Brown Charles Keane Dean Perrine Tyler Sperry Chris Colburn Guy M. Kelly David C. Petty Tom Zimmer Ted Dickens Andrew Kobziar Bill Ragsdale James Ryland John Dorband Martin Lascelles
The Core word set, defined in sections 1 through 6, contains the required words and capabilities of a Standard System. The other word sets, defined in sections 7 through 17, are optional, making it possible to provide Standard Systems with tailored levels of functionality.
A.1.3.1 Word sets
Sections 3 and 4 contain the usage and documentation requirements, respectively, for Standard Systems and Programs, while section 5 specifies their labeling.
Annex A provides some of the rationale behind the committee's decisions in creating this Standard, as well as implementation examples. It has the same section numbering as the body of the Standard to make it easy to relate each requirements section to its rationale section.
Annex B is a short bibliography on Forth.
Annex C provides an introduction to Forth.
Annex D discusses the compatibility of ANS Forth with earlier Forths, emphasizing the differences from Forth-83.
Annex E presents some techniques for writing portable programs in ANS Forth.
Annex F includes the words from all word sets in a single list, and serves as an index of ANS Forth words.
This Standard designates the following words as obsolescent:
6.2.0060 #TIB 18.104.22.1680 FORGET 6.2.2240 SPAN 6.2.0970 CONVERT 6.2.2040 QUERY 6.2.2290 TIB 6.2.1390 EXPECT