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