GW -BASIC - GW-BASIC
Vývojář | Microsoft |
---|---|
Poprvé se objevil | 1983 |
Stabilní uvolnění | 3,23 / 1988
|
OS | DOS |
Licence |
Proprietární licence MIT (v1.0) |
Ovlivněn | |
IBM Cassette BASIC , IBM Disk BASIC , IBM BASICA | |
Ovlivněn | |
QBasic , QuickBasic , MSX BASIC |
GW-BASIC je dialekt programovacího jazyka BASIC vyvinutý společností Microsoft od IBM BASICA . Funkčně identický s BASICA, jeho BASIC tlumočník je plně soběstačný spustitelný soubor a nepotřebuje Cassette BASIC ROM nalezený v původním IBM PC . Byl dodáván s operačními systémy MS-DOS na kompatibilních počítačích IBM PC od společnosti Microsoft.
Jazyk je vhodný pro jednoduché hry, obchodní programy a podobně. Protože byl součástí většiny verzí systému MS-DOS, byl to také levný způsob, jak se mnoho začínajících programátorů naučit základy počítačového programování . Společnost Microsoft také prodala kompilátor BASIC , BASCOM, kompatibilní s GW-BASIC, pro programy vyžadující vyšší rychlost.
Podle Marka Jonese Lorenza, vzhledem k rozsahu jazyka, „GW-BASIC je pravděpodobně ne plus ultra rodiny Microsoftových řádkových číslovaných BASIC sahajících až k Altairu-a možná dokonce i řádkově číslovaných BASIC obecně“.
S vydáním systému MS-DOS 5.0 zaujal místo GW-BASIC QBasic , tlumočnická část samostatně dostupného překladače QuickBASIC .
21. května 2020 vydala společnost Microsoft na GitHubu pod licencí MIT zdrojový kód 8088 assembleru pro GW-BASIC 1.0 .
Funkce
IBM BASICA a GW-BASIC jsou z velké části porty MBASIC verze 5.x, ale s přidanými funkcemi specificky pro hardware IBM PC. Mezi běžné vlastnosti BASIC-80 5.x a BASICA/GW-BASIC patří:
- KDYŽ ... smyčky WEND
- Proměnné názvy až do 40 znaků
- OPTION BASE příkaz k nastavení počátečního indexu proměnných polí na hodnotu 0 nebo 1
- Dynamické přidělování prostoru řetězců
- LINE INPUT, který umožňoval ignorovat znaky oddělovače polí, jako je čárka
- Příkaz CALL pro provádění rutin strojového jazyka
- Příkazy CHAIN a MERGE
- Schopnost ukládat programy buď v tokenizovaném binárním formátu, nebo v textu ASCII
Možnost „drtit“ programové řádky vynecháním mezer, což je běžný rys dřívějších implementací Microsoft BASIC, byla odebrána z BASIC-80 5.x a BASICA/GWBASIC.
Programy BASIC-80 nepoužívající příkazy PEEK/POKE běží pod GW-BASIC. BASICA přidává pro IBM PC mnoho funkcí, jako jsou zvukové, grafické a paměťové příkazy. Mezi funkce, které nejsou v BASIC-80, patří schopnost vykonávat funkci RND bez parametrů a také schopnost ukládat programy v „chráněném“ formátu, což jim brání v SEZNAMU. BASICA také umožňuje použití čísel s dvojitou přesností s matematickými a goniometrickými funkcemi, jako jsou COS, SIN a ATN, což v 8bitových verzích BASIC nebylo povoleno. Tato funkce se obvykle není povoleno a vyžadováno volitelný parametr / D při spuštění, tj , GWBASIC /D
. Paměťová stopa BASIC se mírně zvýšila, pokud byla použita.
Společnost Microsoft nenabídla generickou verzi systému MS-DOS až v3.20 v roce 1986; do té doby byly všechny varianty operačního systému verzemi OEM. V závislosti na výrobci OEM byl BASIC distribuován jako BASICA.EXE nebo GWBASIC.EXE. První by nemělo být zaměňováno s IBM BASICA, která vždy přišla jako. Soubor COM . Některé varianty BASIC mají zvláštní funkce pro podporu konkrétního počítače. Verze DOS AT&T a Tandy například obsahují speciální GW-BASIC, který podporuje jejich vylepšené zvukové a grafické možnosti.
Počáteční verze GW-BASIC je ta, která je součástí Compaq DOS 1.13, vydaná s Compaq Portable v roce 1983, a byla analogická s IBM BASICA 1.10. Pro přístup na disk používá bloky řízení souborů odvozené od CP/M a nepodporuje podadresáře. Pozdější verze podporují podadresáře, vylepšenou grafiku a další funkce.
GW-BASIC 3.20 (1986) přidává grafickou podporu EGA (žádná verze BASICA ani GW-BASIC neměla podporu VGA) a je poslední hlavní novou verzí vydanou před tím, než byla nahrazena QBasic .
Kupující grafických karet Hercules obdrželi speciální verzi GW-BASIC na pomocný disk karty s názvem HBASIC, který přidává podporu pro monochromatickou grafiku 720 × 348. Jiné verze BASICA/GW-BASIC nepodporují grafiku Hercules a mohou grafiku zobrazovat pouze na této kartě pomocí emulace CGA jiného výrobce , například SIMCGA.
GW -BASIC má integrované vývojové prostředí (IDE) založené na příkazovém řádku založené na Dartmouth BASIC . Pomocí kláves pro pohyb kurzoru lze upravit libovolný řádek zobrazený na obrazovce. Obsahuje také zkratky funkčních kláves ve spodní části obrazovky. Stejně jako ostatní rané mikropočítačové verze BASIC, GW-BASIC postrádá mnoho struktur potřebných pro strukturované programování, jako jsou lokální proměnné, a programy GW-BASIC prováděné relativně pomalu, protože to byl interpretovaný jazyk . Všechny programové řádky musí být očíslovány; všechny nečíslované řádky jsou považovány za příkazy v přímém režimu, které mají být provedeny okamžitě. Soubory zdrojového kódu programu jsou obvykle uloženy v binárním komprimovaném formátu s tokeny nahrazujícími klíčová slova s možností uložení v textové podobě ASCII .
Prostředí příkazového řádku GW-BASIC má příkazy pro RUN, LOAD, SAVE, LIST
aktuální program nebo ukončí práci SYSTEM
; tyto příkazy lze také použít jako programové příkazy. V GW-BASIC existuje jen malá podpora strukturovaného programování . Všechny IF/THEN/ELSE
podmíněné příkazy musí být napsány na jednom řádku, ačkoli WHILE/WEND
příkazy mohou seskupovat více řádků. Funkce lze definovat pouze pomocí jednořádkového DEF FNf(x)=<mathematical function of x>
příkazu (např. DEF FNLOG(base,number)=LOG(number)/LOG(base)
). Datový typ proměnných lze zadat znakem na konci názvu proměnné: A$
je řetězec znaků, A%
je celé číslo atd. Skupiny proměnných lze také nastavit na výchozí typy na základě počátečního písmene jejich názvu používání DEFINT, DEFSTR
prohlášení atd. Výchozí typ pro nedeklarované proměnné, které nejsou identifikovány takovými příkazy pro psaní, je plovoucí desetinná čárka s jednoduchou přesností ( 32bitový MBF ).
GW-BASIC umožňuje použití joysticku a vstupního zařízení s lehkým perem . GW-BASIC umí číst a zapisovat do souborů a portů COM ; může také provádět odchyt událostí pro porty. Protože rozhraní portu kazetové pásky původního počítače IBM nebylo nikdy implementováno na kompatibilních zařízeních, operace s kazetami nejsou podporovány. GW-BASIC dokáže pomocí PLAY
příkazu přehrávat jednoduchou hudbu, přičemž potřebuje řetězec not reprezentovaných v jazyce hudebních maker , např PLAY "edcdeeL2edfedL4c"
. Více nízkoúrovňového ovládání je možné s SOUND
příkazem, který pro standardní interní reproduktor PC v počítačích IBM přebírá argumenty frekvence v hertzech a délky v hodinách . V důsledku toho je zvuk omezen na pípání a pískání jednoho kanálu, jak se na „obchodní“ stroj sluší. Domácí počítače jako Tandy 1000 umožňují až tři zvukové kanály pro příkazy a .
SOUND
PLAY
název
Existuje několik teorií o tom, co znamenají iniciály „GW“. Greg Whitten , raný zaměstnanec společnosti Microsoft, který vyvinul standardy v řadě kompilátorů společnosti BASIC, říká, že Bill Gates zvolil jméno GW-BASIC. Whitten to označuje jako Gee-Whiz BASIC a není si jistý, jestli po něm program pojmenoval Gates. Pod tímto názvem na něj odkazuje také uživatelská příručka společnosti Microsoft od společnosti Microsoft Press . Může se mu také přezdívat Gee-Whiz kvůli jeho četným grafickým příkazům. Mezi další běžné teorie původů iniciál patří „grafika a Windows“, „ Gates, William “ (tehdejší prezident Microsoftu) nebo „Gates-Whitten“ (dva hlavní návrháři programu).
Viz také
- Microsoft binární formát (MBF)
Reference
externí odkazy
- Zdrojový kód GW-BASIC na GitHubu
- Stránka klasických základních her , zdroj pro ZÁKLADNÍ hry a další programy
- Zpět na BASIC , další zdrojový web BASIC
- Web pro tlumočení GW-BASIC a stahování souborů na Wayback Machine (archivováno 27. října 2009)
- Uživatelská příručka GW-BASIC
- Informační centrum Garyho Beena ohledně BASIC, s daty časové osy pro DOS, Windows a BASIC dialekty
- GW -BASIC - Gee Whiz! Web Cory Smith věnovaný GW-BASIC.
- PC-BASIC -emulátor GW-BASIC pro moderní operační systémy.
- GW-BASIC -Zdroj pro GW-BASIC, shromážděný z různých zdrojů.