Turbo C
Turbo C/C++
| |
---|---|
![]() Hallo-Welt-Programm und Compiler-Einstellungen von Turbo C++ 3.0 | |
Basisdaten
| |
Entwickler | Borland |
Erscheinungsjahr | 1987 |
Aktuelle Version | 2006 |
Betriebssystem | Microsoft Windows, MS-DOS |
Kategorie | Compiler |
Lizenz | proprietär |
www.turboexplorer.com (offline) |
Turbo C (später Turbo C++) ist eine integrierte Entwicklungsumgebung (IDE) der Firma Borland für die Programmiersprache C bzw. C++.
Geschichte
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 Turbo Pascal folgten: Turbo Basic, Turbo Prolog und 1987 Turbo C.
Turbo C bot die gleichen Funktionen wie Turbo Pascal: Eine integrierte Entwicklungsumgebung (IDE), einen Compiler und einen Editor. Dennoch wurde Turbo C nicht so erfolgreich wie das Pascal-Schwesterprodukt. Zum einen war C keine Schulsprache wie Pascal, sondern eher eine Sprache für Profiprogrammierung und Systementwicklung. Für solche Aufgabenbereiche wird die Sprache verwendet, in der auch das jeweilige Betriebssystem geschrieben wurde, im Fall von DOS, Windows und Linux also C. Turbo C betrat somit auf der Seite der Profis einen schon mit Entwicklungswerkzeugen gut besetzten Markt (Microsoft C, Lattice C, Watcom C usw.). Auf der anderen Seite war Turbo C für Amateure und Anfänger nicht so interessant, da diese lieber einfache Sprachen lernen und benutzen wollten.
Dass sich Turbo C 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 „Turbo Professional“, später einfach nur noch „Turbo“ und „Borland“. Sie entwickelten Turbo C++ bis 1996 in diesen beiden Linien weiter bis zur Version Turbo C++ 3.0 und Borland C++ 5.0. Wie bei Turbo Pascal gibt es auch ein Turbo C++ für Windows (englisch Turbo C++ for Windows), das international die Version 4.5 und in Japan 5.0 erreichte.[1][2]
Von Turbo C 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 ist die Weiterentwicklung von Turbo C++.
Anfang 2000 wurde Turbo C 2.01 von Borland für den Privatgebrauch kostenlos zum Download angeboten.[3] Im September 2006 veröffentlichte Borland jeweils eine kostenpflichtige Professional- und eine kostenlose Explorer-Version von Turbo C++, Turbo C#, Turbo Delphi und Turbo Delphi for .NET.[4]
Funktionen nach Version
Jahr | Version | Anmerkungen |
---|---|---|
1987 | Turbo C 1.0 | Bis 1994 besitzt Turbo C bzw. Turbo C++ eine textbasierte Benutzeroberfläche (TUI).
|
1987 | Turbo C 1.1 | |
1988 | Turbo C 1.5 | Neue Funktionen:[7]
|
1989 | Turbo C 2.0 | Neue Funktionen:[6][3][8][9][10]
|
1989 | Turbo C 2.01 | |
1990 | Turbo C++ 1.0 | Umstieg auf C++ und damit die Möglichkeit zur objektorientierten Programmierung (OOP). Neue Funktionen:[12][13]
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.[11] |
1991 | Turbo C++ 1.01 | |
1992 | Turbo C++ 3.0[15] | Neue Funktionen:[16][17]
|
1992 | Turbo C++ 3.1 | Umstellung der IDE auf eine grafische Benutzeroberfläche (GUI) für Windows. Neue Funktionen:[1]
|
1993 | Turbo C++ 4.0 | Neue Funktionen:
|
1994 | Turbo C++ 4.5 | Neue Funktionen:[18][19][20]
|
1996 | Turbo C++ 5.0J | Erschien nur in Japan und war eine im Funktionsumfang reduzierte Version von Borland C++ 5.0 (das weltweit vertrieben wurde). Neue Funktionen:[2][21]
|
2006 | Turbo C++ Professional & Explorer 2006 | Funktionen:[22][23]
Nur in der Professional-Version:
|
Erweiterte Funktionen
Speichermodelle
Bereits seit der ersten Version werden sechs Speichermodelle unterstützt.[24][25] Diese legen fest, wie der Speicher im Real Mode von x86-Prozessoren segmentiert 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.[26][27]
Speichermodell | Segmente | Zeiger | Beschreibung | |||
---|---|---|---|---|---|---|
Code | Data | Stack | Code | Data | ||
Tiny | 64 KiB | Near | Near | 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 64 KiB zur Verfügung. Es werden immer Near-Zeiger verwendet. Programme, die das Tiny-Modell nutzen, können als COM-Datei bereitgestellt werden. | ||
Small | 64 KiB | 64 KiB | Near | Near | Das Small-Modell eignet sich für Anwendungen mit durchschnittlicher Größe. Es handelt sich um die Standardeinstellung unter Turbo C. Die Code- und Datensegmente sind verschieden und überlappen sich nicht. Es stehen 64 KiB für Code und 64 KiB 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 | 1 MiB | 64 KiB | 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 64 KiB begrenzt sind, aber der Code bis zu 1 MiB belegen kann. | |
Compact | 64 KiB | 1 MiB | 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 64 KiB begrenzt, während die Daten einen Bereich von 1 MiB haben. Per Voreinstellung sind alle Funktionen und alle Datenzeiger Far. | |
Large | 1 MiB | 1 MiB | 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 1 MiB. Alle Funktionen und Datenzeiger sind per Voreinstellung Far. | |
Huge | 1 MiB | 64 KiB jedes Sgt. | 64 KiB | 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. Turbo C begrenzt normalerweise die Größe aller Daten auf 64 KiB. Das Speichermodell Huge hebt diese Beschränkung auf und erlaubt Daten, mehr als 64 KiB einzunehmen. Das Huge-Modell erlaubt mehrere 64 KiB große Datensegmente, bis zu 1 MiB für Code und 64 KiB für den Stack. Alle Funktionen und Datenzeiger werden als Far vorausgesetzt. |
Die zentralen Bibliotheken wurden in Turbo C 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)
- MATHx.LIB: Mathematische Funktionen (math.h)
(Inline-)Assembler
Ebenfalls unterstützt Turbo C bereits ab der ersten Version das Einbinden von kompilierten Bibliotheken und zeilenweise durch voranstellen des _asm
Keywords Inline-Assemblerfragmente.[28] Eine Möglichkeit mehrere Assemblerbefehle als Block einzubinden, besteht nicht.[9]
Literatur
- Ekkehard Kaier, Edwin Rudolfs: Turbo C-Wegweiser Grundkurs. Vieweg, Wiesbaden 1988, ISBN 978-3-528-04607-1, doi:10.1007/978-3-322-89427-4.
- Dietmar Herrmann: Effektiv Programmieren in C. Vieweg, Wiesbaden 1989, ISBN 978-3-528-04655-2, doi:10.1007/978-3-322-83933-6.
- Axel Kotulla: Effektiv Starten mit Turbo C++: Professionelle Programmierung von Anfang an. Vieweg, Braunschweig 1990, ISBN 978-3-528-05131-0, doi:10.1007/978-3-322-90104-0.
- Martin Aupperle: Objektorientiert mit Turbo C++: Objektorientierte Softwareentwicklung für Profis. Vieweg, Wiesbaden 1992, ISBN 978-3-322-93858-9, doi:10.1007/978-3-322-93857-2.
Weblinks
- Computermuseum München mit großer Software-Sammlung, u. a. Turbo C 1.0 ff.
- Turbo C 2.01 in der Archive.org-Software-Bibliothek
- Installationsmedien
- Dokumentationen
Einzelnachweise
- ↑ a b Turbo C++ 3.1 for Windows. (JPG; 430 KB) In: eBay. Borland International, 1992, abgerufen am 15. Oktober 2022 (englisch, Verpackung von Turbo C++ 3.1).
- ↑ a b Turbo C++ 5.0J for Windows. (JPG; 204 KB) In: auctions.afimg.jp. Borland International, 1996, abgerufen am 6. Juli 2024 (japanisch, Verpackung von Turbo C++ 5.0J).
- ↑ a b David Intersimone: Antique Software: Turbo C version 2.01. In: Borland Community. Borland International, 15. Februar 2000, archiviert vom Original am 28. August 2000; abgerufen am 2. Oktober 2022 (englisch).
- ↑ They're Back. Borland International, 2006, archiviert vom Original am 20. August 2006; abgerufen am 16. Oktober 2022 (englisch).
- ↑ Borland International (Hrsg.): Turbo C: User’s Guide. IBM Version. 1. Auflage. Scotts Valley 1987, ISBN 0-87524-159-X, S. 2 (englisch, 307 S., bitsavers.org [PDF; 10,5 MB; abgerufen am 2. Oktober 2022]).
- ↑ a b Borland International (Hrsg.): Turbo C: User’s Guide. Version 2.0. 1. Auflage. Scotts Valley 1988, ISBN 0-87524-186-7, What’s New in Turbo C 2.0, S. 2 (englisch, 435 S., bitsavers.org [PDF; 19,4 MB; abgerufen am 3. Oktober 2022]).
- ↑ Borland International (Hrsg.): Turbo C: User’s Guide. Version 1.5: Additions & Enhancements. Scotts Valley 1987 (englisch, bitsavers.org [PDF; 7,0 MB; abgerufen am 11. Oktober 2022]).
- ↑ New Turbo C Professional 2.0. (JPG; 281 KB) Pull out all the stops. In: Borland Communnity. Borland International, 1989, archiviert vom Original am 28. August 2000; abgerufen am 6. September 2022 (englisch, Werbeanzeige für Turbo C 2.0).
- ↑ a b Scott Robert Ladd: QuickC versus Turbo C. In: Dr. Dobb’s Journal. Mai 1989, abgerufen am 3. Juli 2024 (englisch).
- ↑ Scott Robert Ladd: Benchmarking Turbo C and QuickC. In: Dr. Dobb’s Journal. August 1989, abgerufen am 3. Juli 2024 (englisch).
- ↑ a b c d Minh Danh Nguyen: Revisiting Borland Turbo C/C++, A Great IDE back in the 90s. In: codeproject.com. 7. Mai 2023, abgerufen am 4. Juni 2024 (englisch).
- ↑ Borland International (Hrsg.): Turbo C++: User’s Guide. Version 1.0. 1. Auflage. Scotts Valley 1990 (englisch, bitsavers.org [PDF; 16,8 MB; abgerufen am 11. Oktober 2022]).
- ↑ Welcome to Turbo C++. Version 1.0. In: Turbo C++. Borland International, 1990 (englisch, README.COM: auf dem Installationsdatenträger Turbo C++ 1.0 enthalten).
- ↑ a b Borland International (Hrsg.): Turbo C Reference Guide. Version 2.0. 1988, Appendix A: The Turbo C Interactive Editor, S. 409–422 (englisch, bitsavers.org [PDF; 18,9 MB; abgerufen am 11. Juni 2024]).
- ↑ The Low Cost Alternative Entry-Level C/C++ Compilers, PC Mag Juli 1992 S. 405
- ↑ Borland International (Hrsg.): Turbo C++: User’s Guide. Version 3.0. 1. Auflage. Scotts Valley 1992, OCLC 26904689, What’s in Turbo C++, S. 1 ff. (englisch, bitsavers.org [PDF; 31,5 MB; abgerufen am 11. Oktober 2022]).
- ↑ Welcome to Turbo C++. In: Turbo C++. Version 3.0. Borland International, 1992 (englisch, README.COM: auf dem Installationsdatenträger Turbo C++ 3.0 enthalten).
- ↑ Borland Turbo C++ 4.5 for Windows - Quick Info Guide. Borland International, 13. Juni 1996, archiviert vom Original am 21. Dezember 1996; abgerufen am 15. Oktober 2022 (englisch).
- ↑ Borland Ships Turbo C++ 4.5. Upgrade Combines Learning Tools with Latest C++ Technologies. Borland International, 20. März 1995, archiviert vom Original am 21. Dezember 1996; abgerufen am 15. Oktober 2022 (englisch).
- ↑ Welcome to Turbo C++ for Windows 4.5. In: Turbo C++. Version 4.5. Borland International, 1995 (englisch, README.TXT: auf dem Installationsdatenträger Turbo C++ 4.5 enthalten).
- ↑ Turbo C++ 5.0J へようこそ. In: Turbo C++. Version 5.0J. Borland International, 1996 (japanisch, README.TXT: auf dem Installationsdatenträger Turbo C++ 5.0J enthalten).
- ↑ Turbo C++. Borland International, 2006, archiviert vom Original am 10. Oktober 2006; abgerufen am 16. Oktober 2022 (englisch).
- ↑ John Kaster: The Turbo Editions FAQ. In: Borland Developer Network. Borland International, 1. September 2006, archiviert vom Original am 8. Oktober 2006; abgerufen am 16. Oktober 2022 (englisch).
- ↑ a b Borland International (Hrsg.): Turbo C: User’s Guide. IBM Version. 1. Auflage. Scotts Valley 1987, ISBN 0-87524-159-X, S. 244 (englisch, 307 S., bitsavers.org [PDF; 10,5 MB; abgerufen am 2. Oktober 2022]).
- ↑ a b Turbo Help. Model options. In: Turbo C++. Version 3.0. Borland International, 1992 (englisch, in der Software Turbo C++ 3.0 enthalten).
- ↑ Borland International (Hrsg.): Turbo C: User’s Guide. IBM Version. 1. Auflage. Scotts Valley 1987, ISBN 0-87524-159-X, Near, Far, and Huge Pointers, S. 241 ff. (englisch, 307 S., bitsavers.org [PDF; 10,5 MB; 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. Abgerufen am 10. Oktober 2022.
- ↑ Borland International (Hrsg.): Turbo C: User’s Guide. IBM Version. 1. Auflage. Scotts Valley 1987, ISBN 0-87524-159-X, S. 274 ff. (englisch, 307 S., bitsavers.org [PDF; 10,5 MB; abgerufen am 2. Oktober 2022]).
- Grand Prix. Turbo C – Noch schneller? In: c’t. Magazin für Computertechnik. Nr. 8. Heise Verlag, 1987, ISSN 0724-8679, S. 46 ff.