PODSTAWOWY - BASIC

PODSTAWOWY
AtariBasic.png
Atari BASIC (1979) dla rodziny Atari 8-bitowych
Paradygmat Niestrukturalne , później proceduralne , później zorientowane obiektowo
Zaprojektowany przez
Po raz pierwszy pojawiły się 1 maja 1964 ; 57 lat temu ( 01.05.1964 )
Główne wdrożenia
Wpływem
Pod wpływem

BASIC ( Uniwersalny Symboliczny Kod Instrukcji dla Początkujących ) to rodzina języków programowania wysokiego poziomu ogólnego przeznaczenia , których filozofia projektowania kładzie nacisk na łatwość użycia. Oryginalna wersja została zaprojektowana przez Johna G. Kemeny'ego i Thomasa E. Kurtza i wydana w Dartmouth College w 1964 roku. Chcieli umożliwić studentom z dziedzin innych niż nauki ścisłe i matematyka korzystanie z komputerów. W tamtych czasach prawie każde użycie komputerów wymagało napisania specjalnego oprogramowania, czego uczyli się tylko naukowcy i matematycy .

Oprócz samego języka Kemeny i Kurtz opracowali system udostępniania czasu Dartmouth (DTSS), który umożliwia wielu użytkownikom edycję i uruchamianie programów w języku BASIC w tym samym czasie. Ten ogólny model stał się bardzo popularny w systemach minikomputerowych , takich jak PDP-11 i Data General Nova pod koniec lat 60. i na początku lat 70. XX wieku. Hewlett-Packard wyprodukował całą linię komputerów dla tej metody działania, wprowadzając serię HP2000 pod koniec lat 60. i kontynuując sprzedaż w latach 80. XX wieku. Wiele wczesnych gier wideo wywodzi swoją historię z jednej z tych wersji BASICa.

Pojawienie się pierwszych mikrokomputerów w połowie 1970 roku doprowadziły do rozwoju wielu dialektów podstawowego, w tym Microsoft BASIC w roku 1975. Ze względu na maleńkim pamięci głównej dostępny na tych maszynach, często 4 KB, różnych Tiny BASIC dialektów był również Utworzony. BASIC był dostępny dla prawie każdego systemu tamtych czasów i naturalnie stał się de facto językiem programowania dla domowych systemów komputerowych , które pojawiły się pod koniec lat siedemdziesiątych. Maszyny te prawie zawsze miały domyślnie zainstalowany interpreter BASIC , często w oprogramowaniu sprzętowym maszyny lub czasami na kasecie ROM .

BASIC wypadł z użycia na początku lat 90., gdy na rynku pojawiły się nowsze maszyny o znacznie większych możliwościach, a inne języki programowania (takie jak Pascal i C ) stały się możliwe do utrzymania. W 1991 roku firma Microsoft wydała Visual Basic , łącząc znacznie zaktualizowaną wersję BASIC z wizualnym konstruktorem formularzy . To ponowne użycie języka i „VB” pozostaje głównym językiem programowania w postaci VB.NET .

Początek

John G. Kemeny był przewodniczącym wydziału matematyki w Dartmouth College. Opierając się w dużej mierze na jego reputacji jako innowatora w nauczaniu matematyki, w 1959 roku szkoła zdobyła nagrodę Fundacji Alfreda P. Sloana za 500 000 dolarów na budowę nowego budynku wydziału. Thomas E. Kurtz dołączył do wydziału w 1956 roku, a od lat 60. Kemeny i Kurtz zgodzili się co do potrzeby umiejętności programowania wśród studentów spoza tradycyjnych dziedzin STEM . Kemeny zauważył później, że „naszą wizją było, aby każdy student na kampusie miał dostęp do komputera , a każdy członek wydziału powinien móc korzystać z komputera w klasie, kiedy tylko jest to możliwe. To było tak proste”.

Kemeny i Kurtz przeprowadzili dwa poprzednie eksperymenty z uproszczonymi językami, DARSIMCO (Dartmouth Simplified Code) i DOPE (Dartmouth Oversimplified Programming Experiment) . Te nie przekroczyły ani jednej klasy pierwszego roku. Następnie pojawiły się nowe eksperymenty z użyciem Fortran i ALGOL , ale Kurtz doszedł do wniosku, że te języki są zbyt trudne do spełnienia. Jak zauważył Kurtz, Fortran miał wiele dziwnie sformułowanych poleceń, w szczególności „prawie niemożliwą do zapamiętania konwencję określania pętli: „DO 100, I = 1, 10, 2”. Czy to „1, 10, 2” czy '1, 2, 10' i czy przecinek po numerze wiersza jest wymagany, czy nie?"

Co więcej, brak jakiejkolwiek natychmiastowej informacji zwrotnej był kluczowym problemem; maszyny tamtych czasów wykorzystywały przetwarzanie wsadowe i zajęło dużo czasu, aby ukończyć cykl programu. Podczas gdy Kurtz odwiedzał MIT , John McCarthy zasugerował, że podział czasu stanowi rozwiązanie; pojedyncza maszyna może podzielić swój czas przetwarzania między wielu użytkowników, dając im złudzenie posiadania (powolnego) komputera dla siebie. Małe programy zwracały wyniki w ciągu kilku sekund. Doprowadziło to do wzrostu zainteresowania systemem wykorzystującym podział czasu i nowym językiem przeznaczonym specjalnie do użytku przez uczniów niebędących studentami STEM.

Kemeny napisał pierwszą wersję BASICa. Akronim BASIC pochodzi od nazwy niepublikowanych papieru Thomasa Kurtza. Nowy język był mocno wzorowany na FORTRANIE II; instrukcje były jeden do wiersza, liczby były używane do wskazania celu pętli i rozgałęzień, a wiele poleceń było podobnych lub identycznych z Fortranem. Jednak składnia została zmieniona wszędzie tam, gdzie można ją było poprawić. Na przykład, trudna do zapamiętania DOpętla została zastąpiona znacznie łatwiejszą do zapamiętania FOR I = 1 TO 10 STEP 2, a numer linii użyty w DO był zamiast tego wskazywany przez NEXT I. Podobnie zagadkowe IFoświadczenie Fortran, którego składnia pasowała do konkretnej instrukcji maszyny, na której została pierwotnie napisana, stała się prostsza IF I=5 THEN GOTO 100. Zmiany te sprawiły, że język był znacznie mniej specyficzny, a jednocześnie nadal miał ogólną strukturę i przypominał oryginalny FORTRAN.

Projekt otrzymał $ 300,000 grant z National Science Foundation , który został użyty do zakupu GE-225 komputer do przetwarzania i Datanet-30 procesor w czasie rzeczywistym do obsługi Teletype model 33 dalekopisów wykorzystywane do wejścia i wyjścia. Zespół kilkunastu studentów pracował nad projektem przez około rok, pisząc zarówno system DTSS, jak i kompilator BASIC. Pierwsza wersja języka BASIC została wydana 1 maja 1964 roku. Jednym z absolwentów zespołu wdrożeniowego była Mary Kenneth Keller , jedna z pierwszych osób w Stanach Zjednoczonych, która uzyskała tytuł doktora. w informatyce i pierwsza kobieta, która to zrobiła.

Początkowo BASIC koncentrował się na wspieraniu prostej pracy matematycznej, z obsługą arytmetyki macierzowej od początkowej implementacji jako języka wsadowego, a funkcjonalność ciągu znaków została dodana do 1965 roku. Wykorzystanie na uniwersytecie szybko się rozszerzyło, co wymagało zastąpienia głównego procesora przez GE- 235, a jeszcze później przez GE-635. Na początku lat 70. do maszyn w Dartmouth były podłączone setki terminali, niektóre z nich zdalnie.

Chcąc upowszechnić język, jego projektanci udostępnili kompilator bezpłatnie. W latach 60. oprogramowanie stało się towarem płatnym; do tego czasu była ona świadczona bezpłatnie jako usługa z bardzo drogimi komputerami, zwykle dostępnymi tylko w leasingu. Udostępnili go również szkołom średnim w rejonie Hanoweru, New Hampshire i regionalnie w całej Nowej Anglii za pomocą terminali z teledrukarką Teletype Model 33 i Model 35 podłączonych do Dartmouth za pośrednictwem linii telefonicznych wdzwanianych i włożyli wiele wysiłku w promowanie języka. W następnych latach, gdy pojawiły się inne dialekty BASIC, oryginalny dialekt BASIC Kemeny'ego i Kurtza stał się znany jako Dartmouth BASIC .

New Hampshire doceniło to osiągnięcie w 2019 roku, kiedy wzniósł historyczny znacznik autostrady w Hanowerze, opisujący stworzenie „pierwszego przyjaznego dla użytkownika języka programowania”.

Rozłóż na usługi z podziałem czasu

Pojawienie się BASIC nastąpiło w ramach szerszego ruchu w kierunku systemów z podziałem czasu. Po raz pierwszy skonceptualizowany pod koniec lat pięćdziesiątych, pomysł stał się tak dominujący w przemyśle komputerowym na początku lat sześćdziesiątych, że jego zwolennicy mówili o przyszłości, w której użytkownicy będą „kupować czas na komputerze w taki sam sposób, w jaki przeciętne gospodarstwo domowe kupuje energię i wodę”. od przedsiębiorstw użyteczności publicznej".

General Electric, pracując nad projektem Dartmouth, napisał własny podstawowy system operacyjny i uruchomił internetowy system współdzielenia czasu znany jako Mark I. Zawierał BASIC jako jeden z głównych punktów sprzedaży. Inne firmy z wschodzącej branży szybko poszły w ich ślady; Tymshare wprowadził SUPER BASIC w 1968 r., CompuServe miał wersję na DEC-10 w momencie premiery w 1969 r., a na początku lat 70. BASIC był w dużej mierze uniwersalny na komputerach mainframe ogólnego przeznaczenia . Nawet IBM ostatecznie dołączył do klubu wraz z wprowadzeniem VS-BASIC w 1973 roku.

Chociaż usługi dzielenia czasu w BASIC były przez pewien czas skuteczne, przewidywany wcześniej powszechny sukces nie miał nastąpić. Pojawienie się minikomputerów w tym samym okresie, a zwłaszcza tanich mikrokomputerów w połowie lat 70., pozwoliło każdemu kupować i uruchamiać własne systemy zamiast kupować czas online, który zwykle był rozliczany w dolarach za minutę.

Rozprzestrzenianie się na minikomputerach

System HP 2000 został zaprojektowany tak, aby jego podstawowym zadaniem było uruchamianie współdzielonego w czasie języka BASIC.

BASIC, ze względu na swój mały charakter, w naturalny sposób nadawał się do przeniesienia na rynek minikomputerów , który pojawiał się w tym samym czasie, co usługi z podziałem czasu. Maszyny te miały bardzo małą pamięć główną , prawdopodobnie zaledwie 4 KB we współczesnej terminologii, i brakowało im wydajnej pamięci masowej, takiej jak dyski twarde, co czyni kompilatory praktycznymi. W tych systemach BASIC był zwykle implementowany jako interpreter, a nie kompilator ze względu na mniejsze zapotrzebowanie na pamięć roboczą.

Szczególnie ważnym przykładem jest HP Time-Shared BASIC , który, podobnie jak oryginalny system Dartmouth, wykorzystywał dwa współpracujące ze sobą komputery do wdrożenia systemu z podziałem czasu. Pierwsza, tańsza maszyna z serii HP 2100 , służyła do kontrolowania danych wprowadzanych przez użytkownika oraz zapisywania i ładowania ich programów na taśmę lub dysk. Druga, zaawansowana wersja tej samej podstawowej maszyny, uruchamiała programy i generowała dane wyjściowe. Za koszt około 100 000 dolarów można było posiadać maszynę zdolną do jednoczesnej pracy od 16 do 32 użytkowników. System, dołączony do zestawu jako HP 2000, był pierwszą miniplatformą, która oferowała dzielenie czasu i odniósł natychmiastowy sukces, katapultując HP do pozycji trzeciego co do wielkości dostawcy w przestrzeni minikomputerów, za DEC i Data General (DG).

DEC, lider w dziedzinie minikomputerów od połowy lat 60., początkowo ignorował BASIC. Wynikało to z ich pracy z RAND Corporation , która zakupiła PDP-6 do obsługi języka JOSS , który koncepcyjnie był bardzo podobny do BASIC. To doprowadziło DEC do wprowadzenia mniejszej, oczyszczonej wersji JOSSa znanej jako FOCAL , którą mocno promowali pod koniec lat sześćdziesiątych. Jednakże, ponieważ systemy współdzielenia czasu szeroko oferują BASIC i wszyscy ich konkurenci w przestrzeni minikomputerów robią to samo, klienci DEC domagali się BASIC. Po tym, jak kierownictwo wielokrotnie ignorowało ich prośby, David H. Ahl wziął na siebie zakup BASIC dla PDP-8 , co było dużym sukcesem na rynku edukacyjnym. Na początku lat 70. FOCAL i JOSS zostały zapomniane, a BASIC stał się niemal uniwersalny na rynku minikomputerów. DEC zamierzał wprowadzić swoją zaktualizowaną wersję, BASIC-PLUS , do użytku w systemie operacyjnym RSTS/E z podziałem czasu.

W tym okresie w BASICu napisano wiele prostych gier tekstowych , w szczególności Star Trek Mike'a Mayfielda . David Ahl zebrał je, niektóre przeniesione z FOCAL, i opublikował w opracowanym przez siebie biuletynie edukacyjnym. Później zebrał wiele z nich w formie książki, 101 BASIC Computer Games , opublikowanej w 1973 roku. W tym samym okresie Ahl był zaangażowany w stworzenie małego komputera do użytku edukacyjnego, wczesnego komputera osobistego . Kiedy kierownictwo odmówiło poparcia tej koncepcji, Ahl opuścił DEC w 1974 roku, aby założyć przełomowy magazyn komputerowy Creative Computing . Książka cieszyła się popularnością i była wielokrotnie publikowana.

Gwałtowny rozwój: era komputerów domowych

MSX BASIC wersja 3.0
„Train Basic codziennie!” – czyta plakat (dolny środek) w rosyjskiej szkole (ok. 1985-1986)

Wprowadzenie pierwszych mikrokomputerów w połowie lat 70. było początkiem gwałtownego rozwoju BASIC. Miał tę zaletę, że był dość dobrze znany młodym projektantom i hobbystom komputerowym, którzy interesowali się mikrokomputerami, z których wielu widziało BASIC na komputerach mini lub mainframe. Pomimo słynnego wyroku Dijkstry z 1975 r.: „Praktycznie niemożliwe jest nauczenie dobrego programowania uczniów, którzy mieli wcześniej kontakt z BASIC: jako potencjalni programiści są psychicznie okaleczani bez nadziei na regenerację”, BASIC był jednym z niewielu języków, które był zarówno wystarczająco wysoki, aby mógł być używany przez osoby bez przeszkolenia, jak i wystarczająco mały, aby zmieścić się w ówczesnych mikrokomputerach, co czyni go de facto standardowym językiem programowania na wczesnych mikrokomputerach.

Pierwszą mikrokomputerową wersję BASICa napisali wspólnie Bill Gates , Paul Allen i Monte Davidoff dla ich nowo utworzonej firmy Micro-Soft. Został on wydany przez MITS w formacie taśmy dziurkowanej dla Altaira 8800 wkrótce po samej maszynie, natychmiast ugruntowując BASIC jako podstawowy język wczesnych mikrokomputerów. Członkowie Homebrew Computer Club zaczęli rozpowszechniać kopie programu, co spowodowało, że Gates napisał swój list otwarty do hobbystów , narzekając na ten wczesny przykład piractwa komputerowego .

Częściowo w odpowiedzi na list Gatesa, a częściowo w celu stworzenia jeszcze mniejszego BASIC-a, który działałby użytecznie na maszynach 4 KB, Bob Albrecht namawiał Dennisa Allisona do napisania własnej wersji języka. Jak zaprojektować i zaimplementować uproszczoną wersję tłumacza dla języka BASIC omówiono w artykułach Allison w pierwszych trzech kwartalnych wydaniach biuletynu People's Computer Company opublikowanego w 1975 roku oraz implementacjach z kodem źródłowym opublikowanych w Journal of Dr. Dobb's Tiny BASIC Calisthenics & Orthodontia: Lekka jazda bez Overbyte . Doprowadziło to do powstania szerokiej gamy Tiny BASIC z dodanymi funkcjami lub innymi ulepszeniami, przy czym szczególnie dobrze znane stały się wersje Toma Pittmana i Li-Chen Wanga .

Micro-Soft, w tym czasie Microsoft , przeniósł swój interpreter dla MOS 6502 , który szybko stał się jednym z najpopularniejszych mikroprocesorów ery 8-bitów. Kiedy zaczęły pojawiać się nowe mikrokomputery, zwłaszcza „trójcy z 1977 roku” TRS-80 , Commodore PET i Apple II , albo zawierały one wersję kodu MS, albo szybko wprowadzały z nią nowe modele. Do 1978 roku MS BASIC był de facto standardem i praktycznie każdy komputer domowy lat 80. zawierał go w pamięci ROM . Po uruchomieniu prezentowany był interpreter BASIC w trybie bezpośrednim .

Commodore Business Machines zawierał Commodore BASIC , oparty na Microsoft BASIC. Apple II i TRS-80 miały dwie wersje BASIC, mniejszą wersję wprowadzającą wprowadzoną wraz z pierwszymi wydaniami maszyn oraz wersję opartą na MS, wprowadzoną wraz ze wzrostem zainteresowania platformami. Gdy nowe firmy weszły na rynek, dodano dodatkowe wersje, które subtelnie zmieniły rodzinę BASIC. Rodzina Atari 8-bitowych miała swój własny Atari BASIC, który został zmodyfikowany tak, aby pasował do kasety ROM o wielkości 8 KB . Sinclair BASIC został wprowadzony w 1980 roku wraz z Sinclair ZX80 , a później został rozszerzony o Sinclair ZX81 i Sinclair ZX Spectrum . BBC opublikowała BBC BASIC , opracowany przez Acorn Computers Ltd, zawierające wiele dodatkowych programowania strukturalnego słów kluczowych i rozszerzone funkcje zmiennoprzecinkowych operacji.

Wraz ze wzrostem popularności języka BASIC w tym okresie czasopisma komputerowe publikowały w języku BASIC pełny kod źródłowy gier wideo, narzędzi i innych programów. Biorąc pod uwagę prostotę BASIC-a, łatwo było wpisać kod z magazynu i uruchomić program. Ukazywały się różne magazyny zawierające programy dla konkretnych komputerów, chociaż niektóre programy BASIC były uważane za uniwersalne i mogły być używane w maszynach z dowolnym wariantem BASIC (czasem z niewielkimi adaptacjami). Dostępnych było również wiele książek z programami do pisania, w szczególności Ahl opublikowała wersje oryginalnych 101 gier BASIC przekonwertowanych na dialekt Microsoftu i opublikowała je z Creative Computing jako BASIC Computer Games . Ta książka i jej kontynuacje zawierały setki gotowych programów, które można było łatwo przekonwertować na praktycznie każdą platformę działającą w języku BASIC. Książka trafiła do sklepów w 1978 r., kiedy zaczynał się rynek komputerów domowych , i stała się pierwszą książką komputerową, która sprzedała się w milionach egzemplarzy. Późniejsze pakiety, takie jak Learn to Program BASIC , również będą miały na celu wprowadzenie gier. Na komputerach CP/M zorientowanych na biznes, które wkrótce stały się powszechne w środowiskach małych firm, Microsoft BASIC ( MBASIC ) był jedną z wiodących aplikacji.

W 1978 roku David Lien opublikował pierwszą edycję The BASIC Handbook: An Encyclopedia of the BASIC Computer Language , dokumentując słowa kluczowe na ponad 78 różnych komputerach. Do 1981 roku drugie wydanie udokumentowało słowa kluczowe z ponad 250 różnych komputerów, ukazując gwałtowny rozwój ery mikrokomputerów.

IBM PC i kompatybilne

Kiedy IBM projektował IBM PC , kierował się paradygmatem istniejących komputerów domowych, chcąc mieć wbudowany BASIC. Pozyskali to od Microsoft – IBM Cassette BASIC – ale Microsoft wyprodukował również kilka innych wersji BASIC dla MS-DOS / PC DOS, w tym IBM Disk BASIC (BASIC D), IBM BASICA (BASIC A), GW-BASIC (kompatybilny z BASICA wersja, która nie wymagała pamięci ROM IBM) i QBasic , wszystkie zazwyczaj dołączone do maszyny. Ponadto wyprodukowali kompilator Microsoft BASIC Compiler przeznaczony dla profesjonalnych programistów. Turbo Pascal - wydawca Borland wydał Turbo Basic 1.0 w 1985 roku (następne wersje są nadal sprzedawane przez oryginalnego autora pod nazwą PowerBASIC ). Microsoft napisał AmigaBASIC z oknami, który był dostarczany z wersją 1.1 komputerów Amiga z wywłaszczaniem , wielozadaniowym interfejsem graficznym (koniec 1985/początek 1986), chociaż produkt nie był noszący żadnych znaków Microsoftu.

Te późniejsze odmiany wprowadziły wiele rozszerzeń, takich jak ulepszona obsługa ciągów znaków i obsługa grafiki, dostęp do systemu plików i dodatkowe typy danych . Ważniejsze były udogodnienia dla programowania strukturalnego , w tym dodatkowe struktury kontrolne i odpowiednie podprogramy wspierające zmienne lokalne . Jednak w drugiej połowie lat 80. użytkownicy coraz częściej korzystali z gotowych aplikacji napisanych przez innych, zamiast samodzielnie uczyć się programowania; podczas gdy profesjonalni programiści mieli teraz szeroką gamę bardziej zaawansowanych języków dostępnych na małych komputerach. C, a później C++ stały się preferowanymi językami do profesjonalnego tworzenia aplikacji „shrink wrap” .

Visual Basic

W 1991 roku Microsoft wprowadził Visual Basic , ewolucyjny rozwój QuickBASICa . Obejmowały konstrukcje z tego języka, takie jak instrukcje sterujące o strukturze blokowej, sparametryzowane podprogramy i opcjonalne statyczne typowanie, a także konstrukcje zorientowane obiektowo z innych języków, takie jak "With" i "For Each". Język zachował pewną zgodność ze swoimi poprzednikami, takimi jak słowo kluczowe Dim dla deklaracji, instrukcje "Gosub"/Return i opcjonalne numery wierszy, które można wykorzystać do zlokalizowania błędów. Ważnym motorem rozwoju Visual Basic był nowy język makr dla Microsoft Excel , program do arkuszy kalkulacyjnych . Ku zaskoczeniu wielu pracowników firmy Microsoft, którzy nadal początkowo reklamowali go jako język dla hobbystów, język ten stał się szeroko stosowany w małych, niestandardowych aplikacjach biznesowych wkrótce po wydaniu VB w wersji 3.0, która jest powszechnie uważana za pierwszą względnie stabilną wersję.

Podczas gdy wielu zaawansowanych programistów wciąż szydziło z jego używania, VB skutecznie zaspokajał potrzeby małych firm, ponieważ do tego czasu komputery z systemem Windows 3.1 stały się na tyle szybkie, że wiele procesów związanych z biznesem można było wykonać „w mgnieniu oka”, nawet przy użyciu „powolny” język, o ile nie były zaangażowane duże ilości danych. Wielu właścicieli małych firm odkryło, że mogą stworzyć własne małe, ale przydatne aplikacje w ciągu kilku wieczorów, aby zaspokoić własne, specjalistyczne potrzeby. W końcu, podczas długiego życia VB3, znajomość Visual Basic stała się umiejętnością zawodową, którą warto sprzedać. Microsoft wyprodukował również VBScript w 1996 i Visual Basic .NET w 2001. Ten ostatni ma zasadniczo taką samą moc jak C# i Java, ale ze składnią, która odzwierciedla oryginalny język Basic. IDE , z jego zdarzeniami GUI builder , był także wpływowy na innych narzędzi, przede wszystkim Borland Software „s Delphi dla Object Pascal oraz własnych potomków, takich jak Łazarza .

Podstawowe wsparcie dla ostatecznej wersji 6.0 oryginalnego Visual Basic zakończyło się 31 marca 2005 r., a następnie rozszerzono wsparcie w marcu 2008 r. 11 marca 2020 r. Microsoft ogłosił, że ewolucja języka VB.NET również się zakończyła, chociaż nadal obsługiwane. Tymczasem istnieją konkurenci, tacy jak Xojo i Gambas .

Trzy nowoczesne warianty Basic: Mono Basic, OpenOffice.org Basic i Gambas

Wersje i dialekty po 1990 r.

Wiele innych dialektów języka BASIC pojawiło się od 1990 roku, w tym QB64 i FreeBASIC o otwartym kodzie źródłowym , inspirowane QBasic, oraz RapidQ , Basic For Qt i Gambas w stylu Visual Basic . Współczesne komercyjne wcielenia to PureBasic , PowerBASIC , Xojo , Monkey X i True BASIC (bezpośredni następca Dartmouth BASIC z firmy kontrolowanej przez Kurtza).

Obecnie istnieje również kilka prostych, internetowych interpreterów języka BASIC, w tym Small Basic firmy Microsoft . Wiele wersji BASIC jest teraz dostępnych na smartfony i tablety za pośrednictwem Apple App Store lub Google Play Store dla Androida. Na konsolach do gier aplikacja na Nintendo 3DS i Nintendo DSi o nazwie Petit Computer pozwala na programowanie w nieco zmodyfikowanej wersji BASIC z obsługą przycisków DS. Wydano również wersję na Nintendo Switch .

Kalkulatory

Warianty BASIC są dostępne w kalkulatorach graficznych i innych programowalnych kalkulatorach firmy Texas Instruments , HP, Casio i innych.

Wiersz poleceń systemu Windows

QBasic , wersja Microsoft QuickBASIC bez konsolidatora do tworzenia plików EXE, jest obecna w strumieniach systemów operacyjnych Windows NT i DOS- Windows 95 i można ją uzyskać dla nowszych wydań, takich jak Windows 7, które ich nie mają. Przed DOS 5 interpreterem Basica był GW-Basic . QuickBasic jest częścią serii trzech języków wydanych przez Microsoft dla zaawansowanych użytkowników domowych i biurowych oraz rozwoju zawodowego na małą skalę; QuickC i QuickPascal to dwa pozostałe. W przypadku Windows 95 i 98, które nie mają domyślnie zainstalowanego QBasic, można je skopiować z dysku instalacyjnego, który będzie zawierał zestaw katalogów dla starego i opcjonalnego oprogramowania; inne brakujące polecenia, takie jak Exe2Bin i inne, znajdują się w tych samych katalogach.

Inne

BASIC pojawił się na niektórych systemach gier wideo, takich jak Nintendo Famicom .

Różne pakiety biurowe Microsoft, Lotus i Corel oraz powiązane produkty można programować za pomocą Visual Basic w takiej czy innej formie, w tym LotusScript , który jest bardzo podobny do VBA 6. Emulator terminala Host Explorer używa WWB jako języka makr; lub ostatnio program i pakiet, w którym jest zawarty, można zaprogramować we własnym wariancie Basic znanym jako Hummingbird Basic. Wariant VBScript służy do programowania treści internetowych, Outlook 97, Internet Explorer i Windows Script Host. WSH ma również zainstalowany silnik Visual Basic for Applications (VBA) jako trzeci z domyślnych silników wraz z VBScript, JScript i licznymi zastrzeżonymi lub open source silnikami, które można zainstalować, takimi jak PerlScript , kilka silników opartych na Rexx, Python , Ruby, Tcl, Delphi, XLNT, PHP i inne; co oznacza, że ​​dwie wersje Basic mogą być używane wraz z innymi wymienionymi językami, a także LotusScript, w pliku WSF, poprzez model obiektowy komponentu i inne konstrukcje WSH i VBA. VBScript jest jednym z języków, do których można uzyskać dostęp przez ulepszone powłoki 4Dos, 4NT i Take Command. SaxBasic i WWB są również bardzo podobne do linii Visual Basic implementacji Basic. Język makr sprzed pakietu Office 97 dla programu Microsoft Word jest znany jako WordBASIC . Excel 4 i 5 używają samego Visual Basic jako języka makr. Chipmunk Basic , oldschoolowy interpreter podobny do BASICów z lat 70., jest dostępny dla systemów Linux , Microsoft Windows i macOS .

Spuścizna

Wszechobecność interpreterów języka BASIC na komputerach osobistych była taka, że ​​podręczniki zawierały kiedyś proste ćwiczenia „Wypróbuj w języku BASIC”, które zachęcały uczniów do eksperymentowania z pojęciami matematycznymi i obliczeniowymi na komputerach w klasie lub w domu. Popularne ówczesne czasopisma komputerowe zazwyczaj zawierały programy do pisania .

Futurysta i pisarz science-fiction David Brin opłakiwał utratę wszechobecnego języka BASIC w artykule z 2006 roku w Salonie, podobnie jak inni, którzy jako pierwsi używali komputerów w tamtych czasach. Z kolei artykuł skłonił Microsoft do opracowania i wydania Small Basic ; zainspirował również podobne projekty, takie jak Basic-256 . Dartmouth zorganizowało obchody 50-lecia BASIC w dniu 1 maja 2014 r., podobnie jak inne organizacje; co najmniej jedna organizacja programistów VBA zorganizowała obchody 35-lecia w 1999 roku.

Dartmouth College uczcił 50. rocznicę języka BASIC dniem wydarzeń 30 kwietnia 2014 r. Z okazji wydarzenia wyprodukowano krótki film dokumentalny.

Składnia

Typowe słowa kluczowe BASIC

Manipulacja danymi

LET
przypisuje wartość (która może być wynikiem wyrażenia ) do zmiennej. W większości dialektów języka BASIC LETjest opcjonalna, a linia bez żadnego innego możliwego do zidentyfikowania słowa kluczowego zakłada, że ​​słowo kluczowe to LET.
DATA
przechowuje listę wartości, które są przypisywane sekwencyjnie za pomocą polecenia CZYTAJ.
READ
odczytuje wartość z DATAinstrukcji i przypisuje ją do zmiennej. Wewnętrzny wskaźnik śledzi ostatni DATAodczytany element i przesuwa go o jedną pozycję do przodu z każdym READ.
RESTORE
resetuje wewnętrzny wskaźnik do pierwszej DATAinstrukcji, umożliwiając programowi rozpoczęcie READod pierwszej wartości.

Kontrola przepływu programu

IF ... THEN ... {ELSE}
używane do dokonywania porównań lub podejmowania decyzji. ELSEnie był powszechnie obsługiwany, zwłaszcza we wcześniejszych wersjach.
FOR ... TO ... {STEP} ... NEXT
powtórz fragment kodu określoną liczbę razy. W pętli dostępna jest zmienna działająca jako licznik .
WHILE ... WEND oraz REPEAT ... UNTIL
powtórz sekcję kodu, gdy określony warunek jest prawdziwy. Warunek może być oceniany przed każdą iteracją pętli lub po. Oba te polecenia znajdują się głównie w późniejszych dialektach.
DO ... LOOP {WHILE} lub {UNTIL}
powtarzaj sekcję kodu w nieskończoność lub dopóki/ dopóki określony warunek nie będzie spełniony. Warunek może być oceniany przed każdą iteracją pętli lub po. Podobnie jak WHILE, te słowa kluczowe są najczęściej spotykane w późniejszych dialektach.
GOTO
przeskakuje do numerowanej lub oznaczonej linii w programie.
GOSUB
skacze do numerowanej lub oznaczonej linii, wykonuje znaleziony tam kod, aż dotrze do RETURNpolecenia, na którym przeskakuje z powrotem do instrukcji następującej po GOSUB, albo po dwukropku, albo w następnym wierszu. Służy do realizacji podprogramów .
ON ... GOTO/GOSUB
wybiera, gdzie skoczyć na podstawie określonych warunków. Zobacz instrukcję Switch dla innych formularzy.
DEF FN
para słów kluczowych wprowadzonych na początku lat sześćdziesiątych w celu zdefiniowania funkcji. Oryginalne funkcje BASIC były wzorowane na jednowierszowych funkcjach FORTRAN. Funkcje BASIC były jednym wyrażeniem ze zmiennymi argumentami, a nie podprogramami , ze składnią wzorowaną na modelu DEF FND(x) = x*xna początku programu. Nazwy funkcji były pierwotnie ograniczone do FN, plus jedna litera, tj. , FNA, FNB ...

Wejście i wyjście

LIST
wyświetla pełny kod źródłowy bieżącego programu.
PRINT
wyświetla komunikat na ekranie lub innym urządzeniu wyjściowym.
INPUT
prosi użytkownika o wprowadzenie wartości zmiennej. Oświadczenie może zawierać komunikat monitujący.
TAB
służy PRINTdo ustawiania pozycji, w której następny znak będzie pokazywany na ekranie lub drukowany na papierze. ATjest formą alternatywną.
SPC
wypisuje liczbę znaków spacji. Podobny w koncepcji do, TABale przesuwa się o kilka dodatkowych spacji z bieżącej kolumny, a nie do określonej kolumny.

Funkcje matematyczne

ABS
Całkowita wartość
ATN
Arcus tangens (wynik w radianach )
COS
Cosinus (argument w radianach )
EXP
Funkcja wykładnicza
INT
Część całkowita (zazwyczaj funkcja podłogi )
LOG
Naturalny logarytm
RND
Generowanie liczb losowych
SIN
Sinus (argument w radianach )
SQR
Pierwiastek kwadratowy
TAN
Tangens (argument w radianach )

Różnorodny

REM
przechowuje komentarz programisty lub REMark; często używany do nadania tytułu programowi i pomocy w identyfikacji celu danej sekcji kodu.
USR
przekazuje sterowanie programem do podprogramu języka maszynowego , zwykle wprowadzanego jako ciąg alfanumeryczny lub na liście instrukcji DATA.
CALL
alternatywna forma USRwystępująca w niektórych dialektach. Nie wymaga sztucznego parametru do uzupełnienia składni podobnej do funkcji USRi ma jasno zdefiniowaną metodę wywoływania różnych procedur w pamięci.
TRON
włącza wyświetlanie każdego numeru linii podczas jej uruchamiania ("TRAce ON"). Było to przydatne do debugowania lub korygowania problemów w programie.
TROFF
wyłącza wyświetlanie numerów linii.
ASM
niektóre kompilatory, takie jak Freebasic, Purebasic i Powerbasic, również obsługują wbudowany język asemblerowy , umożliwiając programiście mieszanie kodu wysokopoziomowego i niskopoziomowego, zwykle poprzedzonego przedrostkiem "ASM" lub "!" sprawozdania.

Typy danych i zmienne

Minimalne wersje BASICa miały tylko zmienne całkowite i jedno- lub dwuliterowe nazwy zmiennych, co minimalizowało wymagania ograniczonej i drogiej pamięci (RAM). Bardziej zaawansowane wersje miały arytmetykę zmiennoprzecinkową, a zmienne mogły być opatrzone nazwami o długości sześciu lub więcej znaków. We wczesnych wdrożeniach pojawiły się pewne problemy i ograniczenia; na przykład Applesoft BASIC pozwalał, aby nazwy zmiennych miały długość kilku znaków, ale tylko pierwsze dwie były znaczące, przez co możliwe było nieumyślne napisanie programu ze zmiennymi „LOSS” i „LOAN”, które byłyby traktowane jako takie same; przypisanie wartości do „LOAN” po cichu zastąpiłoby wartość zamierzoną jako „STRATA”. Słowa kluczowe nie mogły być używane w zmiennych w wielu wczesnych BASIC; „SCORE” będzie interpretowane jako „SC” LUB „E”, gdzie OR jest słowem kluczowym. Zmienne łańcuchowe są zwykle rozróżniane w wielu dialektach mikrokomputerowych poprzez dodanie do ich nazwy przyrostka $ jako sigila , a wartości są często identyfikowane jako łańcuchy poprzez oddzielenie ich przez „podwójne cudzysłowy”. Tablice w języku BASIC mogą zawierać zmienne całkowite, zmiennoprzecinkowe lub łańcuchowe.

Niektóre dialekty języka BASIC wspierały macierze i operacje na macierzach , przydatne do rozwiązywania zbiorów równoczesnych liniowych równań algebraicznych. Te dialekty bezpośrednio wspierałyby operacje na macierzach, takie jak przypisywanie, dodawanie, mnożenie (zgodnych typów macierzy) i ocena wyznacznika. Wiele mikrokomputerów BASIC nie obsługuje tego typu danych; operacje na macierzach były nadal możliwe, ale musiały być programowane jawnie na elementach tablicy.

Przykłady

Nieustrukturyzowany PODSTAWOWY

Nowi programiści w języku BASIC na komputerach domowych mogą zacząć od prostego programu, na przykład używając instrukcji PRINT języka, aby wyświetlić komunikat na ekranie; dobrze znane i często powielane przykładem jest Kernighan i Ritchie „s «Hello, World!» program :

10 PRINT "Hello, World!"
20 END

Nieskończonej pętli mogą być wykorzystane do wypełnienia ekranu z komunikatem:

10 PRINT "Hello, World!"
20 GOTO 10

Zauważ, że ENDwyrażenie jest opcjonalne i nie ma żadnego działania w większości dialektów języka BASIC. Nie zawsze był uwzględniany, jak w tym przykładzie. Ten sam program można zmodyfikować tak, aby wyświetlał ustaloną liczbę komunikatów za pomocą wspólnej FOR...NEXTinstrukcji:

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

Większość wersji BASIC pierwszej generacji, takich jak MSX BASIC i GW-BASIC , obsługuje proste typy danych, cykle pętli i tablice. Poniższy przykład jest napisany dla GW-BASICa, ale będzie działał w większości wersji BASICa z minimalnymi zmianami:

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

Wynikowe okno dialogowe może przypominać:

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

Oryginalny Dartmouth Basic był niezwykły, ponieważ zawierał słowo kluczowe macierzy, MAT. Chociaż nie jest zaimplementowany przez większość późniejszych pochodnych mikroprocesorów, jest używany w tym przykładzie z podręcznika z 1968 r., który uśrednia wprowadzane liczby:

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

Zorganizowany PODSTAWOWY

BASIC drugiej generacji (na przykład VAX Basic , SuperBASIC , True BASIC , QuickBASIC , BBC BASIC , Pick BASIC , PowerBASIC , Liberty BASIC i (prawdopodobnie) COMAL ) wprowadziły do ​​języka szereg funkcji, związanych przede wszystkim programowanie zorientowane. Zwykle numeracja wierszy jest pomijana w języku i zastępowana etykietami (dla GOTO ) i procedurami zachęcającymi do łatwiejszego i bardziej elastycznego projektowania. Dodatkowo wprowadzono słowa kluczowe i struktury wspierające powtarzanie, selekcję i procedury ze zmiennymi lokalnymi.

Poniższy przykład znajduje się w 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

BASIC zorientowany obiektowo

Dialekty BASIC trzeciej generacji, takie jak Visual Basic , Xojo , Gambas , StarOffice Basic , BlitzMax i PureBasic wprowadziły funkcje wspierające paradygmat programowania obiektowego i sterowanego zdarzeniami . Większość wbudowanych procedur i funkcji jest teraz reprezentowana jako metody obiektów standardowych, a nie operatory . Ponadto system operacyjny stał się coraz bardziej dostępny dla języka BASIC.

Poniższy przykład znajduje się w 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

Normy

  • Norma ANSI/ISO/IEC dla Minimal BASIC:
    • ANSI X3.60-1978 "Dla minimal BASIC"
    • ISO / IEC 6373: 1984 „Przetwarzanie danych-języki programowania-Minimal BASIC”
  • ECMA -55 Minimal BASIC (wycofany, podobny do ANSI X3.60-1978)
  • Standard ANSI/ISO/IEC dla pełnej wersji BASIC:
    • ANSI X3.113-1987 "Języki programowania w pełni BASIC"
    • INCITS/ISO/IEC 10279-1991 (R2005) „Informatyka – Języki programowania – Pełna podstawa”
  • Moduły definiujące dodatek ANSI/ISO/IEC:
    • Interpretacje ANSI X3.113-1992 „BASIC Biuletyn Informacji Technicznej nr 1 Interpretacje ANSI 03.113-1987”
    • ISO / IEC 10279: 1991 / Amd 1: 1994 „Moduły i ulepszanie wprowadzania pojedynczych znaków”
  • ECMA -116 BASIC (wycofany, podobny do ANSI X3.113-1987)

Kompilatory i tłumacze

Kompilator Autor Okna Uniksopodobny Inne systemy operacyjne Rodzaj licencji
ACE PODSTAWOWE David Benn Nie Nie Tak ( AmigaOS ) GPLv2+
AppGameKit Twórcy gry tak tak Nie Prawnie zastrzeżony
B4X Erel Uziel tak Tak ( Android , iOS ) Tak (JVM) Licencja Apache 2.0
BlitzMax Badania Blitza tak Tak ( Linux , OS X ) Nie Licencja zlib
DarkBASIC Twórcy gry tak Nie Nie Licencja MIT
FreeBASIC Zespół programistów FreeBASIC tak tak DOS GPLv2+
Gambas Benoît Minisini Nie tak Nie GPLv2+
PODSTAWOWE GFA Frank Ostrowski tak Nie Amiga , Atari ST , DOS Prawnie zastrzeżony
Rtęć RemObjects tak Tak ( Linux , OS X , Android , iOS ) Tak (zespół internetowy ) Prawnie zastrzeżony
PowerBASIC (dawniej Turbo Basic) PowerBASIC, Inc. tak Nie DOS Prawnie zastrzeżony
PureBasic Oprogramowanie Fantazja tak tak tak Prawnie zastrzeżony
QB64 Galeon tak tak tak LGPLv2.1
QuickBASIC Microsoft Nie Nie DOS Prawnie zastrzeżony
Prawdziwie PODSTAWOWE Prawdziwie PODSTAWOWE tak Nie Nie Prawnie zastrzeżony
VSI BASIC dla OpenVMS Prawdziwie PODSTAWOWE Nie Nie OpenVMS Prawnie zastrzeżony
Xojo (dawniej REALbasic) Xojo Inc. (dawniej Real Software) tak tak tak Prawnie zastrzeżony
Interpretator Autor Okna Uniksopodobny Inne systemy operacyjne Rodzaj licencji
Wolność PODSTAWOWA Systemy Shoptalk tak Nie Nie Prawnie zastrzeżony
GW-PODSTAWOWE Microsoft Nie Nie MS-DOS Prawnie zastrzeżony
QBasic Microsoft tak Nie Nie Prawnie zastrzeżony
Podstawowa wiewiórka Ronald H. Nicholson, Jr. tak tak tak Oprogramowanie bezpłatne
TI podstawowe Instrumenty Texas Nie Nie TI-99/4A Prawnie zastrzeżony
TI rozszerzony podstawowy Instrumenty Texas Nie Nie TI-99/4A Prawnie zastrzeżony
Góry Skaliste PODSTAWOWE [Epoka trans] tak Nie HP 9000 Prawnie zastrzeżony
Bas Michael Haardt Nie tak Nie Licencja MIT
Yabasic Marc-Oliver Ihm tak tak Nie Licencja MIT
Małepodstawowe Małepodstawowe tak tak Android , OS X GPLv3+
PC-BASIC Rob Hagemans tak tak OS X GPLv3+

Zobacz też

Uwagi

Bibliografia

Ogólne odniesienia

Zewnętrzne linki