How do I love thee, Borland’s Turbo C? By Lorraine Lara F. Lachica #include <stdio.h> #include main() { clrscr(); printf(“\nHELLO WORLD!”); getch(); } Maybe for non-CS majors, the words you’ve read above are useless and just combination of words and symbols. But for those who have a background in C language and codes enthusiasts, these words are actually a source code for a simple program that prints: “HELLO WORLD!”
GETTING TO KNOW C C evolved from previous languages, BCPL and B. Martin Richard developed BCPL as a language for writing operating systems software and compilers in 1967. In 1970, early versions of UNIX operating system was developed using B programming language, which was based on BCPL. Ken Thomson spearheaded the design and implementation. Both BCPL and B presented complications such as all data are considered machine words. Because of this obstruction and several other problems, it led to the development of a new programming language based on B. C is a programming language designed by Dennis Ritchie in 1972 at At&T Bell Laboratories. C makes use of the features and concepts of BCPL and B while adding other potent capabilities. It was designed as a language that enables the user to fully access the computer’s power without being caught up in the tedious writing Assembly. Today, major operating systems are written using C or C++ Turbo C is a particular version of C developed by Borland International Corporation in 1987. Turbo C is more than just a version of the C language. It includes a complete environment in which to create, test and run programs. Version history * Version 1.0, on May 13, 1987 - It offered the first integrated edit-compile-run development environment for C on IBM PCs. The software was, like many Borland products of the time, bought from another company and branded with the "Turbo" name,
in this case Wizard C by Bob Jervis[1] [2] (The flagship Borland product at that time, Turbo Pascal, which at this time did not have pull-down menus, would be given a facelift with version 4 released late in 1987 to make it look more like Turbo C.) It ran in 384KB of memory. It allowed inline assembly with full access to C symbolic names and structures, supported all memory models, and offered optimizations for speed, size, constant folding, and jump elimination. [3] * Version 1.5, in January, 1988 - This was an incremental improvement over version 1.0. It included more sample programs, improved manuals and other bug fixes. It was shipped on five 360 KB diskettes of uncompressed files, and came with sample C programs, including a stripped down spreadsheet called mcalc. This version introduced the header file (which provided fast, PC-specific console I/O routines). (Note: The copyright date in the startup screen is 1987, but the files in the system distribution were created in January 1988.) * Version 2.0, in 1989 The American release was in late 1988, and featured the first "blue screen" version, which would be typical of all future Borland releases for MS-DOS. The American release did not have Turbo Assembler or a separate debugger. (These were being
sold separately as the product Turbo Assembler.) See this ad for details: Turbo C, Asm, and Debugger were sold together as a professional suite of tools. This seems to describe another release: Featured Turbo Debugger, Turbo Assembler, and an extensive graphics library. This version of Turbo C was also released for the Atari ST, but distributed in Germany only. Turbo C Environment Editor – used to create program source code. Compiler – used to convert source code into machine language. Debugger – used for testing a program and locating programming errors. Run-time – the capability to run a program within the Turbo C environment User-Interface – the various features of Turbo C are integrated into a single program, which allows you to smoothly process from source code entry to compilation, to debugging, to running without leaving the Turbo C environment. Features * TurboC provides most of the console-i/o functionality of Turbo C's conio.h header, mapping it to related ncurses functionality. (Currently, every conio function except cscanf is supported.) * TurboC provides most of the "BGI" functionality of Turbo C's graphics.h header. At present (20020608), implementation of these features is mostly complete except for the temporary lack of stroked-font support. * TurboC provides a sprinkling of other missing functionality like the strupr and strlwr functions. * Check out the complete list of available functions. Deficiencies * Refer to the complete list of bugs and issues. So far, the library is only as complete as it needs to be for the kind of programs I typically used to write in Turbo C. As I port more of my old programs to *nix, the TurboC libraray will presumably become more complete. Presently, support for conio.h is essentially complete, and support for graphics.h is essentially complete except for displaying text. * In the ported program, the text-console window is logically sized properly, but is not physically sized properly unless xterm is used. If other terminals are used (such as KDE Konsole), the window must be resized manually by the user. * Borland's Turbo C is a 16-bit compiler, whereas the GNU gcc compiler I'm targeting is 32-bit. This results in a discrepancy in the integer datatypes. TurboC handles the (hopefully) most common cases by means of macros; unhandled cases will cause compile-time errors and must be fixed manually. This is covered in detail on the usage page.
* Mixing and matching stream-based functionality (like getchar ,printf, and so on) with "console" based functionality (like getch, cprintf, and so on) probably won't work. Again, look at the usage page.
BUT WAIT, THERE’S MORE… THE ABC’S Literals Can be further classified into numeric and non-numeric literals Numeric literals Can either be whole and real numbers. Whole numbers can be called integers. These type of numbers do not contain any fractional part and does not have a decimal. Real numbers are also called floating-point numbers. Non-numeric Literals May be in the form of a character or series of characters. A character should be enclosed in single quotes (e.g. ‘a’, ‘+’, ‘5’), while a string should be enclosed in double quotes. Special Characters may also be used, but it should be preceded by an escape character (backslash). Identifiers An identifier is composed of sequence of letters, digits and a special character (underscore) Identifiers are defined be the programmer, and should be descriptive An identifier consists of as many as 127 characters The first character must be a letter or an underscore (_). Characters after the first letter can be letters, digits and underscores. Identifiers are case sensitive;
Escape Character
Meaning (name of character)
\n \t \f \b \0 \’ \% \a \\ \r \” \v
Insert a new line Horizontal Tab Formfeed Backspace Null character Single quote Percent symbol Alert Backslash Carriage return Double quote Vertical tab
Variables A variable is an identifier which can be assigned a value within a program. Store a value that can be changed. Constants Constants are identifiers that can store a value that cannot be changed It is advisable to use capital letters with underscores between each word to differentiate them from variables Keywords A pre-defined words of the language. Keywords are also known as reserved words Keywords are words “reserved” by programming language for expressing various statements and constructs
TURRBO C 101 Here is a sample source code that you can try. This code generates a simple calculator: #include <stdio.h> #include void main() { double number1 = 0.0; double number2 = 0.0; char operation = 0; printf("\nEnter the calculation\n"); scanf("%lf %c %lf", &number1, &operation, &number2); switch(operation) { case '+': printf("= %lf\n", number1+ number2); break; case '-': printf("= %lf\n", number1 - number2);
break; case '*': printf("= %lf\n", number1 * number2); break; case '/': if(number2 == 0) printf("\n\n\aDivision by Zero #ERROR!\n"); else printf("= %lf\n", number1 / number2); break; case '%': if((long)number2 == 0) printf("\n\n\aDivision by Zero #ERROR!\n"); else printf("= %ld\n", (long)number1 % (long)number2); break; default: printf("\n\n\aIllegal operation!"); } } Find these facts amazing? So why don’t you try installing your own Turbo C and be a pro in C language!
Sources: http://en.wikipedia.org/wiki/Turbo_C http://edn.embarcadero.com/article/21751 http://www.turboexplorer.com/