home *** CD-ROM | disk | FTP | other *** search
- Program: GNU bc
- Author: Philip A. Nelson
- E-mail: phil@cs.wwu.edu
- OS: UNIX (BSD, System V, MINIX, POSIX)
- Copying: GNU GPL version 2
- Copyright holder: Free Software Foundation, Inc.
- Version: bc version 1.01
- Required: vsprintf and vfprintf routines.
- Machines: It has been compiled and run on the following environments:
- BSD4.3 (VAX 11)
- MINIX 1.5 (IBM PC, both K&R and ANSI compilers)
- MINIX 1.5 (pc532)
- SUN-OS 4.1 (SUN 3 and SUN 4)
- SVR3V5 (Motorola 68K)
- SVR3.2 (3B2)
- SVR4.0.2 (a 386 box)
- ULTRIX 4.1 (DEC 5000)
- UTS (Amdahl)
-
- bc is an arbitrary precision numeric processing language. Syntax is
- similar to C, but differs in many substantial areas. It supports
- interactive execution of statements. bc is a utility included in the
- POSIX P1003.2/D11 draft standard.
-
- This version was written to be a POSIX compliant bc processor with
- several extensions to the draft standard. Option flags are available
- to cause warning or rejection of the extensions to the POSIX standard.
- For those who want only POSIX bc with no extensions, a grammar is
- provided for exactly the language described in the POSIX document.
- The grammar (sbc.y) comes from the POSIX document. The Makefile
- contains rules to make sbc. (for Standard BC)
-
- Since the POSIX document does not specify how bc must be implemented,
- this version does not use the historical method of having bc be a
- compiler for the dc calculator. This version has a single executable
- that both compiles the language and runs the a resulting "byte code".
- The "byte code" is NOT the dc language.
-
- Also, included in the initial distribution is the library file
- vfprintf.c for MINIX systems. My minix 1.5 did not have this file.
- Also, you should verify that vsprintf.c works correctly on your
- system.
-
- The extensions add some features I think are missing. The major
- changes and additions for bc are (a) names are allowed to be full
- identifiers ([a-z][a-z0-9_]*), (b) addition of the &&, ||, and !
- operators, (c) allowing comparison and boolean operations in any
- expression, (d) addition of an else clause to the if statement, (e)
- addition of a new standard function "read()" that reads a number from
- the standard input under program control, (f) passing of arrays as
- parameters by variable, (g) addition of the "halt" statement that is
- an executable statement unlike the quit (i.e. "if (1 == 0) quit" will
- halt bc but "if (1 == 0) halt" will not halt bc.), and (h) the
- addition of the special variable "last" that is assigned the value of
- each print as the number is printed.
-