Dieser Abschnitt bedarf einer grundsätzlichen Überarbeitung. Näheres sollte auf der Diskussionsseite angegeben sein. Bitte hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung.
Nachdem Borland mit Turbo Pascal großen Erfolg hatte und sich die Sprache zum Quasi-Standard für die PC-Anwendungsprogrammierung entwickelt hatte, brachte das Unternehmen drei weitere Entwicklungssysteme heraus, die dem Konzept von TurboPascal folgten: Turbo Basic, Turbo Prolog und 1987 TurboC.
TurboC bot die gleichen Funktionen wie TurboPascal: Eine integrierte Entwicklungsumgebung (IDE), einen Compiler und einen Editor. Dennoch wurde TurboC nicht so erfolgreich wie das Pascal-Schwesterprodukt. C war keine Schulsprache wie Pascal, sondern eher eine Sprache für Professionelle Entwicklung und Systemprogrammierung. TurboC betrat somit auf der Seite der Profis einen schon mit Entwicklungswerkzeugen gut besetzten Markt (Microsoft C, Lattice C, WatcomC usw.). Auf der anderen Seite war TurboC für Amateure und Anfänger nicht so interessant, da diese lieber einfache Sprachen lernen und benutzen wollten.
Dass sich TurboC trotzdem seine Gemeinde eroberte, lag u.a. an der Geschwindigkeit des kompilierten Codes, der Tatsache, dass damit auch 1987 schon umfangreiche Projekte realisiert werden konnten, und am im Vergleich zu den konkurrierenden Compilern sehr niedrigen Preis.
Von Anfang an spaltete sich das Produkt (wie auch später bei Pascal) in zwei Linien, eine für Einsteiger und eine für fortgeschrittene Nutzer. Anfangs hießen diese „Turbo“ und „TurboProfessional“, später einfach nur noch „Turbo“ und „Borland“. Sie entwickelten TurboC++ bis 1996 in diesen beiden Linien weiter bis zur Version TurboC++ 3.0 und Borland C++ 5.0. Wie bei TurboPascal gibt es auch ein TurboC++ für Windows (englischTurbo C++ for Windows), das international die Version 4.5 und in Japan 5.0 erreichte.
Von TurboC für den Atari ST gab es nur die Versionen 1.0, 1.1 und 2.0. Das Programm wurde von Borland nicht weiter gepflegt, sondern die Quelltexte wurden verkauft und das Produkt dann unter dem Namen Pure C noch einige Zeit weiterentwickelt.
1994 erschien die erste Vorabversion von Delphi, einer neu entwickelten integrierten Entwicklungsumgebung und Sammlung von Entwicklungswerkzeugen. Ab 1996 wurde auch das C++-Werkzeug in Delphi integriert. C++Builder 1.0 ist der direkte Nachfolger von BorlandC++ 5.02.
Anfang 2000 wurden TurboC 2.01 und TurboC++ 1.01 von Borland für den Privatgebrauch kostenlos zum Download angeboten. Im September 2006 veröffentlichte Borland jeweils eine kostenpflichtige Professional- und eine kostenlose Explorer-Version von TurboC++, TurboC#, TurboDelphi und TurboDelphifor.NET.
Rudimentäre Funktion eines zeitgenössischen Texteditors (Ausschneiden, Kopieren, Einfügen, Suchen, Ersetzen, Go-To-Line etc.) werden im Hauptmenü der TUI angeboten. Zuvor war dies nur durch Tastenkombinationen möglich.
Mausunterstützung
Zusammenhängende Textbereiche können mit der Maus oder über die Pfeiltasten mit gedrückter Umschalttaste markiert werden. In früheren Versionen musste der Beginn und das Ende eines Auswahlbereichs getrennt über Tastenkombinationen festgelegt werden.
Vollständige Unterstützung des AT&T C++ 2.0 Standards
Erweiterung der Online-Hilfe um Sprachelemente von C++ mit kurzen Beispielen für C und C++ Schlüsselworte, Funktionen und Operatoren.
Optional: eine umfangreiche Sammlung an Code-Beispielen.
Ab Turbo C++ 1.0 wird der Protected Mode verwendet, weswegen als Prozessor mindestens ein 80286 erforderlich ist. Es können aber immer noch Binaries für den 8088 erzeugt werden.
Die Professional Edition enthielt neben Turbo Assembler 2.0 und Turbo Debugger 2.0 auch noch das Profiler-Werkzeug Turbo Profiler 1.0.
Bereits seit der ersten Version werden sechs Speichermodelle unterstützt. Diese legen fest, wie der Speicher im Real Mode von x86-Prozessorensegmentiert werden soll.
Insgesamt gibt es vier Segmentregister: Code-Segment (CS), Data-Segment (DS), Stack-Segment (SS) und Extra-Segment (ES). Dabei existieren zwei Modi zur Adressierung der einzelnen Speicheradressen. Im Near-Modus wird nur der Offset angegeben, und das Segment wird einem Register entnommen. Eine Speicheradresse hat dabei eine Länge von 16-Bit. Im Far-Modus werden sowohl das Segment als auch der Offset angegeben. Eine Speicheradresse besteht dabei aus einem 16-Bit-Segment und einem 16-Bit-Offset, also insgesamt 32-Bit.
Das Tiny-Modell eignet sich, wenn der Speicherplatz sehr begrenzt ist und Programme möglichst klein ausfallen müssen.
Alle vier Segmentregister (CS, DS, SS und ES) werden auf die gleiche Speicheradresse gesetzt. Für Code, Daten und Stack stehen insgesamt nur 64KiB zur Verfügung. Es werden immer Near-Zeiger verwendet.
Programme, die das Tiny-Modell nutzen, können als COM-Datei bereitgestellt werden.
Small
64KiB
64KiB
Near
Near
Das Small-Modell eignet sich für Anwendungen mit durchschnittlicher Größe. Es handelt sich um die Standardeinstellung unter TurboC.
Die Code- und Datensegmente sind verschieden und überlappen sich nicht. Es stehen 64KiB für Code und 64KiB für Daten und Stack zur Verfügung. Daten-, Stack- und Extra-Segment beginnen an der gleichen Speicheradresse. Es werden immer Near-Zeiger verwendet.
Medium
1MiB
64KiB
Far
Near
Das Medium-Modell ist am besten für große Programme geeignet, die nicht viele Daten im Speicher halten.
Far-Zeiger werden für den Code, aber nicht für die Daten verwendet. Das Resultat ist, dass Daten und Stack zusammen auf 64KiB begrenzt sind, aber der Code bis zu 1MiB belegen kann.
Compact
64KiB
1MiB
Near
Far
Das Compact-Modell eignet sich, wenn der Code klein ist, aber eine große Menge an Daten adressiert werden muss. Es ist das Gegenteil des Medium-Modells.
Far-Zeiger werden für Daten aber nicht für den Code benutzt. Der Code wird auf 64KiB begrenzt, während die Daten einen Bereich von 1MiB haben.
Per Voreinstellung sind alle Funktionen und alle Datenzeiger Far.
Large
1MiB
1MiB
Far
Far
Das Large-Modell eignet sich nur für große Anwendungen.
Far-Zeiger werden sowohl für den Code als auch für die Daten verwendet und geben beiden einen Bereich von 1MiB.
Alle Funktionen und Datenzeiger sind per Voreinstellung Far.
Huge
1MiB
64KiB jedes Sgt.
64KiB
Far
Far
Das Huge-Modell eignet sich nur für sehr große Anwendungen.
Far-Zeiger werden sowohl für den Code als auch für die Daten verwendet.
TurboC begrenzt normalerweise die Größe aller Daten auf 64KiB. Das Speichermodell Huge hebt diese Beschränkung auf und erlaubt Daten, mehr als 64KiB einzunehmen.
Das Huge-Modell erlaubt mehrere 64KiB große Datensegmente, bis zu 1MiB für Code und 64KiB für den Stack.
Alle Funktionen und Datenzeiger werden als Far vorausgesetzt.
Die zentralen Bibliotheken wurden in TurboC für jedes Speichermodell gesondert implementiert. Je nachdem welches Speichermodell für den Kompiliervorgang ausgewählt wurde, werden die dazu passenden Bibliotheken automatisch eingebunden, wobei x den Wert T (Tiny), S (Small), M (Medium), C (Compact), L (Large) oder H (Huge) annehmen kann:
COx.OBI: Start-Code (Grundlegender Rumpf einer Anwendung)
Cx.LIB: Standardfunktionen (Datei- und Speicherverwaltung)
Ebenfalls unterstützt TurboC bereits ab der ersten Version das Einbinden von kompilierten Bibliotheken und zeilenweise Inline-Assemblerfragmente durch voranstellen des Schlüsselwortes _asm. Eine Möglichkeit mehrere Assemblerbefehle als Block einzubinden, besteht nicht.
12TurboC++ 3.1 for Windows.(JPG; 430KB)In:eBay.Borland International,1992,archiviertvomOriginalam15.Oktober 2022;abgerufen am 15.Oktober 2022(englisch,Verpackung von TurboC++ 3.1).
12TurboC++ 5.0J for Windows.(JPG; 204KB)In:auctions.afimg.jp.Borland International,1996,abgerufen am 6.Juli 2024(japanisch,Verpackung von TurboC++ 5.0J).
↑Borland International (Hrsg.):TurboC: User’s Guide. IBM Version. 1. Auflage. Scotts Valley 1987, ISBN 0-87524-159-X, S.2 (englisch, 307S., bitsavers.org[PDF; 10,5MB; abgerufen am 2.Oktober 2022]).
12Borland International (Hrsg.):TurboC: User’s Guide. Version 2.0. 1. Auflage. Scotts Valley 1988, ISBN 0-87524-186-7, What’s New in TurboC 2.0, S.2 (englisch, 435S., bitsavers.org[PDF; 19,4MB; abgerufen am 3.Oktober 2022]).
↑Borland International (Hrsg.):TurboC: User’s Guide. Version 1.5: Additions & Enhancements. Scotts Valley 1987 (englisch, bitsavers.org[PDF; 7,0MB; abgerufen am 11.Oktober 2022]).
12New TurboC Professional 2.0.(JPG; 281KB)Pull out all the stops.In:Borland Communnity.Borland International,1989,archiviertvomOriginalam28.August 2000;abgerufen am 6.September 2022(englisch,Werbeanzeige für TurboC 2.0).
↑Borland International (Hrsg.):TurboC++: User’s Guide. Version 1.0. 1. Auflage. Scotts Valley 1990 (englisch, bitsavers.org[PDF; 16,8MB; abgerufen am 11.Oktober 2022]).
↑Welcome to TurboC++. Version 1.0. In: TurboC++. Borland International, 1990 (englisch, README.COM: auf dem Installationsdatenträger TurboC++ 1.0 enthalten).
12Borland International (Hrsg.):TurboC Reference Guide. Version2.0. 1988, AppendixA: The TurboC Interactive Editor, S.409–422 (englisch, bitsavers.org[PDF; 18,9MB; abgerufen am 11.Juni 2024]).
↑Borland International (Hrsg.):TurboC++: User’s Guide. Version 3.0. 1. Auflage. Scotts Valley 1992, OCLC26904689, What’s in TurboC++, S.1ff. (englisch, bitsavers.org[PDF; 31,5MB; abgerufen am 11.Oktober 2022]).
↑Welcome to TurboC++. In: TurboC++. Version 3.0. Borland International, 1992 (englisch, README.COM: auf dem Installationsdatenträger TurboC++ 3.0 enthalten).
↑Borland Ships TurboC++ 4.5.Upgrade Combines Learning Tools with Latest C++ Technologies.Borland International,20.März 1995,archiviertvomOriginalam21.Dezember 1996;abgerufen am 15.Oktober 2022(englisch).
↑Welcome to TurboC++ for Windows 4.5. In: TurboC++. Version 4.5. Borland International, 1995 (englisch, README.TXT: auf dem Installationsdatenträger TurboC++ 4.5 enthalten).
↑TurboC++ 5.0J へようこそ. In: TurboC++. Version 5.0J. Borland International, 1996 (japanisch, README.TXT: auf dem Installationsdatenträger TurboC++ 5.0J enthalten).
↑Turbo C++.Borland International,2006,archiviertvomOriginalam10.Oktober 2006;abgerufen am 16.Oktober 2022(englisch).
12Borland International (Hrsg.):TurboC: User’s Guide. IBM Version. 1. Auflage. Scotts Valley 1987, ISBN 0-87524-159-X, S.244 (englisch, 307S., bitsavers.org[PDF; 10,5MB; abgerufen am 2.Oktober 2022]).
12Turbo Help. Model options. In: TurboC++. Version 3.0. Borland International, 1992 (englisch, in der Software TurboC++ 3.0 enthalten).
↑Borland International (Hrsg.):TurboC: User’s Guide. IBM Version. 1. Auflage. Scotts Valley 1987, ISBN 0-87524-159-X, Near, Far, and Huge Pointers, S.241ff. (englisch, 307S., bitsavers.org[PDF; 10,5MB; abgerufen am 2.Oktober 2022]).
↑Rainer Thomas:Programmieren in C: Zeiger.Near und Far-Zeiger in TURBO/BORLAND-C.In:e-technik.fh-muenchen.de.ArchiviertvomOriginalam11.Oktober 2022;abgerufen am 10.Oktober 2022.
↑Borland International (Hrsg.):TurboC: User’s Guide. IBM Version. 1. Auflage. Scotts Valley 1987, ISBN 0-87524-159-X, S.274ff. (englisch, 307S., bitsavers.org[PDF; 10,5MB; abgerufen am 2.Oktober 2022]).
Grand Prix. TurboC – Noch schneller? In: c’t. Magazin für Computertechnik. Nr.8. Heise Verlag, 1987, ISSN0724-8679, S.46ff.