Microsoft BASIC
Designad av | Microsoft |
---|---|
Utvecklare | Microsoft |
Dök först upp | 1975 (jfr Altair BASIC ) |
Stabil frisättning | jfr. Visual Basic .NET / 2018 |
Microsoft BASIC är Microsofts grundprogramvara och utvecklades till en serie BASIC-tolkar och kompilatorer anpassade för många olika mikrodatorer . Det dök upp första gången 1975 som Altair BASIC , vilket var den första versionen av BASIC som publicerades av Microsoft samt det första högnivåprogrammeringsspråket tillgängligt för Altair 8800- mikrodatorn.
Under hemdatorvillet under slutet av 1970-talet och början av 1980-talet portades BASIC till och levererades med många hemdatordesigner. Små variationer för att lägga till stöd för maskinspecifika funktioner, särskilt grafik, ledde till ett överflöd av relaterade designs som Commodore BASIC och Atari Microsoft BASIC .
Eftersom de tidiga hemdatorerna gav vika för nyare design som IBM Personal Computer och Apple Macintosh , användes BASIC inte längre lika flitigt, även om det behöll en stark efterföljare. Utgivningen av Visual Basic förstärkte sin popularitet och den är fortfarande i stor användning på Microsoft Windows- plattformar i sin senaste inkarnation, Visual Basic .NET
Altair BASIC och tidiga mikrodatorer
Altair BASIC - tolken utvecklades av Microsofts grundare Paul Allen och Bill Gates med hjälp av en självskriven Intel 8080- emulator som körs på en PDP-10- minidator . MS-dialekten är mönstrad på Digital Equipment Corporations BASIC -PLUS på PDP-11 , som Gates hade använt i gymnasiet . De första versionerna stödde bara heltalsmatematik, men Monte Davidoff övertygade dem om att flyttalsaritmetik var möjlig och skrev ett bibliotek som blev Microsofts binära format .
Altair BASIC levererades på papperstejp och tog i sin originalversion 4 KB minne. Följande funktioner och uttalanden var tillgängliga:
LISTA
, NY
, SKRIV UT
, INPUT
, IF ... DÅ
, FÖR ... NÄSTA
, SQR
, RND
, SIN
, LET
, USR
, DATA
, READ
, REM
, CLEAR
, STOP
, TAB
, RESTORE
, ABS
, END
, INT
, RETURN
, STEP
, GOTO
och GOSUB
.
Det fanns inga strängvariabler i 4K BASIC och enkelprecision 32-bitars flyttal var den enda numeriska typen som stöddes. Variabelnamn bestod av en bokstav (A–Z) eller en bokstav följt av en siffra (0–9), vilket tillåter upp till 286 numeriska variabler.
För maskiner med mer minne lade 8 KB-versionen till 31 ytterligare satser och stöd för strängvariabler och deras relaterade operationer som MID$ och strängsammansättning . Strängvariabler betecknades med ett $-suffix, som fanns kvar i senare versioner av språket. Senare släppte Microsoft 12K Extended BASIC, som inkluderade dubbel precision 64-bitars variabler, IF
... THEN
... ELSE
strukturer, användardefinierade funktioner, mer avancerade programredigeringskommandon och beskrivande felmeddelanden i motsats till felnummer. Numeriska variabler hade nu tre grundläggande typer, % betecknade 16-bitars heltal, # betecknade 64-bitars dubblar och ! betecknade 32-bitars singlar, men detta var standardformatet så ! ses sällan i program.
Den utökade 8 KB-versionen generaliserades sedan till BASIC-80 (8080/85, Z80 ) och portades till BASIC-68 ( 6800 ), BASIC-69 ( 6809 ) och 6502 -BASIC. 6502:an hade något mindre tät assemblerkod och utökades i storlek till strax under 8K för enkelprecisionsversionen, eller 9K för en version som använder ett mellanliggande 40-bitars flyttalsformat istället för den ursprungliga 32-bitarsversionen. Detta nya 40-bitarsformat blev det vanligaste eftersom det användes på de flesta 6502-baserade maskiner från eran. Den portades också till 16-bitars BASIC-86 ( 8086/88 ).
Den sista stora utgåvan av BASIC-80 var version 5.x, som dök upp 1981 och lade till stöd för 40-teckens variabelnamn, WHILE
... WEND-
loopar, dynamisk strängallokering och flera andra funktioner. BASIC 5.x tog bort möjligheten att krossa programrader.
Kärnkommandouppsättningen och syntaxen är densamma i alla implementeringar av Microsoft BASIC och generellt sett kan ett program köras på vilken version som helst om det inte använder hårdvaruspecifika funktioner eller dubbla precisionsnummer (stöds inte i vissa implementeringar).
Licenser till hemdatortillverkare
Efter den första framgången med Altair BASIC, blev Microsoft BASIC grunden för en lukrativ programvarulicensverksamhet, som portades till majoriteten av de många hemdatorerna och andra persondatorer på 1970-talet och särskilt 1980-talet, och utökades på vägen. I motsats till den ursprungliga Altair BASIC är de flesta hemdatorer BASIC inbyggda i ROM , och är därför tillgängliga på maskinerna vid start i form av den karakteristiska " READY.
"-prompten. Därför utgör Microsofts och andra varianter av BASIC en betydande och synlig del av användargränssnittet i många hemdatorers rudimentära operativsystem .
År 1981 var Microsoft BASIC så populärt att även företag som redan hade en BASIC licensierade språket, som IBM för sin persondator och Atari , som sålde både Atari Microsoft BASIC och sin egen Atari BASIC . IBMs Don Estridge sa: "Microsoft BASIC hade hundratusentals användare runt om i världen. Hur ska du argumentera mot det?" Microsoft licensierade liknande versioner till företag som konkurrerade med varandra. Efter att till exempel licensierat IBM Advanced BASIC (BASICA) till IBM licensierade Microsoft den kompatibla GW-BASIC till tillverkare av PC-kloner och sålde även exemplar till detaljhandelskunder. Företaget licensierade på liknande sätt en Applesoft -kompatibel BASIC till VTech för sin Laser 128- klon .
Utökad BASIC-80
Kända varianter:
- NCR Basic Plus 6 , släpptes under första kvartalet 1977 för NCR 7200 modell VI datainmatningsterminal. Anpassningen av Microsofts Extended BASIC-80 utfördes av Marc McDonald 1976/1977.
Disk BASIC-80
MBASIC är tillgängligt för CP/M-80 och ISIS-II . Finns även för TEKDOS .
MBASIC är en avskalad BASIC-80 med endast hårdvaruneutrala funktioner. Men på grund av CP/M:s popularitet körde den stora majoriteten av Z80-maskinerna MBASIC, snarare än en version anpassad för specifik hårdvara (TRS-80 BASIC var ett av få undantag). Microsofts CP/M-kort för Apple II inkluderade en modifierad version av MBASIC som inkorporerade några av grafikkommandona från Applesoft BASIC, som HPLOT
, men hela kommandouppsättningen stöds inte.
Fristående disk BASIC-80
Den första implementeringen som använde en 8-bitars variant av File Allocation Table (FAT) var en BASIC-anpassning för en Intel 8080 -baserad NCR 7200 , 7520 eller 7530 datainmatningsterminal med 8-tums disketter 1977/1978.
Grundläggande kompilator
Microsoft erbjöd en BASIC-kompilator för BASIC-80 under CP/M, 1980 eller tidigare. Den körbara kompilatorn hette BASCOM eller BASCOM32.
TRS-80 Nivå II/III BASIC
TRS-80-datorn erbjöds initialt med en anpassning av Li-Chen Wangs Tiny BASIC ( Level I BASIC ) ; inom några månader ersattes detta av en port av BASIC-80 som inkorporerade en del av nivå I BASICs kommandouppsättning, särskilt kommandona för att ställa in grafiktecken. Level II BASIC innehöll några av funktionerna i Extended BASIC, men på grund av behovet av att inkludera nivå I-kommandon som SET
och PSET
, måste andra funktioner som beskrivande felmeddelanden fortfarande utelämnas; dessa lades sedan till i TRS-80 Disk BASIC.
TRS-80 Model 4 hade en nyare diskbaserad BASIC som använde BASIC-80 5.x-kärnan, som inkluderade stöd för 40-teckens variabelnamn. Således var möjligheten att knäcka programrader (utan mellanslag mellan nyckelord och argument) inte längre möjlig som den hade varit i nivå II. Det var inte längre nödvändigt att reservera strängutrymme. Nya funktioner inkluderade användardefinierade funktioner ( DEF FN
) och tillgång till TRSDOS 6-systemfunktioner via ett SYSTEM-
nyckelord. En modifierad version publicerad senare av OS-leverantören Logical Systems, i uppdateringen av LS-DOS version 6.3, lade till en bokstavsåtkomst till BASIC kontrollfunktioner (som LIST
och EDIT
) och direkt åtkomst till LS-DOS-övervakaranrop. Programredigeringsmiljön var fortfarande linjeorienterad. Möjligheten tillgänglig i nivå II för att sortera arrayer ( CMD"O")
var inte tillgänglig; programmerare och användare var tvungna att ta fram sina egna lösningar.
BASIC-86
Den första implementeringen som ett fristående diskbaserat språksystem var för Seattle Computer Products S-100 buss 8086 CPU-kort 1979. Det använde ett 8-bitars FAT- filsystem.
Microsoft erbjöd också en version av Standalone BASIC-86 för SBC-86/12 för Intels 8086 Single Board Computer-plattform 1980.
Texas Instruments BASIC
Detta är versionen av BASIC som används på TI-99/4A hemdator. Även om den liknar Microsoft BASIC mycket, skrevs den inte av Microsoft som det ryktades om. Enligt TI-ingenjören H. Schuurman: "De (i form av Bob Greenberg från Microsoft) kontrakterades för att utveckla BASIC för SR-70 (som ibland också kallas 99/7), men BASIC för 99:an /4 har utvecklats internt." TI-99/4 BASIC baserades på Dartmouth BASIC och uppfyller den amerikanska nationella standarden för minimal BASIC (ANSI X3.60-1978).
6502 BASIC
Microsoft portade BASIC-80 till 6502 under sommaren 1976; det var mestadels en rak port av 8K-versionen av BASIC-80 och innehöll samma uppmaningar som frågade efter minnesstorlek och om användaren ville ha flyttalsfunktioner aktiverade eller inte (att ha dem aktiva använde ytterligare 135 byte minne). De tidigaste maskinerna som använde 6502 BASIC var Ohio Scientific Model 500 och KIM-1 1977. 6502 BASIC inkluderade vissa funktioner från Extended BASIC som användardefinierade funktioner och beskrivande felmeddelanden, men utelämnade andra funktioner som dubbla precisionsvariabler och PRINT
ANVÄNDER
uttalande. Som kompensation för att inte ha dubbla precisionsvariabler inkluderade Microsoft stöd för 40-bitars flyttal istället för BASIC-80:s 32-bitars flyttal och strängallokering var dynamisk (således behövde användaren inte reservera strängutrymme som i BASIC-80). Men leverantörer kan fortfarande begära BASIC med 32-bitars flyttal för ett något mindre minnesutrymme; som ett exempel, Disk BASIC för Atari 8-bitar använde 32-bit flyttal istället för 40-bit. [ citat behövs ]
Standardfunktioner i 9K-versionen av Microsoft 6502 BASIC ingår:
-
GET-
sats för att upptäcka en knapptryckning. - Linjeknäppning – programrader kräver inga mellanslag förutom mellan radnumret och satsen.
- Endast variabeltyper som stöds är sträng, enkel precision och heltal (endast matriser).
- Långa variabelnamn stöds inte och endast de två första tecknen känns igen.
- Dynamisk strängallokering.
6502 BASIC saknade en standardiserad uppsättning kommandon för disk- och skrivarutdata; dessa var upp till leverantören att lägga till och varierade kraftigt med varje implementering.
Senare implementeringar av 6502 Basic (1983–) förbättrades i många aspekter. Medan tidiga Commodore- maskiner ( VIC-20 , C64 ) hade en BASIC mycket nära 6502 MS BASIC, senare Commodore 8-bitarsmaskiner (TED-serien, PET och C128 ; namngivna som V3.5, V4.0 och V7.0 ) hade många förbättringar för att göra BASIC mer användbar och användarvänlig:
- Diskkommandon (
DIRECTORY
,DSAVE
,LADDA
,BACKUP
,HEAD
,SCRATCH
,COLLECT
,DVERIFY
,COPY
,DELETE
,RENAME
, etc.) - Grafikkommandon (
CIRKLA
,DRAW
,BOX
,COLOR
(av bakgrund, ram, etc.),PAINT
,SCALE
) - Grafikblockkopiering och logisk operation med den befintliga grafiska skärmen (
SSHAPE
ochGSHAPE
medOR
,AND
,XOR
, etc.) - Sprite definition, visning och animeringskommandon på C128, till och med spara sprites till binärer
- Ljudkommandon (
VOL
,LJUD
), senare vid C=128 Musikkommandon (ADSR- och SID-filterprogrammering (ENVELOPE
ochFILTER
),PLAY
,TEMPO
-kommandon) - Tecken på mer strukturerad programmering:
OM
–DÅ
–ANNAT
,GÖR
–LOOP
–MEDAN
/TILL
–AVSLUTA
,PÅ
–GOSUB
- Utökade I/O-kommandon för specialfunktioner:
JOY
, funktionstangenter - Felsökningskommandon:
STOP
,CONT
,TRON
,TROFF
,RESUME
- Utökad hantering av karaktärsskärm:
WINDOW
- Stöd enklare programutveckling:
RENUMBER
,NEW
,MONITOR
,RREG
- Spectravideo CompuMate på Atari 2600: s MOS Technology 6507 CPU 1983
BASIC-68 och BASIC-69
Microsofts kataloger från 1980-talet visade också tillgängligheten av BASIC-68 och BASIC-69 för Motorola 6800 respektive 6809 mikroprocessorer, som kör FLEX operativsystem, och nämner även OEM-versioner för Perkin-Elmer , Ohio Nuclear , Pertec och Societe Occitane d "Elektroniska system. Det verkar troligt att detta också är grunden för Microsoft/Epson BASIC i den Epson HX-20 -datorn, som har två Hitachi 6301-processorer, som i huvudsak är en "superad" 6801. De flesta av kärnfunktionerna i BASIC- 68 och BASIC-69 kopierades direkt från BASIC-80. [ originalforskning? ]
BASIC-69 licensierades också till Tandy, där den bildade kärnan i Color BASIC på TRS-80 Color Computer . [ citat behövs ] Ej att förväxla med BASIC09 , en helt annan BASIC skapad av Microware som huvudspråk för dess OS-9 , det andra operativsystemet som är tillgängligt på Color Computer (Microware skrev också version 2.0 av Extended Color BASIC när Microsoft vägrade att gör det). Microsoft BASIC ingick också i Dragon 32/64-datorerna som byggdes i Wales och hade en viss begränsad framgång på den brittiska hemdatormarknaden i början av 1980-talet. Dragon-datorer var något kompatibla med Tandy TRS-80, eftersom de byggdes på mycket liknande hårdvara.
MSX
Microsoft producerade en ROM-baserad MSX BASIC för användning i MSX hemdatorer , som använde en Z80-processor. Denna version stödde grafik- och ljudsystemen för MSX-datorerna; vissa varianter hade även stöd för diskenheter.
Moderna ättlingar
Ingen variant av Microsoft BASIC ( BASICA , GW-BASIC , QuickBasic , QBasic ) distribueras för närvarande med Microsoft Windows eller DOS . Men versioner som fortfarande kommer att köras på moderna maskiner kan laddas ner från olika webbplatser eller hittas på gamla DOS-diskar.
Den senaste inkarnationen av Microsoft BASIC är Visual Basic .NET , som innehåller några funktioner från C++ och C# och kan användas för att utveckla webbformulär, Windows-formulär, konsolapplikationer och serverbaserade applikationer. De flesta .NET-kodexempel presenteras i VB.NET såväl som C#, och VB.NET fortsätter att gynnas av tidigare Visual Basic- programmerare .
I oktober 2008 släppte Microsoft Small Basic . Språket har bara 14 nyckelord. Small Basic Version 1.0 (12 juni 2011) släpptes med en uppdaterad Microsoft MSDN-webbplats som inkluderade en fullständig läroplan för lärare, en Komma igång-guide och flera e-böcker. Small Basic finns för att hjälpa elever så unga som åtta år att lära sig grunderna för datorprogrammering och sedan ta examen till Visual Basic via den nedladdningsbara programvaran, Visual Studio Express , där de kan fortsätta att bygga på grunden genom att lära sig Visual C# , VB.NET , och Visual C++ .
Varianter och derivat av Microsoft BASIC
- Altair BASIC (MITS Altair och andra S-100-datorer)
- Amiga BASIC (Commodore Amiga-familjen)
- Applesoft BASIC (Apple II-familjen)
- Atari Microsoft BASIC I och II (Atari 8-bitars familj)
- Basic 1.0 (Thomson-datorfamiljen)
- BASICA ("BASIC Advanced") (PC DOS, på IBM PC)
- Color BASIC (TRS-80 Color Computer)
- Color BASIC och Disk Extended Color BASIC (TRS-80 Color Computer and Dragon 32/64 )
- Commodore BASIC (Commodore 8-bitars familj, inkl C64)
- FreeBASIC – en gratis klon av QuickBasic-systemet
- Galaksija BASIC (Galaksija hemdator)
- Gambas – gratis implementering inspirerad av Visual Basic
- GW-BASIC (BASICA för MS-DOS, på PC-kompatibla)
- HP2640 HP2647 Programmerbar terminal med AGL- grafiktillägg
- IBM Cassette BASIC (Original IBM PC, inbyggd i ROM)
- Microsoft Level III BASIC (Tandy/Radio-Shack TRS-80)
- MBASIC (CP/M, på 8080, 8085 och Z80-baserade datorer)
- MS BASIC för Macintosh (Mac OS på Apple Macintosh)
- MSX BASIC (MSX standard hemdatorer)
- N88-BASIC (NEC PC8801/9801)
- N82-BASIC ( NEC PC-8201/8201A , TRS-80 modell 100 )
- Oric Extended Basic ( Oric 8-bitars familj)
- QBasic (PC DOS/MS-DOS på IBM PC och kompatibla)
- QuickBASIC (PC MS-DOS på IBM PC och kompatibla)
- Small Basic (MS Windows på IBM PC och kompatibla)
- T-BASIC (Toshiba Pasopia) och T-BASIC7 (Toshiba Pasopia 7)
- TRS-80 Level II BASIC (Tandy/Radio-Shack TRS-80 )
- Visual Basic ( classic och .NET ) (PC DOS/MS-DOS/MS Windows på IBM PC och kompatibla enheter)
- Videoteknik Grundläggande (Laser 350/500/700)
- WordBasic (pre- VBA ) (MS Windows)
Se även
Anteckningar
- ^ a b c d Källorna skiljer sig åt med avseende på den första NCR-datainmatningsterminalen som integrerar stöd för FAT -filsystemet. Enligt Stephen Manes och Paul Andrews, "Gates", var utvecklingen för en NCR 8200 i slutet av 1977, felaktigt klassad som en diskettbaserad uppgradering till NCR 7200 , som hade släppts 1975-11 och byggdes kring en Intel 8080 8-bitars processor, men var endast kassettbaserad. NCR Century 8200 var dock en 16-bitars minidator, till vilken flera datainmatningsterminaler kunde kopplas upp. Marc McDonald kom till och med ihåg en NCR 8500 , en stordator i Criterion-serien, som också kan uteslutas. Andra källor indikerar att antingen själva NCR 7200 eller dess efterföljare var den faktiska målplattformen. NCR 7500- serien släpptes 1978, baserad på en liknande 8080-hårdvara, men inkluderar nu NCR 7520 och 7530 -modeller med 8-tums disketter. NCR Basic +6 , en föregångare eller anpassning av Microsoft Standalone Disk BASIC-80 fanns tillgänglig för dem åtminstone sedan 1979. En källa hävdar att en speciell NCR 7200 modellvariant med två 8-tums disketter och Microsoft BASIC existerade och importerades av NCR Sydney till Australien minst.