Turbo Pascal var et imperativt og strukturert programmeringsspråk som ble lansert av Borland den 20. november 1983. Turbo Pascal bestod av en kompilator for Pascal og et integrert utviklingsmiljø, og var et innovativt og trendsettende produkt på begge områder.
Merkenavnet Turbo betyr at eksekverbare filer ble generert raskt, og ikke nødvendigvis at koden var optimal. Kompilering, lasting og lenking av objektfiler foregikk automatisk i én enkelt sekvens, mens disse oppgavene i tidligere versjoner av Pascal var blitt utført manuelt hver for seg. Borland benyttet samme konsept og merkenavn i Turbo C, Turbo C++, Turbo Modula-2, Turbo Prolog, Turbo Basic og Turbo Assembler.
Turbo Pascal var også en egen variant eller dialekt av Pascal, med flere utvidelser av syntaksen til ISO Pascal. Versjon 4.0 tilføyde syntaks for generering av biblioteker («Units»), etter modell fra Modula-2. I versjon 5.5 ble språket utvidet med objektorientert programmering.
Navnet Borland Pascal ble i versjon 7.0 brukt om en mer avansert programpakke. Den hadde flere biblioteker og ble lansert sammen med kildekoden til kompilatorens standardbiblioteker. Den billigere grunnversjonen ble fortsatt solgt og markedsført som Turbo Pascal.
I 1995 var det slutt. Da besluttet Borland å erstatte Turbo Pascal med det visuelle utviklingsverktøyet Delphi. Det var basert på Rapid application development og på det objektorienterte språket Objekt Pascal. Turbo Pascal har likevel historisk interesse. Dets syntaks levde videre i kompilatorer som Free Pascal og Virtual Pascal. Også GNU Pascal støtter syntaksen i Turbo Pascal.
De tre første versjonene
Røttene til Turbo Pascal thumb|Datamaskinen Nascom-2 Røttene til Turbo Pascal begynner i Danmark i 1981. Programmereren Anders Hejlsberg laget da Blue Label Pascal for en Nascom-2 datamaskin, forsynt med 8-biter mikroprosessoren Zilog Z80A og operativsystemet CP/M 2.2. thumb|left|Anders Hejlsberg laget forgjengerne til Turbo Pascal. Kompilatoren støttet det meste av spesifikasjonene til Pascal. Unntakene var brukerdefinerte datatyper, den abstrakte datatypen for sett (mengde) og filtyper. Heltall var 16 biter, mens desimaltall ble implementert med 11.5 signifikante siffer. Kompilatoren støttet også lenking til eksterne funksjoner og prosedyrer skrevet i maskinkode.
Systemet inkluderte en «Find»-kommando for å flytte fra en adresse i objektkoden til linjen med programtekst i kildekoden. Blue Label Pascal opptok 12 Kb, fordelt på kompilatoren (5,5 Kb), teksteditoren (1,5 Kb), biblioteksrutiner (4,5 Kb) og et kontrollprogram (0,5 Kb), og var tilgjengelig på kassett eller EPROM.
I 1982 omarbeidet Hejlsberg kompilatoren til å kjøre på CP/M og IBM PC med operativsystemet MS-DOS. Den ble markedsført som Compas Pascal av hans danske selskap, Poly-Data microcenter.
Tredje versjon ble kalt Poly Pascal, og hadde et kommandolinje-grensesnitt. Kompilatoren ble lansert for CP/M-80, og var en komplett implementasjon av Pascal-spesifikasjonen til Niklaus Wirth.
Turbo Pascal 1.0 (1983) I 1983 ble kompilatoren solgt til Borland, og under Phillipe Kahns lederskap ble den 20. november 1983 lansert under merkenavnet Turbo Pascal. Som en del av avtalen ble Hejlsberg en av de opprinnelige medlemmene av Borland, og i sin tid hos Borland videreutviklet han Turbo Pascal, og endte opp som hovedansvarlig for utviklingen av de tre første versjonene av Delphi.
Merkenavnet Turbo betyr at eksekverbare filer ble generert raskt, og ikke nødvendigvis at koden var optimal. Kompilering, lasting og lenking av objektfiler foregikk automatisk i én enkelt sekvens, mens disse oppgavene i tidligere versjoner av Pascal var blitt utført manuelt hver for seg. For eksempel opererte Microsoft Pascal med kompilering i to forskjellige faser og en lenking til slutt. Dette tok flere minutter på systemer med bare diskett som sekundært lagringsmedium. thumb|Phillipe Kahn, leder av Borland. Turbo Pascal ble lansert på én enkelt diskett, både i 8-toms og 5¼-toms utgaver. Disketten inneholdt ti filer:
TURBO.COM - kompilatoren og teksteditoren TURBOMSG.OVR - feilmeldingsfil TINST.COM - det integrerte utviklingsmiljøet TINSTMSG.OVR - meldingsfil for TINST programmet TLIST.COM - programopplister ERROR.DOC - addendum til Turbo referansemanual CALC.PAS - MicroCalc (regneark) CALCMAIN.PAS - Demoprogrammer av hvordan man inkluderer filer CALC.HLP - Manual for MicroCalc CALCDEMO.MCS - Eksempler på bruk av regnearket
Totalt utgjorde filene en størrelse på 131 297 byte. Størrelsen på TURBO.COM var 33 280 byte. Kompilerte programmer kunne også kjøres fra det integrerte utviklingsmiljøet, og teksteditoren benyttet de samme hurtigtaster som tekstbehandleren WordStar. Det lille regnearket MicroCalc var et demoprogram som var skrevet i Turbo Pascal. Det overlevde under ulike navn helt til lanseringen av Delphi.
Turbo Pascal 1.0 ble lansert i utgaver for tre forskjellige operativsystemer: CP/M-80, CP/M-86 og MS-DOS. CP/M-utgaven kunne benyttes på DEC Rainbow 100, Commodore 64 med et CP/M sidekort og på Apple II med sidekortet Z-80 SoftCard som ble lansert av Microsoft i 1980. På denne tiden benyttet CP/M filnavnsuffikset .COM, mens MS-DOS benyttet både .COM og .EXE. Turbo Pascal 1.0 genererte bare .COM filer. thumb|Koprosessoren Intel 8087. Turbo Pascal hadde delvis (versjon 2.0) og full (versjon 3.0) støtte for dens instruksjonssett. Turbo Pascal diskettene manglet kopibeskyttelse og kom med en «boklisens»: «Du kan behandle denne programvare nettopp som en bok ... den kan brukes av et hvilket som helst antall mennesker ... kan fritt flyttes fra en datamaskin til en annen, så lenge som der ikke er noen mulighet for at den brukes et sted samtidig som den brukes på et annet.»Google Groups Turbo Pascal kostet $49.95 og ble ekstrem populær. Borland solgte omkring 250 000 programpakker i de to første årene.
Turbo Pascal 2.0 (1984) Versjon 2.0 ble lansert 17. april 1984 på én enkelt 5¼-toms diskett. Den hadde delvis støtte for instruksjonssettet til koprosessoren Intel 8087. Denne versjonen støttet filnavnsuffiksene .COM og .CMD.
Brukergrensesnittet i teksteditoren var endret fra en gul-og-grå til en grå-og-hvit palett, og Execute var fjernet fra menykommandoen. Noen få endringer hadde funnet sted i kompilatoren, som økning i størrelsen på de eksekverbare filene.
Turbo Pascal 3.0 (1985) Versjon 3.0 ble lansert den 17. april 1985, også på én enkelt 5¼-toms diskett. Den var den første versjonen som fikk stor utbredelse. En mindre oppdatering, versjon 3.0.2, ble lansert 17. september 1986. Dette var den siste versjonen som kom i utgaver for CP/M. Systemkravene var CP/M versjon 2.2 eller høyere, og CP/M-86 versjon 1.1 eller høyere. På CP/M kunne denne versjonen generere programmer som var større enn 64 kilobyte, ved å benytte overlays.
MS-DOS utgaven hadde full støtte hele instruksjonssettet til koprosessoren Intel 8087 gjennom et bibliotek. På datamaskiner uten Intel 8087 benyttet Turbo Pascal 3.0 en emulator. Den støttet også Binary-coded decimal (BCD), som eliminerte avrundingsfeil.
En rekke tilleggsprogrammer for Turbo Pascal 3 for MS-DOS kunne kjøpes separat: Opplæringsprogrammet Turbo Tutor (en 5¼-toms diskett) med programeksempler, tilleggsverktøy Turbo Editor Toolbox (to 5¼-toms disketter som ble lansert den 12. november 1985), biblioteksrutinene Turbo Gameworks for videospill, grafiske biblioteker i Turbo Graphix (deriblant skilpaddegrafikk samt egne rutiner for farge, lyd, vinduer), databasen Turbo Database og de matematiske rutinene Numerical Methods.
Turbo Pascal for Macintosh (1985) I 1985 lanserte Borland også Turbo Pascal for Macintosh. I likhet med de tre første versjonene for CP/M og MS-DOS, var den skrevet i kompakt assembler og hadde et svært avansert integrert utviklingsmiljø, etter datidens standarder. Den 5. november 1987 kom Borland med en oppdatering i versjon 1.1, som støttet 32-biter Macintosh II. Produktet ble ingen kommersiell suksess, og Borland forkastet støtten til Macintosh etter kort tid.
Programeksempler Hallo verden Dette er det klassiske Hallo verden programmet i Turbo Pascal:
program HalloVerden; begin WriteLn('Hallo Verden') end.
Fakultet Her benyttes datatypen real til å lagre fakultetverdier. Kommandoen writeln(f:-1:0) skriver ut desimaltallet f med 0 siffer etter desimaltallet og venstrejusterer det.
program fakultet; function fak(n: integer): real; begin if (n = 0) then fak := 1 else fak := n * fak(n - 1); end; var n: integer; begin for n := 0 to 16 do writeln(n, '! = ', fak(n):-1:0); end.
Fibonaccitall Dette eksempelet viser rekursiv utregning av fibonaccitall.
program fibonacci;
function fib(n:integer): integer; begin if (n <= 2) then fib := 1 else fib := fib(n-1) + fib(n-2); end;
var i:integer; begin for i := 1 to 16 do write(fib(i), ', '); writeln('...'); end.
Kvadrat Dette programmet tegner et kvadrat:
program Kvadrat;
var A,B,C,D: integer;
begin write('A = '); readln(A); if (A=0) then begin writeln('Ikke en kvadratisk ligning.'); halt; end; write('B = '); readln(B); write('C = '); readln(C); D := B*B-4*A*C; if (D=0) then begin writeln('x = ',-B/2.0/A); halt; end; if (D>0) then begin writeln('x1 = ',(-B+Sqrt(D))/2.0/A); writeln('x2 = ',(-B-Sqrt(D))/2.0/A); end else begin writeln('x1 = (',-B/2.0/A,',',Sqrt(-D)/2.0/A,')'); writeln('x2 = (',-B/2.0/A,',',-Sqrt(-D)/2.0/A,')'); end; end.
Påvirkninger fra Modula-2 Turbo Pascal 4.0 (1987) Versjon 4.0 ble lansert i 1987, og ble levert på én enkelt 5¼-toms diskett. I tillegg lanserte Borland oppdaterte utgaver av tilleggsprogrammene som tidligere hadde vært en opsjon i versjon 3.0. Kompilatoren genererte nå filer med filnavnsuffikset .EXE, i stedet for .COM. Versjon 4.0 fantes ikke i utgaver for CP/M og CP/M-86, men utelukkende for MS-DOS.
Denne versjonen innførte et vindus-lignende grensesnitt over hele skjermen med rullegardins-menyer, mens tidligere versjoner hadde en tekstbasert meny og en separat editor for hele skjermen. Det integrerte utviklingsmiljøet inneholdt også et hjelpesystem.
I versjon 4.0 utvidet Borland programmeringsspråket Pascal med syntaks for å kompilere biblioteker («Units»), etter modell fra programmeringsspråket Modula-2. I 1987 var Modula-2 i ferd med å erstatte Pascal som et pedagogisk språk for å lære studenter strukturert programmering. Borland hadde riktignok også lansert en Turbo Modula-2 kompilator for CP/M. I stedet for å lansere Turbo Modula-2 for MS-DOS, utvidet Borland syntaksen til Pascal med funksjonaliteten til Modula-2. Modulær kompilering var allerede tilgjengelig i UCSD Pascal for 8-bit datamaskiner, og Turbo Pascal syntaksen for moduler («Units»), synes å ha blitt hentet fra UCSD Pascal.UCSD Pascal System II.0 User Manual Reconstruction – Version I.5, 3.3.2. Linkage to Externally Compiled and Assembled Routines, september 1978
Turbo Pascal 5.0 (1988) Versjon 5.0 ble lansert den 29. august 1988 i to utgaver: Turbo Pascal 5.0 og Turbo Pascal Professional 5.0. Editorens blå bakgrunnsfarge ble et av varemerkene på Turbo Pascal. Turbo Pascal 5.0 hadde også det første integrerte utviklingsmiljøet med støtte for mus.
I versjon 5 ble det mulig å skrive assembler-kode direkte i Pascal-koden. En innebygd assembler oversatte disse programlinjene automatisk, uten behov for en ekstern assembler.
Den profesjonelle utgaven ble levert i fire 720 Kb disketter, som i tillegg inneholdt Turbo Debugger 1.0, Turbo Assember 1.0, og fire manualer som alle hadde samme ISBN-nr.User's Guide, PART# 11MN-PAS01-50 BOR 0867, ISBN 0-87524-201-4Reference Guide, PART# 11MN-PAS02-50 BOR 0866, ISBN 0-87524-201-4Turbo Assembler User's Guide, PART# 15MN-ASD01-10 BOR 0851, ISBN 0-87524-201-4Turbo Assembler Reference Guide, PART# 15MN-ASD02-10 BOR 0852, ISBN 0-87524-201-4Turbo Debugger User's Guide, PART# 15MN-ASD03-10 BOR 0847, ISBN 0-87524-201-4