RELEASE 0.21 of BDB-Basic:
1. ACCEPT FIELD support is now complete. It also
includes the ability to input numeric values.
2. CRT.* member additions :
CRT.CRTMODE
CRT.HAS_UNDERLINE etc.
CRT.HAS_COLOUR
3. PRINT Bug Fixes:
FG(X) and BG(X) now only issues colour setting
calls when colours are supported (otherwise these
are ignored). This allows you to write programs
using colour without having to code separately
for monochrome terminals.
Fixed an annoying roundoff bug in the PRINT
statement support. Now values are printed with
the correct precision.
4. PIC$(X,FMT$) function support.
Now you can do picture formatting, very similar
to COBOL. This is also used by the ACCEPT FIELD
statement (depending upon options used).
5. Interpreter Bug Fixes.
Fixed an internal floating point expression error
related to %g was also eliminated by using the
%.*g technique. Now values like 10032.54 don't
turn into 10032.50.
6. SYS.* Member additions:
Added precision constants SYS.DIM_DIGITS,
SYS.LONG_DIGITS, SYS.SHORT_DIGITS, SYS.LONG_BITS
and SYS.SHORT_BITS.
Also added the mathematical constants:
SYS.PI, SYS.PI2, SYS.PIBY2, SYS.INVPI and SYS.E.
Constants to support the random number generator
were added: SYS.RINT, SYS.RBERNOULLI,
SYS.RBINOMIAL, SYS.RNEGATIVE_BINOMIAL,
SYS.RPOISSON, SYS.RGEOMETRIC, SYS.RUNIFORM,
SYS.REXPONENTIAL, SYS.RWEIBULL, SYS.RNORMAL,
SYS.RLOGNORMAL, SYS.RCHISQUARE,
SYS.RTDISTRIBUTION, SYS.RFDISTRIBUTION, and
SYS.RERLANG.
7. Added Scientific Function Support:
Implemented interpreter changes to treat a large
group of functions under a few byte codes. This
paved the way for adding many functions.
Implemented many mathematical functions: SIGN(x),
ACOS(x), ASIN(x), COSH(x), SINH(x), EXP(x),
LOG(x), LOG10(x), SIN(x), COS(x), TAN(x), TANH(x),
CEIL(x), FABS(x), FLOOR(x), SQRT(x), POW(x,y),
FMOD(x,y) and ATAN2(x,y).
Added functions DEG(x) and RAD(x) to convert
between degrees and radians.
8. Misc Functions:
Added and documented essential functions CHR$(X)
and ASC(S$).
9. Format Funtions.
Added conversion functions GFMT$(x) and EFMT(x).
10. Numeric Conversion Functions
Now SHORT(S$), LONG(S$) and DIM(S$) calls will
now accept string arguments. A string to numeric
conversion takes place if the values are
numerically valid (leading and trailing blanks are
ignored).
11. New String Functions
Added the functions INSTR(X$,Y$), STRING$(X$,N),
LEFT$(X$,N), MID$(X$,START,N) and RIGHT$(X$,N).
12. Advanced Random Number Support
Thanks to the sourceforge.net authors Weili Chen
and Zixuan Ma, I was able to add advanced random
number support SRAND(X) and RAND(X,...) to the
interpreter.
* Standard rand(3) integer
* Bernoulli distribution
* Binomial distribution
* Negative Binomial distribution
* Poisson distribution
* Geometric distribution
* Uniform distribution
* Exponential distribution
* Weibull distribution
* Normal distribution
* Log-Normal distribution
* Chi-square distribution
* t-distribution
* F-distribution
* Erlang distribution
===========================
What is BDB-Basic?
This project is about a BASIC language interpreter that is based
heavily upon the Berkeley DB database software (or just BDB). It not
only uses BDB for managing user databases, but uses BDB internally for
indexing of variable tables and other program elements.
Project Focus:
With literally hundreds of other BASIC dialects out there, you need to
be informed about how this BASIC differs from others. Listed below are
some of the features of this BASIC implementation:
* Designed to be simple to program by non-programmers, whether
SOHO operators, hobbyists or scientists/engineers.
* Designed to be "database powerful" with a minimum of programming
(no SQL required)
* Simple for writing screens, complete with attribute and colour
control
* Few if any hard-coded constants. The interpreter provides a few
built-in structures with constants that can be referred to by name.
* Functionality and simplicity first (not smallness or speed)
* Business and programmer friendly oriented features (for example
the PIC$() function)
Project Influences
* Data General's MICOS BASIC is the main inspiration for many of
the interpreter concepts
* Ada95 inspired the implementation of arrays and array slicing
* The built-in records and constants are the author's own
innovation
===========
More Information about BDB-Basic and its supported language features
are found here:
http://bdbbasic.wiki.sourceforge.net/
--
Warren.


|