ZÁKLADNÍ - BASIC

ZÁKLADNÍ
AtariBasic.png
Paradigma Nestrukturované , později procedurální , později objektově orientované
Navrhl
Poprvé se objevil 1. května 1964 ; Před 57 lety ( 1964-05-01 )
Hlavní implementace
Ovlivněn
Ovlivněn

BASIC ( pro začátečníky All-purpose Symbolic Instruction Code ) je řada univerzálních , programovacích jazyků vysoké úrovně , jejichž filozofie designu zdůrazňuje snadnost použití. Původní verzi navrhli John G. Kemeny a Thomas E. Kurtz a byla vydána na Dartmouth College v roce 1964. Chtěli umožnit studentům v jiných oborech, než je věda a matematika, používat počítače. V té době téměř veškeré používání počítačů vyžadovalo psaní vlastního softwaru, což bylo něco, co se učili pouze vědci a matematici .

Kromě samotného jazyka vyvinuli Kemeny a Kurtz Dartmouth Time Sharing System (DTSS), který umožňoval více uživatelům upravovat a spouštět BASIC programy současně. Tento obecný model se stal velmi populárním na minipočítačových systémech, jako jsou PDP-11 a Data General Nova, na konci šedesátých a na začátku sedmdesátých let minulého století. Společnost Hewlett-Packard vyrobila pro tento způsob provozu celou počítačovou řadu, koncem šedesátých let představila řadu HP2000 a do osmdesátých let pokračovala v prodeji. Mnoho raných videoher sleduje svou historii v jedné z těchto verzí BASIC.

Vznik raných mikropočítačů v polovině 70. let vedl k vývoji řady BASIC dialektů, včetně Microsoft BASIC v roce 1975. Vzhledem k malé hlavní paměti dostupné na těchto strojích, často 4 kB, byla také řada dialektů Tiny BASIC vytvořeno. BASIC byl k dispozici pro téměř jakýkoli systém své doby a přirozeně se stal de facto programovacím jazykem pro domácí počítačové systémy, které se objevily na konci 70. let. Tyto stroje měly téměř vždy ve výchozím nastavení nainstalován BASIC interpret , často ve firmwaru stroje nebo někdy na ROM kazetě.

BASIC spadl z používání na počátku 90. let, protože na trh přišly novější stroje s mnohem většími schopnostmi a další programovací jazyky (například Pascal a C ) se staly udržitelnými. V roce 1991 vydala společnost Microsoft Visual Basic , který kombinuje výrazně aktualizovanou verzi BASIC s nástrojem pro vytváření vizuálních formulářů . Toto znovu nastartované používání jazyka a „VB“ zůstává hlavním programovacím jazykem ve formě VB.NET .

Původ

John G. Kemeny byl předsedou matematického oddělení na Dartmouth College. Do značné míry na základě jeho pověsti inovátora ve výuce matematiky získala v roce 1959 škola ocenění Nadace Alfreda P. Sloana za 500 000 dolarů na stavbu nové budovy oddělení. Thomas E. Kurtz nastoupil na oddělení v roce 1956 a od 60. let se Kemeny a Kurtz dohodli na potřebě programové gramotnosti mezi studenty mimo tradiční obory STEM . Kemeny později poznamenal, že „Naší vizí bylo, že každý student na akademické půdě by měl mít přístup k počítači a každý člen fakulty by měl mít možnost používat počítač ve třídě, kdykoli je to vhodné. Bylo to tak jednoduché.“

Kemeny a Kurtz provedli dva předchozí experimenty se zjednodušenými jazyky, DARSIMCO (Dartmouth Simplified Code) a DOPE (Dartmouth Oversimplified Programming Experiment) . Tito nepostupovali za jedinou třídu prváku. Následovaly nové experimenty využívající Fortran a ALGOL , ale Kurtz dospěl k závěru, že tyto jazyky jsou příliš složité na to, co požadují. Jak poznamenal Kurtz, Fortran měl řadu podivně vytvořených příkazů, zejména „téměř nemožné zapamatovat si konvenci pro specifikaci smyčky:„ DO 100, I = 1, 10, 2 “. Je to„ 1, 10, 2 “nebo „1, 2, 10“ a je za číslem řádku čárka nebo ne? “

Klíčovým problémem navíc byla absence jakékoli okamžité zpětné vazby; stroje té doby používaly dávkové zpracování a trvalo dlouho, než dokončily běh programu. Zatímco Kurtz navštěvoval MIT , John McCarthy navrhl, že sdílení času nabízí řešení; jediný stroj by mohl rozdělit dobu zpracování mezi mnoho uživatelů, což by jim dalo iluzi, že mají (pomalý) počítač pro sebe. Malé programy vrátí výsledky během několika sekund. To vedlo ke zvýšenému zájmu o systém využívající sdílení času a nový jazyk speciálně pro studenty, kteří nejsou studenty STEM.

Kemeny napsal první verzi BASIC. Zkratka BASIC pochází ze jména nepublikované stati Thomas Kurtz. Nový jazyk byl silně vzorován na FORTRAN II; příkazy byly jednorázové, čísla byla použita k označení cíle smyček a větví a mnoho příkazů bylo podobných nebo shodných s Fortranem. Nicméně, syntax byl změněn všude tam, kde by se mohla zlepšit. Například obtížně zapamatovatelná DOsmyčka byla nahrazena mnohem snáze zapamatovatelnou FOR I = 1 TO 10 STEP 2a číslo řádku použité v DO bylo místo toho označeno NEXT I. Stejně tak IFse zjednodušilo záhadné prohlášení Fortrana, jehož syntax odpovídala konkrétní instrukci stroje, na kterém byl původně napsán IF I=5 THEN GOTO 100. Díky těmto změnám byl jazyk mnohem méně výstřední a přesto měl celkovou strukturu a cítil se podobně jako původní FORTRAN.

Projekt získal dotaci $ 300,000 od National Science Foundation , která byla použita ke koupi GE-225 počítače pro zpracování a realtime procesor Datanet-30, abyste zvládnout Teletype Model 33 dálnopisy používají pro vstup a výstup. Tým tuctu vysokoškoláků pracoval na projektu asi rok a psal jak systém DTSS, tak kompilátor BASIC. První verze jazyka BASIC byla vydána 1. května 1964. Jednou z absolventek realizačního týmu byla Mary Kenneth Keller , jedna z prvních lidí ve Spojených státech, která získala titul Ph.D. v informatice a první žena, která to udělala.

Zpočátku se BASIC soustředil na podporu jednoduché matematické práce, přičemž maticová aritmetická podpora z jeho počáteční implementace jako dávkový jazyk a funkce znakových řetězců byly přidány do roku 1965. Využití na univerzitě se rychle rozšířilo, což vyžadovalo nahrazení hlavního CPU GE- 235, a ještě později GE-635. Počátkem 70. let byly ke strojům v Dartmouthu připojeny stovky terminálů, z nichž některé byly vzdáleně.

Protože chtěli, aby se jazyk rozšířil, jeho návrháři dali kompilátor k dispozici zdarma. V šedesátých letech se software stal poplatkovým zbožím; do té doby byla poskytována bezplatně jako služba s velmi drahými počítači, obvykle k dispozici pouze k pronájmu. Také je zpřístupnili středním školám v Hannoveru, oblasti New Hampshire a regionálně v celé Nové Anglii na dálnopisných terminálech Teletype Model 33 a Model 35 připojených k Dartmouthu prostřednictvím telefonních telefonních linek a vynaložili značné úsilí na propagaci jazyka. V následujících letech, jak se objevily další dialekty ZÁKLADU, se Kemeny a Kurtzův původní ZÁKLADNÍ dialekt stal známým jako Dartmouth BASIC .

New Hampshire uznal úspěch v roce 2019, když v Hannoveru postavil dálniční historickou značku popisující vytvoření „prvního uživatelsky přívětivého programovacího jazyka“.

Spread na služby sdílení času

Vznik BASIC se uskutečnil jako součást širšího posunu k systémům sdílení času. Myšlenka, která byla poprvé koncipována na konci padesátých let minulého století, se v počítačovém průmyslu stala na počátku šedesátých let natolik dominantní, že její zastánci hovořili o budoucnosti, ve které by uživatelé „kupovali čas na počítači stejným způsobem, jakým průměrná domácnost nakupuje energii a vodu od společností poskytujících veřejné služby “.

Společnost General Electric, která pracovala na projektu Dartmouth, napsala vlastní základní operační systém a spustila online systém sdílení času známý jako Mark I. Jako jedno ze svých hlavních prodejních míst uváděla společnost BASIC. Ostatní společnosti v rozvíjejícím se oboru rychle následovaly; Tymshare představil SUPER BASIC v roce 1968, CompuServe měl verzi na DEC-10 při jejich uvedení na trh v roce 1969 a počátkem 70. let byl BASIC na univerzálních sálových počítačích do značné míry univerzální . Dokonce i IBM se nakonec připojilo ke klubu zavedením VS-BASIC v roce 1973.

Ačkoli služby sdílení času s BASIC byly nějakou dobu úspěšné, dříve předpokládaný všeobecný úspěch nebyl. Vznik minipočítačů ve stejném období, a zejména levných mikropočítačů v polovině 70. let, umožnil komukoli koupit a provozovat vlastní systémy, než nakupovat online čas, který se obvykle účtoval v dolarech za minutu.

Rozloženo na minipočítačích

Systém HP 2000 byl navržen tak, aby jako svůj primární úkol běžel časově sdílený BASIC.

BASIC byl ze své podstaty malý, přirozeně vhodný pro přenos na trh s minipočítači , který vznikal současně se službami sdílení času. Tyto stroje měly velmi malou hlavní paměť , v moderní terminologii snad jen 4 kB, a chybělo jim vysoce výkonné úložiště jako pevné disky , díky nimž jsou kompilátory praktické. Na těchto systémech byl BASIC obvykle implementován jako tlumočník spíše než kompilátor kvůli snížené potřebě pracovní paměti.

Zvláště důležitým příkladem byl HP Time-Shared BASIC , který, stejně jako původní systém Dartmouth, využíval dva počítače spolupracující k implementaci systému sdílení času. První, low-end stroj řady HP 2100 , sloužil k řízení vstupu uživatelů a ukládání a načítání jejich programů na pásku nebo disk. Druhá, špičková verze stejného základního stroje, spouštěla ​​programy a generovala výstup. Za cenu zhruba 100 000 dolarů by mohl vlastnit stroj schopný provozu 16 až 32 uživatelů současně. Systém, dodávaný jako HP 2000, byl první mini platformou nabízející sdílení času a byl okamžitým úspěchem, který katapultoval společnost HP, aby se stala třetím největším prodejcem v prostoru minipočítačů, za DEC a Data General (DG).

DEC, lídr v oblasti minipočítačů od poloviny 60. let, zpočátku BASIC ignoroval. Důvodem byla jejich spolupráce se společností RAND Corporation , která si zakoupila PDP-6 pro provoz svého jazyka JOSS , který byl koncepčně velmi podobný jazyku BASIC. To vedlo DEC k zavedení menší, vyčištěné verze JOSS známé jako FOCAL , kterou na konci šedesátých let silně propagovaly. Protože však systémy časového sdílení široce nabízejí BASIC a všechna jejich konkurence v minipočítačovém prostoru dělá to samé, zákazníci společnosti DEC požadovali BASIC. Poté, co vedení opakovaně ignorovalo jejich prosby, David H. Ahl vzal na sebe nákup ZÁKLADU pro PDP-8 , což byl velký úspěch na trhu vzdělávání. Na začátku 70. let minulého století byly FOCAL a JOSS zapomenuty a BASIC se na trhu minipočítačů staly téměř univerzálními. Společnost DEC by dále představila svou aktualizovanou verzi BASIC-PLUS pro použití v operačním systému RSTS/E pro sdílení času.

Během tohoto období byla v BASICu napsána řada jednoduchých textových her , zejména Star Trek Mikea Mayfielda . David Ahl je shromáždil, některé přeneseny z FOCAL, a publikoval je ve vzdělávacím zpravodaji, který sestavil. Později shromáždil řadu z nich do knižní podoby, 101 BASIC Computer Games , vydané v roce 1973. Během stejného období se Ahl podílel na vytvoření malého počítače pro vzdělávací účely, raného osobního počítače . Když vedení odmítlo koncept podpořit, Ahl v roce 1974 opustil DEC a založil klíčový počítačový časopis Creative Computing . Kniha zůstala populární a byla několikrát znovu vydána.

Výbušný růst: éra domácích počítačů

MSX BASIC verze 3.0
„Trénujte základní každý den!“ - zní plakát (uprostřed dole) v ruské škole (c. 1985–1986)

Zavedení prvních mikropočítačů v polovině 70. let bylo pro společnost BASIC začátkem explozivního růstu. Mělo to tu výhodu, že to bylo docela dobře známé mladým designérům a počítačovým fandům, kteří se zajímali o mikropočítače, z nichž mnozí viděli BASIC na mini nebo mainframech. Přes Dijkstra slavném rozsudku v roce 1975: ‚Je prakticky nemožné učit dobré programování pro studenty, kteří měli předchozí expozici BASIC: jako potenciální programátoři oni jsou mentálně znetvoření za nadějí na regeneraci,‘ BASIC byl jedním z mála jazyků, které byl dostatečně vysoký, aby jej mohli používat i ti, kteří neměli školení, a zároveň dostatečně malý, aby se vešel do dnešních mikropočítačů, což z něj činilo de facto standardní programovací jazyk na raných mikropočítačích.

První mikropočítačovou verzi BASIC napsali společně Bill Gates , Paul Allen a Monte Davidoff pro jejich nově založenou společnost Micro-Soft. Toto bylo vydáno MITS ve formátu děrné pásky pro Altair 8800 krátce po samotném stroji, což okamžitě stmelilo BASIC jako primární jazyk raných mikropočítačů. Členové počítačového klubu Homebrew začali šířit kopie programu, což způsobilo, že Gates napsal svůj otevřený dopis koníčkům a stěžoval si na tento raný příklad softwarového pirátství .

Částečně v reakci na Gatesův dopis a částečně proto, aby se vytvořil ještě menší BASIC, který bude užitečně fungovat na strojích o velikosti 4 KB, Bob Albrecht naléhal na Dennise Allisona, aby napsal vlastní variantu jazyka. Jak navrhnout a implementovat svlečenou verzi tlumočníka pro jazyk BASIC se zabývaly články Allison v prvních třech čtvrtletních číslech zpravodaje People's Computer Company publikovaného v roce 1975 a implementací se zdrojovým kódem publikovaných v časopise Dr. Dobba Drobná ZÁKLADNÍ kalistenika a ortodoncie: Světlo bez přetížení . To vedlo k široké škále Tiny BASIC s přidanými funkcemi nebo jinými vylepšeními, přičemž zvláště známé jsou verze od Toma Pittmana a Li-Chen Wanga .

Micro-Soft, do této doby Microsoft , portoval jejich tlumočníka pro MOS 6502 , který se rychle stal jedním z nejpopulárnějších mikroprocesorů 8bitové éry. Když se začaly objevovat nové mikropočítače, zejména „trojice 1977 z TRS-80 , Commodore PET a Apple II , buď obsahovaly verzi kódu MS, nebo s ním rychle představily nové modely. V roce 1978 byl MS BASIC de facto standardem a prakticky každý domácí počítač osmdesátých let jej zahrnoval do ROM . Po spuštění byl představen ZÁKLADNÍ tlumočník v přímém režimu .

Commodore Business Machines hotelu Commodore BASIC , založený na Microsoft BASIC. Apple II a TRS-80 měly vždy dvě verze BASIC, menší úvodní verzi představenou s počátečním vydáním strojů a verzi založenou na MS, která se začala zvyšovat zájem o platformy. Když do pole vstupovaly nové společnosti, byly přidány další verze, které nenápadně změnily rodinu BASIC. 8-bit family Atari měl vlastní Atari BASIC , který byl modifikován tak, aby se vešly na 8 KB ROM nábojnice . Sinclair BASIC byl představen v roce 1980 se Sinclair ZX80 a později byl rozšířen pro Sinclair ZX81 a Sinclair ZX Spectrum . BBC zveřejnila BBC BASIC , vyvinutý společností Acorn Computers Ltd, včleňovat mnoho další strukturované programování klíčových slov a pokročilé s plovoucí desetinnou čárkou provozní vlastnosti.

Jak popularita BASIC v tomto období rostla, počítačové časopisy publikovaly kompletní zdrojový kód v BASIC pro videohry, nástroje a další programy. Vzhledem k jednoduché povaze BASIC bylo jednoduché zadat kód z časopisu a spustit program. Byly vydávány různé časopisy s programy pro konkrétní počítače, i když některé BASIC programy byly považovány za univerzální a mohly být použity ve strojích s jakoukoli variantou BASIC (někdy s drobnými úpravami). K dispozici bylo také mnoho knih zadaných programů, a zejména Ahl publikoval verze původních 101 základních her převedených do dialektu Microsoft a publikoval je od Creative Computing jako BASIC počítačové hry . Tato kniha a její pokračování poskytly stovky programů připravených k použití, které lze snadno převést na prakticky jakoukoli platformu se systémem BASIC. Kniha se do obchodů dostala v roce 1978, právě když začínal trh s domácími počítači , a stala se první počítačovou knihou, která se prodala za milion. Pozdější balíčky, jako například Naučte se programovat BASIC, budou mít také hraní jako úvodní zaměření. Na počítačích CP/M zaměřených na podnikání, která se brzy rozšířila v prostředí malých podniků, byla Microsoft BASIC ( MBASIC ) jednou z předních aplikací.

V roce 1978 vydal David Lien první vydání ZÁKLADNÍ příručky: Encyklopedie ZÁKLADNÍHO počítačového jazyka , dokumentující klíčová slova na více než 78 různých počítačích. V roce 1981 zdokumentovalo druhé vydání klíčová slova z více než 250 různých počítačů a předvádělo explozivní růst éry mikropočítačů.

IBM PC a kompatibilní

Když IBM navrhovala počítač IBM , řídili se paradigmatem stávajících domácích počítačů a chtěli mít vestavěný BASIC. Získají to od společnosti Microsoft- IBM Cassette BASIC -ale společnost Microsoft také vyrobila několik dalších verzí BASIC pro MS-DOS / PC DOS, včetně IBM Disk BASIC (BASIC D), IBM BASICA (BASIC A), GW-BASIC (a BASICA-kompatibilní verze, která nepotřebovala ROM od IBM) a QBasic , to vše je obvykle součástí stroje. Kromě toho vyrobili kompilátor Microsoft BASIC zaměřený na profesionální programátory. Turbo Pascal -vydavatel Borland vydal Turbo Basic 1.0 v roce 1985 (nástupnické verze jsou stále uváděny na trh původním autorem pod názvem PowerBASIC ). Společnost Microsoft napsala AmigaBASIC s okny, který byl dodán s verzí 1.1 předkupního víceúlohového počítače GUI Amiga (konec roku 1985 / začátek roku 1986), přestože produkt neobvykle nenesl žádné značky Microsoft.

Tyto pozdější varianty zavedly mnoho rozšíření, například vylepšenou manipulaci s řetězci a grafickou podporu, přístup do systému souborů a další datové typy . Důležitější byla zařízení pro strukturované programování , včetně dalších řídicích struktur a správných podprogramů podporujících lokální proměnné . Avšak ve druhé polovině 80. let 20. století uživatelé stále více používali předem připravené aplikace napsané jinými, než aby se sami učili programovat; zatímco profesionální programátoři nyní měli na malých počítačích k dispozici širokou škálu pokročilejších jazyků. C a později C ++ se staly jazyky volby pro profesionální vývoj aplikací „shrink wrap“ .

Visual Basic

V roce 1991 představil Microsoft Visual Basic , evoluční vývoj QuickBASIC . Zahrnovalo konstrukty z tohoto jazyka, jako jsou blokové strukturované řídicí příkazy, parametrizované podprogramy a volitelné statické psaní , stejně jako objektově orientované konstrukce z jiných jazyků, jako například „With“ a „For Each“. Jazyk si zachoval určitou kompatibilitu se svými předchůdci, jako je klíčové slovo Dim pro deklarace, příkazy „Gosub“/Return a volitelná čísla řádků, která by mohla být použita k vyhledání chyb. Důležitou hnací silou pro vývoj jazyka byl jako nové makro jazyka pro Microsoft Excel , v tabulkovém programu. K překvapení mnoha lidí z Microsoftu, kteří je stále zpočátku uváděli na trh jako jazyk pro fandy, se jazyk rozšířil v malých aplikacích pro malé firmy krátce po vydání verze VB 3.0, která je široce považována za první relativně stabilní verzi.

Zatímco mnoho pokročilých programátorů jeho používání stále vysmívalo, VB efektivně vyhovovalo potřebám malých podniků, protože v té době byly počítače se systémem Windows 3.1 natolik rychlé, že mnoho procesů souvisejících s podnikáním bylo možné dokončit „mrknutím oka“ i za použití „pomalý“ jazyk, pokud nebylo zapojeno velké množství dat. Mnoho majitelů malých podniků zjistilo, že si mohou během několika večerů vytvořit vlastní malé, ale užitečné aplikace, které uspokojí jejich vlastní specializované potřeby. Nakonec, během dlouhé životnosti VB3, se znalost jazyka stala obchodovatelnou pracovní schopností. Microsoft také vytvořil VBScript v roce 1996 a Visual Basic .NET v roce 2001. Ten má v podstatě stejnou sílu jako C# a Java, ale se syntaxí, která odráží původní jazyk Basic. IDE , s událostmi řízené GUI Builder , byl také vlivný na jiné nástroje, nejvíce pozoruhodně Borland Software ‚s Delphi pro Object Pascal a vlastních potomků, jako Lazar .

Hlavní podpora finální verze 6.0 původního jazyka Visual Basic skončila 31. března 2005, poté následovala rozšířená podpora v březnu 2008. 11. března 2020 společnost Microsoft oznámila, že vývoj jazyka VB.NET také skončil, přestože stále podporováno. Mezitím existují konkurenti jako Xojo a Gambas .

Tři moderní základní varianty: Mono Basic, OpenOffice.org Basic a Gambas

Verze a dialekty po roce 1990

Od roku 1990 také vzniklo mnoho dalších dialektů BASIC, včetně open source QB64 a FreeBASIC , inspirovaných QBasic, a RapidQ ve stylu Visual Basic , Basic pro Qt a Gambas . Mezi moderní komerční inkarnace patří PureBasic , PowerBASIC , Xojo , Monkey X a True BASIC (přímý nástupce Dartmouthu BASIC od společnosti ovládané Kurtzem).

Nyní také existuje několik webových jednoduchých BASIC interpretů, včetně Microsoft Small Basic . Mnoho verzí BASIC je nyní k dispozici také pro chytré telefony a tablety prostřednictvím Apple App Store nebo Google Play store pro Android. Na herních konzolách umožňuje aplikace pro Nintendo 3DS a Nintendo DSi s názvem Petit Computer programování v mírně upravené verzi BASIC s podporou tlačítka DS. Byla také vydána verze pro Nintendo Switch .

Kalkulačky

Varianty BASIC jsou k dispozici na grafických a jinak programovatelných kalkulačkách společností Texas Instruments , HP, Casio a dalších.

Windows příkazového řádku

QBasic , verze Microsoft QuickBASIC bez linkeru pro vytváření souborů EXE, je přítomen ve streamech operačních systémů Windows NT a DOS- Windows 95 a lze jej získat pro novější verze, jako je Windows 7, které je nemají. Před DOS 5 byl základní tlumočník GW-Basic . QuickBasic je součástí série tří jazyků vydaných společností Microsoft pro domácí a kancelářské uživatele a pro malý profesionální rozvoj; Další dva jsou QuickC a QuickPascal. Pro Windows 95 a 98, které ve výchozím nastavení nemají nainstalovaný QBasic, je lze zkopírovat z instalačního disku, který bude mít sadu adresářů pro starý a volitelný software; další chybějící příkazy jako Exe2Bin a další jsou ve stejných adresářích.

jiný

BASIC přišel do některých systémů videoher, jako je Nintendo Famicom .

Různé kancelářské sady Microsoft, Lotus a Corel a související produkty lze v té či oné formě programovat pomocí jazyka Visual Basic, včetně LotusScriptu , který je velmi podobný jazyku VBA 6. Emulátor terminálu Host Explorer používá jako makro jazyk WWB; nebo nověji je program a sada, ve které je obsažen, programovatelné v interní základní variantě známé jako Hummingbird Basic. Varianta VBScript se používá k programování webového obsahu, aplikace Outlook 97, Internet Explorer a Windows Script Host. WSH má také nainstalován motor Visual Basic for Applications (VBA) jako třetí z výchozích motorů spolu s VBScript, JScript a četné proprietární nebo open source motory, které lze nainstalovat jako PerlScript , několik motorů založených na Rexx, Python , Ruby, Tcl, Delphi, XLNT, PHP a další; což znamená, že obě verze Basic lze použít společně s dalšími zmíněnými jazyky, stejně jako LotusScript, v souboru WSF, prostřednictvím modelu komponentního objektu a dalších konstrukcí WSH a VBA. VBScript je jedním z jazyků, ke kterým mají přístup vylepšené skořepiny 4Dos, 4NT a Take Command. SaxBasic a WWB jsou také velmi podobné řadě implementací jazyka Visual Basic. Jazyk makra před aplikací Microsoft Office 97 pro Microsoft Word je známý jako WordBASIC . Excel 4 a 5 používají jako makro jazyk samotný Visual Basic. Chipmunk Basic , old-school interpret podobný BASICům 70. let, je k dispozici pro Linux , Microsoft Windows a macOS .

Dědictví

Všudypřítomnost tlumočníků BASIC na osobních počítačích byla taková, že učebnice kdysi obsahovaly jednoduchá cvičení „Zkuste to v základech“, která studenty povzbudila k experimentování s matematickými a výpočetními koncepty na učebnách nebo domácích počítačích. Populární počítačové časopisy té doby obvykle obsahovaly programy pro psaní .

Futurista a spisovatel sci-fi David Brin truchlil nad ztrátou všudypřítomného BASIC v článku z Salonu 2006 stejně jako ostatní, kteří v této době poprvé používali počítače. Na druhé straně článek vyzval společnost Microsoft k vývoji a vydání Small Basic ; inspirovalo také podobné projekty jako Basic-256 . Dartmouth uspořádal 1. května 2014 oslavu 50. výročí pro společnost BASIC, stejně jako jiné organizace; v roce 1999 uspořádala alespoň jedna organizace programátorů VBA oslavu 35. výročí.

Dartmouth College oslavila 50. výročí jazyka BASIC dnem událostí 30. dubna 2014. K této události byl vyroben krátký dokumentární film.

Syntax

Typická ZÁKLADNÍ klíčová slova

Manipulace s daty

LET
přiřadí proměnné hodnotu (která může být výsledkem výrazu ). Ve většině dialektů BASIC LETje volitelný a řádek bez jiného identifikovatelného klíčového slova předpokládá, že bude klíčové slovo LET.
DATA
obsahuje seznam hodnot, které jsou přiřazeny postupně pomocí příkazu READ.
READ
přečte hodnotu z DATApříkazu a přiřadí ji proměnné. Interní ukazatel sleduje poslední DATAnačtený prvek a s každým jej posune o jednu pozici dopředu READ.
RESTORE
resetuje interní ukazatel na první DATApříkaz, což umožňuje programu začít READod první hodnoty.

Řízení toku programu

IF ... THEN ... {ELSE}
slouží k porovnávání nebo rozhodování. ELSEnebyl široce podporován, zejména v dřívějších verzích.
FOR ... TO ... {STEP} ... NEXT
opakujte část kódu daný početkrát. Ve smyčce je k dispozici proměnná, která funguje jako čítač .
WHILE ... WEND a REPEAT ... UNTIL
opakujte část kódu, dokud je zadaná podmínka pravdivá. Podmínka může být vyhodnocena před každou iterací smyčky nebo po ní. Oba tyto příkazy se nacházejí většinou v pozdějších dialektech.
DO ... LOOP {WHILE} nebo {UNTIL}
opakujte část kódu na neurčito nebo while/dokud není zadaná podmínka pravdivá. Podmínka může být vyhodnocena před každou iterací smyčky nebo po ní. Podobně jako WHILEtato klíčová slova se většinou nacházejí v pozdějších dialektech.
GOTO
skočí na číslovaný nebo označený řádek v programu.
GOSUB
skočí na číslovaný nebo označený řádek, spustí kód, který tam najde, dokud nedosáhne RETURNpříkazu, na který skočí zpět na příkaz následující za GOSUB, buď za dvojtečkou, nebo na další řádek. To se používá k implementaci podprogramů .
ON ... GOTO/GOSUB
na základě zadaných podmínek zvolí, kam skočit. Další formuláře najdete v části Přepnout příkaz .
DEF FN
dvojice klíčových slov zavedená na počátku 60. let k definování funkcí. Původní základní funkce byly modelovány na jednořádkových funkcích FORTRAN. ZÁKLADNÍ funkce byly jedním výrazem s proměnnými argumenty, spíše než podprogramy , se syntaxí v modelu DEF FND(x) = x*xna začátku programu. Názvy funkcí byly původně omezeny na FN plus jedno písmeno, tj . FNA, FNB ...

Vstup a výstup

LIST
zobrazuje úplný zdrojový kód aktuálního programu.
PRINT
zobrazí zprávu na obrazovce nebo jiném výstupním zařízení.
INPUT
požádá uživatele o zadání hodnoty proměnné. Prohlášení může obsahovat rychlou zprávu.
TAB
slouží PRINTk nastavení polohy, kde bude další znak zobrazen na obrazovce nebo vytištěn na papír. ATje alternativní forma.
SPC
vytiskne řadu mezer. Koncept je podobný, TABale přesouvá se o několik dalších mezer z aktuálního sloupce, spíše než přesun do zadaného sloupce.

Matematické funkce

ABS
Absolutní hodnota
ATN
Arktangens (výsledek v radiánech )
COS
Kosinus (argument v radiánech )
EXP
Exponenciální funkce
INT
Celočíselná část (obvykle funkce podlahy )
LOG
Přírodní logaritmus
RND
Generování náhodných čísel
SIN
Sinus (argument v radiánech )
SQR
Odmocnina
TAN
Tečna (argument v radiánech )

Smíšený

REM
má komentář nebo poznámku programátora; často se používá k pojmenování programu a k identifikaci účelu dané části kódu.
USR
přenáší řízení programu na podprogram strojového jazyka , obvykle zadaný jako alfanumerický řetězec nebo do seznamu příkazů DATA.
CALL
alternativní forma USRnalezená v některých dialektech. K dokončení syntaxe podobné funkcím nevyžaduje umělý parametr USRa má jasně definovanou metodu volání různých rutin v paměti.
TRON
zapne zobrazení každého čísla řádku při jeho spuštění („TRace ON“). To bylo užitečné pro ladění nebo opravu problémů v programu.
TROFF
vypne zobrazení čísel řádků.
ASM
některé kompilátory, jako Freebasic, Purebasic a Powerbasic, také podporují vložený jazyk sestavení , což umožňuje programátorovi míchat kód na vysoké a nízké úrovni, obvykle s předponou „ASM“ nebo „!“ prohlášení.

Datové typy a proměnné

Minimální verze BASIC měly pouze celočíselné proměnné a jedno nebo dvoupísmenné názvy proměnných, což minimalizovalo požadavky na omezenou a drahou paměť (RAM). Výkonnější verze měly aritmetiku s pohyblivou řádovou čárkou a proměnné mohly být označeny jmény o délce šesti a více znaků. V raných implementacích byly určité problémy a omezení; například Applesoft BASIC umožnil názvy proměnných mít několik znaků, ale významné byly pouze první dva, takže bylo možné nechtěně napsat program s proměnnými „LOSS“ a „LOAN“, které by byly považovány za stejné; přiřazení hodnoty „PŮJČCE“ by tiše přepsalo hodnotu určenou jako „ZTRÁTA“. Klíčová slova nemohla být použita v proměnných v mnoha raných ZÁKLADECH; „SCORE“ by bylo interpretováno jako „SC“ NEBO „E“, přičemž NEBO bylo klíčové slovo. Řetězcové proměnné se v mnoha mikropočítačových dialektech obvykle rozlišují tím, že mají ke svému jménu příponu $ jako sigil , a hodnoty jsou často identifikovány jako řetězce tak, že jsou ohraničeny „dvojitými uvozovkami“. Pole v BASICu mohou obsahovat celá čísla, proměnné s pohyblivou řádovou čárkou nebo řetězce.

Některé dialekty BASIC podporovaly matice a maticové operace , užitečné pro řešení množin simultánních lineárních algebraických rovnic. Tyto dialekty by přímo podporovaly maticové operace, jako je přiřazení, sčítání, násobení (kompatibilních typů matic) a hodnocení determinantu. Mnoho mikropočítačových ZÁKLADŮ tento datový typ nepodporovalo; maticové operace byly stále možné, ale musely být programovány explicitně na maticových prvcích.

Příklady

Nestrukturovaný ZÁKLAD

Noví programátoři BASIC na domácím počítači mohou začít s jednoduchým programem, který možná použije k zobrazení zprávy na obrazovce příkaz PRINT daného jazyka; známý a často replikovány příkladem je Kernighan a Ritchie ‚s ‚Hello, World!‘ program :

10 PRINT "Hello, World!"
20 END

K vyplnění displeje zprávou lze použít nekonečnou smyčku :

10 PRINT "Hello, World!"
20 GOTO 10

Všimněte si, že ENDprohlášení je nepovinné a ve většině dialektů ZÁKLADNÍ nemá žádnou akci. Nebylo to vždy zahrnuto, jak je tomu v tomto případě. Tentýž program lze upravit tak, aby tiskl pevný počet zpráv pomocí společného FOR...NEXTpříkazu:

10 LET N=10
20 FOR I=1 TO N
30 PRINT "Hello, World!"
40 NEXT I

Většina verzí BASIC první generace, jako jsou MSX BASIC a GW-BASIC , podporovala jednoduché datové typy, cykly smyček a pole. Následující příklad je napsán pro GW-BASIC, ale bude fungovat ve většině verzí BASIC s minimálními změnami:

10 INPUT "What is your name: "; U$
20 PRINT "Hello "; U$
30 INPUT "How many stars do you want: "; N
40 S$ = ""
50 FOR I = 1 TO N
60 S$ = S$ + "*"
70 NEXT I
80 PRINT S$
90 INPUT "Do you want more stars? "; A$
100 IF LEN(A$) = 0 THEN GOTO 90
110 A$ = LEFT$(A$, 1)
120 IF A$ = "Y" OR A$ = "y" THEN GOTO 30
130 PRINT "Goodbye "; U$
140 END

Výsledný dialog se může podobat:

What is your name: Mike
Hello Mike
How many stars do you want: 7
*******
Do you want more stars? yes
How many stars do you want: 3
***
Do you want more stars? no
Goodbye Mike

Původní Dartmouth Basic měl neobvyklé maticové klíčové slovo MAT. Ačkoli není implementován většinou novějších derivátů mikroprocesorů, je v tomto příkladu použit z manuálu z roku 1968, který průměruje zadaná čísla:

5 LET S = 0
10 MAT INPUT V 
20 LET N = NUM 
30 IF N = 0 THEN 99 
40 FOR I = 1 TO N 
45 LET S = S + V(I) 
50 NEXT I 
60 PRINT S/N 
70 GO TO 5 
99 END

Strukturovaný ZÁKLAD

BASIC druhé generace (například VAX Basic , SuperBASIC , True BASIC , QuickBASIC , BBC BASIC , Pick BASIC , PowerBASIC , Liberty BASIC a (pravděpodobně) COMAL ) zavedly do jazyka řadu funkcí, primárně souvisejících se strukturovaným a procedurálním orientované programování. Číslování řádků je z jazyka obvykle vynecháno a nahrazeno štítky (pro GOTO ) a postupy, které podporují snazší a flexibilnější návrh. Kromě toho byla zavedena klíčová slova a struktury na podporu opakování, výběru a procedur s lokálními proměnnými.

Následující příklad je v Microsoft QuickBASIC:

REM QuickBASIC example

REM Forward declaration - allows the main code to call a
REM    subroutine that is defined later in the source code
DECLARE SUB PrintSomeStars (StarCount!)

REM Main program follows
INPUT "What is your name: ", UserName$
PRINT "Hello "; UserName$
DO
   INPUT "How many stars do you want: ", NumStars
   CALL PrintSomeStars(NumStars)
   DO
      INPUT "Do you want more stars? ", Answer$
   LOOP UNTIL Answer$ <> ""
   Answer$ = LEFT$(Answer$, 1)
LOOP WHILE UCASE$(Answer$) = "Y"
PRINT "Goodbye "; UserName$
END

REM subroutine definition
SUB PrintSomeStars (StarCount)
   REM This procedure uses a local variable called Stars$
   Stars$ = STRING$(StarCount, "*")
   PRINT Stars$
END SUB

Objektově orientovaný ZÁKLAD

Třetí generace BASIC dialekty jako například Visual Basic , Xojo , Gambas , StarOffice Basic , BlitzMax a PureBasic zavedena funkce pro podporu objektově orientovaný a událostmi řízené programování paradigmatu. Většina vestavěných procedur a funkcí je nyní reprezentována spíše jako metody standardních objektů než jako operátory . Také operační systém byl stále více přístupný jazyku BASIC.

Následující příklad je v jazyce Visual Basic .NET :

Public Module StarsProgram
   Private Function Ask(prompt As String) As String
      Console.Write(prompt)
      Return Console.ReadLine()
   End Function

   Public Sub Main()
      Dim userName = Ask("What is your name: ")
      Console.WriteLine("Hello {0}", userName)

      Dim answer As String

      Do
         Dim numStars = CInt(Ask("How many stars do you want: "))
         Dim stars As New String("*"c, numStars)
         Console.WriteLine(stars)

         Do
            answer = Ask("Do you want more stars? ")
         Loop Until answer <> ""
      Loop While answer.StartsWith("Y", StringComparison.OrdinalIgnoreCase)

      Console.WriteLine("Goodbye {0}", userName)
   End Sub
End Module

Standardy

  • Norma ANSI/ISO/IEC pro minimální ZÁKLADNÍ:
    • ANSI X3.60-1978 "Pro minimální ZÁKLADNÍ"
    • ISO/IEC 6373: 1984 „Zpracování dat - programovací jazyky - minimální ZÁKLADNÍ“
  • ECMA -55 Minimal BASIC (staženo, podobně jako ANSI X3.60-1978)
  • Standard ANSI/ISO/IEC pro úplný ZÁKLAD:
    • ANSI X3.113-1987 "Programovací jazyky plně ZÁKLADNÍ"
    • INCITS/ISO/IEC 10279-1991 (R2005) "Informační technologie-programovací jazyky-úplný ZÁKLAD"
  • Moduly definující dodatek ANSI/ISO/IEC:
    • Interpretace ANSI X3.113-1992 „Základní technický informační bulletin č. 1 Interpretace ANSI 03.113-1987“
    • ISO/ IEC 10279: 1991/ Amd 1: 1994 „Moduly a vylepšení jednoho znakového vstupu“
  • ECMA -116 BASIC (staženo, podobně jako ANSI X3.113-1987)

Překladatelé a tlumočníci

Překladač Autor Okna Unixové Jiné OS Typ licence
ACE ZÁKLADNÍ David Benn Ne Ne Ano ( AmigaOS ) GPLv2+
AppGameKit The Game Creators Ano Ano Ne Proprietární
B4X Erel Uziel Ano Ano ( Android , iOS ) Ano (JVM) Licence Apache 2.0
BlitzMax Blitz Research Ano Ano ( Linux , OS X ) Ne zlib licence
DarkBASIC The Game Creators Ano Ne Ne Licence MIT
ZDARMA Vývojový tým FreeBASIC Ano Ano DOS GPLv2+
Gambie Benoît Minisini Ne Ano Ne GPLv2+
GFA ZÁKLADNÍ Frank Ostrowski Ano Ne Amiga , Atari ST , DOS Proprietární
Rtuť RemObjects Ano Ano ( Linux , OS X , Android , iOS ) Ano ( Web Assembly ) Proprietární
PowerBASIC (dříve Turbo Basic) PowerBASIC, Inc. Ano Ne DOS Proprietární
PureBasic Fantaisie Software Ano Ano Ano Proprietární
QB64 Galéra Ano Ano Ano LGPLv2.1
QuickBASIC Microsoft Ne Ne DOS Proprietární
Skutečný ZÁKLAD Skutečný ZÁKLAD Ano Ne Ne Proprietární
VSI BASIC pro OpenVMS Skutečný ZÁKLAD Ne Ne OpenVMS Proprietární
Xojo (dříve REALbasic) Xojo Inc. (dříve Real Software) Ano Ano Ano Proprietární
Tlumočník Autor Okna Unixové Jiné OS Typ licence
Liberty ZÁKLADNÍ Shoptalk Systems Ano Ne Ne Proprietární
GW-ZÁKLADNÍ Microsoft Ne Ne MS-DOS Proprietární
QZákladní Microsoft Ano Ne Ne Proprietární
Chipmunk Basic Ronald H. Nicholson, Jr. Ano Ano Ano Freeware
TI Basic Texas Instruments Ne Ne TI-99/4A Proprietární
TI Extended Basic Texas Instruments Ne Ne TI-99/4A Proprietární
Rocky Mountain ZÁKLADNÍ [Trans Era] Ano Ne HP 9000 Proprietární
Bas Michael Haardt Ne Ano Ne Licence MIT
Yabasic Marc-Oliver Ihm Ano Ano Ne Licence MIT
SmallBASIC SmallBASIC Ano Ano Android , OS X GPLv3+
PC-ZÁKLADNÍ Rob Hagemans Ano Ano OS X GPLv3+

Viz také

Poznámky

Reference

Obecné reference

externí odkazy