[comp.sys.ibm.pc] Borland Turbo-C, Turbo-BASIC, Numerical Methods Toolbox

mercury@ut-ngp.UUCP (02/08/87)

[]

I found the following on CompuServe tonight, and, seeing no such
postings on the net of a similar nature, thought I'd provide them for
general consumption.  I have no affiliation with Borland Intnl.,
though I am a satisfied user of Turbo-Pascal.  I am posting these
announcements as I feel that they are of general interest.

/------/


BORLAND CHALLENGES ALL PLAYERS WITH TURBO C: OFFERS FASTEST OPTIMIZING C
COMPILER FOR MICROCOMPUTERS AT $99.95

Programmers Can Compile From Command Line Interface Or From Borland's Integrated
Environment

SCOTTS VALLEY, Calif. -- Programmers embarking on serious software development
projects, and novices taking their first crack at the C programming language,
can harness the power of new Turbo C from Borland International, Inc. The new
language development system compiles at a fast 7000 lines of code per minute.
Turbo C is the only optimizing C compiler for microcomputers that provides end
users with a choice of using either a conventional-style command line interface;
or the integrated environment that Borland has become known for, complete with
built-in editor, compiler and Linker.

Turbo C provides a one-pass compiler, full control of memory models, and
extensive code optimizations. In benchmark tests (attached), Turbo C generates
the fastest, smallest object code. Turbo C has a built-in Turbo linker, also
provided as a standalone program for use in the command line mode.

According to Borland president Philippe Kahn, "People use C because of the
conciseness and flexibility of the language...and Turbo C is best described as a
high level language tool that delivers programming control at the low end as
well. We are proud to repeat the concept of Turbo Pascal, by delivering a
lightning fast compiler and a feature-rich development environment at a fraction
of the cost of what might be considered as a comparable offering."

                    Turbo C's Compiler and Linker

Turbo C is a single-pass compiler that generates intermediate data structures in
memory. In contrast, most C compilers are four or five-pass compilers that
compile using temporary files on disk. Turbo C compiles to memory at fast raw
compile times exceeding 7000 lines/minute on a 6 MHz IBM PC AT.

Turbo C supports 6 memory models: Tiny, Small, Compact, Medium, Large, Huge.
Near pointers and far pointers allow the programmer to take full advantage of
the 8086 microprocessor's architecture with the mixed model technique employed
in Turbo C.

A  fast linker, like that implemented in Turbo Prolog, is compatible with the
DOS linker and links approximately two to ten times faster than the DOS linker
while it is about one-fifth the size.

Turbo C features a built-in LINT with extensive error checking for streamlined
development and debugging; and full support of ANSI prototypes. Optional Pascal
calling conventions have been included for added efficiency and optimization
power.

A full range of Compiler options are provided including inline assembler,
multiple levels of optimization, generation of 80186/80286/8087 instructions,
warning supression, and multiple memory models. Compiler optimizations include
automatic register assignment and common sub-expression elimination.


                 In Support of Industry Standards for C
                          and Runtime Libraries

Turbo C implements the forthcoming ANSI C standard and delivers full support of
Kernighan and Ritchie C. Special extensions for the PC environment include six
memory models; and extensions for mixed-language, mixed-model programming.
Support for software interrupt functions, and unique support for inline
assembler, are both implemented in Turbo C.

The Turbo C library includes standard functions and support for the IEEE
Floating Point standard (with software emulation if no 8087 is present). Support
for UNIX compatibile library routines, and supplemental functions for DOS and
BIOS calls are also included in the library for Turbo C.


                     The Development Environment

Turbo C features a pull down menu environment that is the hallmark of other
widely-used Borland language tools such as Turbo Prolog and the forthcoming
Turbo Basic. Because Turbo C also comes complete with a command line version,
professional C programmers and software developers can select compile options
from the command line, from the integrated environment or from a configuration
file; without the need to set environment variables.

The integrated environment in Turbo C supports an automatic Make/Project
Facility designed for managing program development. A separate Make program is
provided for the command line version. This Facility compiles all modules in a
project, or recompiles only the modules that have been modified since last
compiled.

The Run operation within the integrated environment will recompile all necessary
files, generate the executable code and run the program, then return back to the
user interface (UI).

Two tiled, zoomable windows -- the Editor Window and the Message Window -- can
be invoked within the editor; and the user can toggle between these windows with
a hot key.

In the Editor Window, a full screen editor is provided with insert/overwrite,
auto-indent, and block copy, move, read, write, and delete along with many other
functions.

In the Message Window, warnings and compiler error messages can be turned off
selectively at different levels. Turbo C steps through multiple errors, and the
interactive editor automatically positions the cursor in the source code at the
point of error.
The integrated help system in Turbo C is an abbreviated form of the reference
manual, showing declarations and descriptions of all library functions for the
large reference libraries commonly associated with the C language.

                         The Turbo C User Manual

Turbo C's user manual is Turbo Pascal users learning to program in C.

Borland International, Inc., was founded as a company devoted to the development
of superior language tools. The company's major language development software
includes Turbo Pascal, Turbo Prolog, Turbo Basic and now Turbo C, and their
accompanying Toolbox products. Turbo Pascal and Turbo Prolog are the leading
language tools in their respective categories. Both Turbo Basic and Turbo C are
scheduled for delivery beginning in the first half of 1987.

Turbo C will be available for $99.95 (suggested retail price) either directly
from Borland, or through its distributors and dealers worldwide. For more
information, contact Borland International, 4585 Scotts Valley Drive, Scotts
Valley, CA, 95066. Telephone (408) 438-8400.

Benchmarks

Sieve benchmark (25 iterations)

                     Turbo C Microsoft C

  Compile Time          3.89 16.37
  Compile and Link Time 9.94 29.06
  Execution Time        5.77 9.51
  Object Code Size       274 297

Dhrystone benchmark

                      Turbo C Microsoft C

  Compile Time           5.93 30.70
  Compile and Link Time 10.60 44.22
  Execution Speed        1282 1240
    (Dhrystones/second)
  Object Code Size       1164 1375

Benchmarks run on a 6 mhz IBM AT using Turbo C version 1.0 and the Turbo Linker
version 1.0; Microsoft C version 4.0 and the MS overlay linker version 3.51.Y7 JLast page !


BORLAND'S TURBO BASIC DELIVERS FASTEST COMPILATION, TRUE RECURSION, BASICA
COMPATIBILITY, 8087 SUPPORT

SCOTTS VALLEY, Calif -- Thousands of people who write programs in BASIC or plan
to in the future can now boost their programming skills and write cleaner, more
elegant programs with Turbo Basic from Borland International, Inc.  The new
language development  environment for IBM and compatible PCs offers
functionality and speed previously unavailable from other BASIC compilers on the
market,  by  combining  the interactive strength of BASIC with the structured,
modular approach of Pascal. Turbo Basic achieves the fastest benchmarked
compilation speeds among commercially-available BASIC compilers for PCs.

   Turbo Basic employs the same powerful yet easy-to-use language development
environment that is characteristic of Turbo Pascal and Turbo Prolog,  Borland's
first two language products and  market   leaders  in their  respective
categories. The  package includes a fast memory-to-memory compiler, full screen
editor, an internal linker and runtime library, and Microcalc spreadsheet
complete with source code.

   Combined support  of  true recursion,   full  8087 integration,  block
structured programming statements,  and the ability to access all of the
computer's memory,  set Turbo Basic apart from contenders, and make it an ideal
BASIC programming environment for  both beginning and seasoned programmers.

   New Turbo Basic also supports large multiline functions and procedures with
true local, static and global variables.  It is compatible with IBM's Advanced
Basic, (BASICA) and Microsoft GWBasic, and supports full EGA graphics. Turbo
Basic has a suggested retail price  of $99.95 and is expected to  begin delivery
in 1Q 1987.

TURBO BASIC PRODUCT BACKGROUND

Floating Point and Integer Suppo

   Turbo Basic answers one of the single most popular demands of BASIC users:
speed.  Full 8087/80287 (math coprocessor) support is provided in Turbo Basic,
which generates inline coprocessor instructions (with software emulation if no
8087 is present). Intermediate results are calculated to 80 bits of precision.
Built-in conversion functions take BASICA floating point data and convert it to
Turbo Basic's standard IEEE floating point format. Programs using integer
mathematics can benefit from  the implementation of a new 32 bit long integer
data type in Turbo Basic.

A Professional Development Environment

   Turbo Basic has the look and feel of other Borland software programs,  with
its pull-down menus,  context-sensitive help, and full window management with
separate windows for editing,  messages,  tracing and program execution.  The
user has full control of placement,  size and color of windows in the
environment.  The Compiler, Editor and Executable programs in Turbo Basic are
fully integrated.  Program text can be output to a window or to the full screen.

   Turbo Basic automatically positions the cursor at the point of error in the
source code whenever compile, runtime or I/O errors occur.  Turbo Basic programs
can be run within this programming environment,  or  Turbo Basic  can generate
executable and chain files,  without requiring a linking step. As with other
Borland language tools,  Turbo Basic allows users to create stand-alone
programs,  with no support files,  no royalties and no licensing requirements.

Structured Programming in Turbo Basic

   Turbo Basic provides extensiv block structured programming statements.
Conditional control is provided by the block IF (including ELSEIF) and SELECT
CASE statements.

   Support for DO WHILE, DO UNTIL, LOOP WHILE, and LOOP UNTIL statements in
Turbo Basic supplement the traditional repeat control statements of BASIC. True
recursive procedures and functions -- with local, static and global variables --
make Turbo Basic highly suitable for the experienced BASIC programmer developing
large programs. Recursion, or the ability of a procedure and function to call
itself, has been a long awaited feature for BASIC programming.

   The EXIT statement can be use in procedures,  functions or any block
statement (FOR, WHILE, DO, IF, SELECT CASE).

   Line numbers are optional in Turbo Basic,  and alphanumeric labels can be
used to make programs more readable.

   A new named constants feature aids structured programming, helps  generate
efficient code,  and  supports conditional compilation.  With conditional
compilation -- offered to BASIC programmers for the first time with Turbo Basic
-- users can write a single program but actually have several different versions
of that program, simply by setting flags at compile time.  In this way the user
need only update and maintain one program.The Turbo Basic compiler automatically
knows when event trapping is required, and generates the appropriate code, thus
saving the programmer from the inconvenience of setting switches before
compiling. Event trapping can be explicitly turned on and off at points in the
source program to speed up execution time.  A short circuit  expression
evaluation feature in Turbo Basic promotes faster execution and more efficient
code.

Memory Management

   The  $SEGMENT compiler directive in Turbo Basic supports large program
development beyond the traditional 64K byte program limits of many other BASIC
compilers.

   All available memory may be used for array data, with any single  array  up
to 64K bytes.   Dynamic  arrays allow specification  of array size at runtime
for efficient use of memory,  with defined upper and lower bounds.

   String data can occupy up to 64K of memory. Turbo Basic provides dynamic
string memory management, and there is no requirement to wait for string space
to be compacted.

Operating System and Assembly Language Interface

   Turbo Basic extends BASIC to provide a call interrupt statement allowing easy
access to all DOS services  and BIOS interrupts directly from the source
program.  With Turbo Basic,  the  programmer can call Assembly language INLINE
procedures by specifying the hex code or loading in a .COM file at compile time.

   The introduction of Turbo Basic marks Borland's third major new language
development system since Turbo Pascal was launched in November, 1983. The
company markets a growing family of high performance, modestly priced software
including programming language products, business productivity software,
development tools for artificial Intelligence applications,  electronic versions
 of leading reference works,  and scientific and engineering software tools.  A
number of Borland products are leaders in their respective software categories;
such as Turbo Pascal, SideKick, Reflex: The Analyst, Turbo Prolog and Turbo
Lightning.

   For more information, contact Borland International, Inc., 4585 Scotts Valley
Drive, Scotts Valley, Calif., 95066; (408) 438-8400.


BORLAND ANNOUNCES POWERFUL NEW TURBO PASCAL NUMERICAL METHODS TOOLBOX FOR
SCIENTIFIC & ENGINEERING MARKET

SCOTTS VALLEY,  Calif.  -- Borland International, Inc., has developed the Turbo
Pascal Numerical Methods Toolbox,  a powerful collection  of  state- of-the-art
applied mathematics tools  for  Borland's   Turbo Pascal language  development
system.    Now scientists, engineers, university professors and their students,
and  other professionals can write their own customized  programs for numerical
 analysis.  This new toolbox is to developers using Turbo Pascal what the
powerful IMSL and NAG Fortran libraries are to scientists and engineers
developing Fortran programs on mainframes.

   The  Numerical  Methods Toolbox is a  collection  of Turbo Pascal  routines
and programs, each  with   an accompanying demonstration program  example.
Comprised of ten modules,  the Toolbox provides   a  powerful  solution to
number-crunching applications   such   as: finding   solutions   to equations,
interpolations, calculus    with   numerical derivatives   and  integrals,
matrix operations including inversions, determinants, Eigenvalues, differential
equations,   least   squares approximations, and Fourier transforms.

   The  generic  procedures contained in each module  can be easily  modified
and included in  the  user's  own programs. As  with  other Borland Toolboxes,
complete source code  is  provided   for each program in the Turbo Pascal
Numerical  Methods Toolbox (excluding  the graphics demonstration program, which
requires use of Turbo Pascal Graphix Toolbox to recompile).

   Turbo  Pascal Numerical Methods Toolbox is available for IBM and  compatible
PCs,  XTs and ATs;  and runs with or without  an 8087/80287  math coprocessor.
The graphics module requires the use of a graphics  monitor  and  Turbo Pascal
Graphix  Toolbox,  and is compatible with CGA or Hercules compatible graphics.
The Toolbox is not copy protected,  and has a suggested retail price of  $99.95.
Delivery is expected to begin in 1Q 1987.

   The Turbo Pascal Numerical Methods Toolbox joins Eureka: The Solver,  as
Borland's first two products in their newly- announced Scientific  & Engineering
Software Division. The company  also plans  to introduce  other  new products
for  the  fast-growing scientific and engineering market in the future.   Other
Borland products  include  Turbo Pascal  and  its Toolboxes, SideKick, Reflex:
The Analyst, Turbo  Prolog, and Turbo Lightning.

   For  more information, contact Borland International, 4585 Scotts Valley
Drive, Scotts Valley, CA, 95066. Telephone (408) 438-8400.

TURBO PASCAL NUMERICAL METHODS TOOLBOX

PRODUCT BACKGROUND

   Turbo  Pascal Numerical Methods  Toolbox  is divided into ten areas of
numerical analysis.

   Certain  of  the  toolbox procedures  are  iterative, with increased
accuracy  in succeeding iterations. Tolerances  and maximum iteration counts can
be specified in order to achieve  a desired  level  of accuracy. Some modules
also  provide error estimates.

1.  Zeros of a Function - A module which can be used to find points  where  a
given function is zero.   The bisection method, Newton  method,   secant method,
Newton-Horner's method  for polynomials, Muller's   method for  complex
functions,   and Laguerre's method for polynomials are contained and used in
this module.

2.  Interpolation - Given a set of function values, define a smooth  function
passing through the values;  using either  the Lagrange polynomial interpolant
or a cubic spline.

3. Differentiation - This module provides approximations for the derivative of a
given function, from a given slope or rate of change   of   the  function; using
  divided   differences or interpolants.

4.   Integration   - To approximate  the  integral of  a given function,  based
on the area under  its graph. Trapezoidal  rule,  Simpson's rule,  adaptive
Simpson's rule, adaptive Gaussian quadrature, and the Romberg method can be used
for approximations.

5.  Matrix  Inversion  - Systems of linear equations can  be solved with this
module, which computes  determinants, inverses and  LU decompositions.   It
makes use of Gaussian elimination, Gaussian elimination  with partial pivoting,
and  Gauss-Seidel iteration.

6.  Matrix  Eigenvalues  -  This module is  useful  to  find all eigenvalues
and eigenvectors, given   all   of   the characteristics of a linear system.
It makes use of the Jacobi, Wielandt, power and inverse power methods.

7.  Differential Equations- Solve initial value and boundary value  problems
with this module using the Runge-Kutta and Adams- Bashford/Adams-Moulton
methods. This applies to initial  value problems  defined by first or higher
order  ordinary differential equations,  and  to systems of differential
equations.   Boundary value problems can also be solved for linear or nonlinear
second order ordinary differential equations.

8. Least Squares - This module is used to determine the best fit for a given set
of data points with a linear combination of a given   set   of functions. Linear
regression,   polynomial regression,  and  fitting  with trigonometric,
exponential  and logarithmic functions are among the examples included.

9.   Fourier   Transforms   -The Fast  Fourier   Transform is implemented to
decompose a periodic function into its sinusoidal parts.

10.  Graphics  - The Graphics Module demonstrates  the  least square  and
Fourier Transform modules  graphically.   It  also compares  a  set  of defined
data points to  several  models and displays  the  results  or writes the
results to  a  disk file.  With the Turbo Pascal Graphix Toolbox, these programs
can be recompiled.

////
-- 

Larry Baker               Net/UUCP:  mercury@ut-ngp.{ARPA, UUCP, UTEXAS.EDU}
UT Austin                            ihnp4!seismo!ut-sally!ut-ngp!mercury
Computer Science          Local:     baker@walt.utexas.edu