
GNU extended bc is a superset of POSIX bc, meaning all POSIX bc programs run
on GNU bc, but not vice-versa. The GNU version adds many features, primarily
inspired by the C programming language, for enhanced scripting capabilities.

************ NOTE: KEY DIFFERENCES INCLUDE, (there are others):- ************

Language Features and Syntax:
-----------------------------

Variable Names:
In POSIX bc, variable, array, and function names are limited to a single
lowercase letter. GNU bc allows for full, multi-character alphanumeric names
(letters, digits, and underscores).

Control Flow:
'else' clause: GNU bc supports the else clause in if statements, which is
not available in POSIX bc.

'continue' statement:
The continue statement to skip to the next iteration
of a for loop is a GNU extension.

Boolean Operations:
POSIX bc uses relational expressions only within if and
'while' statements. GNU bc includes C-style logical operators (!, &&, ||)
that can be used in general expressions and result in a value of 0 or 1.

Assignment Operators:
GNU bc includes "old-style" assignment operators like +=, -=, *=, etc.,
which are not strictly required in the POSIX standard.

Function Definitions:
POSIX bc has strict formatting rules for function definitions, requiring the
opening brace to be on the same line as the define keyword. GNU bc is more
flexible, allowing newlines around the opening brace.

Input/Output and Usability:
---------------------------

Output:
POSIX bc outputs a result only when an expression is not assigned to a
variable. GNU bc adds an explicit print statement.

Input:
GNU bc includes a 'read' statement to allow interactive input of a number
into a running calculation. POSIX bc does not have this feature.

Last Variable:
GNU bc provides a built-in last variable that always stores the value of the
last printed number, which is an extension.

Comments:
Both support /* ... */ C-style comments. GNU bc also supports single-line
comments starting with #, extending to the next newline.

Implementation and Compatibility:
---------------------------------

Platform Availability:
GNU bc is widely available across many platforms (Linux, macOS, Windows)
and is backward compatible with POSIX bc. POSIX bc is typically found only
on traditional Unix and Unix-like systems and sees far less use today.

Implementation Method:
Historically, POSIX bc implementations often compiled to the dc calculator
language. GNU bc is a separate, single C executable that compiles and runs
its own bytecode, offering a more robust and faster interpreter.

Standard Compliance:
GNU bc can be run in strict POSIX mode using the -s command line option or
by setting the POSIXLY_CORRECT environment variable.

