GW -BASIC - GW-BASIC

GW-ZÁKLADNÍ
GW-BASIC 3.23.png
Vývojář Microsoft
Poprvé se objevil 1983 ; Před 38 lety ( 1983 )
Stabilní uvolnění
3,23 / 1988 ; Před 33 lety ( 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, LISTaktuá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/WENDpří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, DEFSTRprohláš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í PLAYpří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 SOUNDpří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 . SOUNDPLAY

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é

Reference

externí odkazy