Movatterモバイル変換


[0]ホーム

URL:


Przejdź do zawartości
Wikipediawolna encyklopedia
Szukaj

BASIC

Z Wikipedii, wolnej encyklopedii

BASIC (Beginner’s All-purpose Symbolic Instruction Code[1]) –język programowania wysokiego poziomu, opracowany w1964 przezJohna George’a Kemeny’ego iThomasa E. Kurtza wDartmouth College na bazieFortrana iAlgola-60. Jego pierwsza wersja znana była później pod nazwąDartmouth BASIC, pierwszy program w BASIC-u został uruchomiony1 maja1964 na komputerzeGeneral Electric GE-225 typumainframe[2].

Historia

[edytuj |edytuj kod]

Założenia projektantów BASIC-a uwzględniały łatwość użytkowania, wszechstronność zastosowań, interaktywność i dobrą komunikację z użytkownikiem poprzez jasne komunikaty błędów.

Ucz się BASIC-a codziennie – plakat w radzieckiej szkole, 1985–1986

BASIC wybił się na czoło języków do zastosowań amatorskich i półprofesjonalnych po wprowadzeniu na rynekmikrokomputeraAltair 8800. Twórcami dialektu BASIC-a dla tej maszyny byliBill Gates iPaul Allen, był to pierwszy produkt firmyMicrosoft. BASIC szybko zaimplementowany został przy budowie serii komputerówApple, a później (jakoGW BASIC) wIBMPC (początkowo wROM, a po pojawieniu sięDOS-a – nadyskietce).

Następcą GW BASIC-a dlakomputerów PC zostałQB, później rozprowadzany komercyjnie jakoQuickBASIC, który w końcu wyewoluował wVisual Basic for Windows. Istnieją też alternatywneinterpretery ikompilatory tego języka dla platformy win32 (Power BASIC,DarkBASIC itp.)

Do najbardziej znanych dialektów można zaliczyć:Altair BASIC,AMOS (Amiga),Applesoft BASIC,Atari BASIC,BASICA,Blitz Basic,Commodore BASIC (CBM BASIC),EBASIC (dlaElwro 500),GW BASIC,Locomotive BASIC (dlaAmstrad CPC),QBasic,QuickBASIC,Sinclair BASIC,TeleBASIC używany w grzeTelehack(inne języki)[3],Turbo Basic,Visual Basic,Visual Basic .NET,sBasic (dla komunikatorówNokia),Jabaco (Java Bytecode BASIC;Open Source),PureBasic,KBasic,DarkBasic,FreeBASIC,PowerBASIC,G-BASIC (dla konsoliFamicom),GFA Basic (rodzinaAtari ST, później Amiga i PC).

W Polsce najbardziej znane są dialekty BASIC-a napisane dla popularnych komputerówośmiobitowychCommodore’a,Amstrada CPC,Atari iSinclairaZX Spectrum.

Istnieją też odmiany BASICa, które powstały w Polsce. Przykładem jestWarsaw BASIC, napisany przezBogusława Radziszewskiego i Krzysztofa Gajewskiego zInstytutu Podstawowych Problemów Techniki PAN, który powstał dla 8-bitowych komputerów Commodore[4].

Współcześnie (2018) BASIC istnieje w wersjach nasmartfony (np.Linuxa Androida) – przykładowo RFO Basic pozwala na tworzenie kodu bezpośrednio na smartfonie, w trybie interpretera lub kompilowanym albo np. na stacjonarnych komputerach uruchamiających inne dystrybucje Linuxa. Poza poleceniami znanymi z innych wersji BASICA ma wiele dostosowanych do smartfonów - jak obsługa ekranu dotykowego czy połączeń sieciowych, aparatów fotograficznych etc.[5]

Semantyka

[edytuj |edytuj kod]

Ponieważ istnieje ponad 200 różnych dialektów języka BASIC, poniższa charakterystyka dotyczy najpopularniejszych rozwiązań.

Programy w BASIC-u składają się z kolejno wykonywanych instrukcji, które zebrane są w wiersze. Wszystkie dialekty oprócz najprymitywniejszych dopuszczają kilka instrukcji w jednym wierszu, rozdzielonych zazwyczaj znakiem dwukropka. Starsze wersje wymagały numerowania wierszy (maksymalny numer wynosił zwykle 9999, 16384, 32767, czasami 65535, jak to miało miejsce wMeritum).

Zmienne mogą mieć dowolnie długie nazwy zaczynające się od litery. Nazwy zmiennych łańcuchowych zakończone są znakiem dolara, np.x$,zmienna$. Tablice mogą mieć dwa lub więcej wymiarów (w niektórych dialektach tablice znakowe służą do wskaźnikowego dostępu do łańcuchów, jak wC).

BASIC w sprowadzonej do wspólnego mianownika wersji posiada bardzo proste mechanizmy sterowania przebiegiem programu –instrukcję skoku bezwarunkowegoGOTO,wywołaniapodprogramu GOSUB kończonegoinstrukcją powrotuRETURN orazwarunkowąIF…THEN (w niektórych dialektach równieżELSE).pętlaiteracyjna zapisywana jest za pomocą konstrukcjiFOR…NEXT.

Niektóre dialekty posiadają także instrukcjepętli warunkowejDO LOOP…UNTIL,WHILE…WEND,skoku warunkowegoON GOTO,ON GOSUB, orazwyboruCASE…SELECT.

Inne typowe instrukcje:

RUNinstrukcja wywołania (uruchomienie programu),
PRINT tekstinstrukcja wyjścia (wyprowadzenie tekstu lub wartości zmiennej na urządzenie wyjściowe, najczęściej ekran),
INPUT zmiennainstrukcja wejścia (wczytanie wartości z klawiatury do zmiennej),
DIM tablica – instrukcja deklaracji tablicy
LET zmienna = wartośćinstrukcja przypisania (niekiedy dozwolone jest opuszczenie słowa kluczowegoLET)
STOPinstrukcja zatrzymania
CONTINUEinstrukcja kontynuacji (wznowienie zatrzymanego programu)

W niektórych wersjach dostępne były skróty najczęściej wykorzystywanych instrukcji, np.PRINT,GOTO,DRAWTO,RUN odpowiadały odpowiednio:PR. lub?,G.,DR.,RU..

Ponadto w większości dialektów dostępne są funkcje matematyczne:części całkowitejINT,wartości bezwzględnejABS,signumSGN,trygonometryczneSIN,COS,TAN, niekiedy funkcje logarytmów:dziesiętnegoLOG inaturalnegoLN oraz operacji na łańcuchach, zwykle zakończonych znakiem$, np.LEFT$,UPPER$.

Przykład

[edytuj |edytuj kod]

Poniższy program został napisany w duchuparadygmatu imperatywnego, promowanego przez wczesne implementacje języków z rodziny BASIC.

10PRINT"Witaj"20INPUT"Liczba gwiazdek do wyświetlenia: ";ile30PRINT"*"40LETile=ile-150IFile>0THENGOTO30

Wiersze programu są numerowane, apętle konstruuje się za pomocąinstrukcji skokuGOTO. Duża liczba skoków powodowała, że kod wczesnego BASIC-a był często trudny do odczytania i zrozumienia, powstał nawet terminspaghetti code określający taki sposób tworzenia programów. Wiele dialektów zawierało jednak instrukcje pętliFOR…NEXT, którą zastosowano w poniższym przykładzie:

10PRINT"Witaj"20INPUT"Liczba gwiazdek do wyświetlenia: ";ile30FORlicznik=1TOile40PRINT"*"50NEXTlicznik

Interpretery

[edytuj |edytuj kod]
 Osobny artykuł:interpreter.

Podejmowano różne próby ułatwienia pisania programów przez osoby nie robiące tego zawodowo (czyli większość posiadaczykomputerów domowych). Najbardziej oryginalne rozwiązanie było zastosowane w komputerachZX Spectrum, gdzie do każdego klawisza przypisana byłosłowo kluczowe bądź nazwa funkcji wbudowanej językaSinclair BASIC (tak, aby nie było potrzeby wpisywania ich znak po znaku). Miało to znacznie ułatwić i przyspieszyć pisanie programów. Rozwiązanie to w praktyce oznaczało niemałe trudności (na początku) w pisaniu programów, gdyż język dostępny dla tego komputera miał na tyle dużo instrukcji, że każdemu klawiszowi przypisane było ich wiele. Dostęp do nich był możliwy po kłopotliwym przełączaniu trybów edytora[6]. Jednak w rzeczywistości po dłuższym użytkowaniu klawiatury ZX Spectrum i nabraniu wprawy pisanie programów okazywało się dużo wygodniejsze, szybsze i łatwiejsze niż w innych rodzajach klawiatur.

Zobacz też

[edytuj |edytuj kod]

Przypisy

[edytuj |edytuj kod]
  1. Clive Thompson: Koderzy. Znak Litera Nowa, 2019, s. 53.ISBN 83-240-7009-5. (pol.).
  2. "May 1, 1964: First Basic Program Runs"
  3. TeleBASIC Reference Guide. [dostęp 2024-11-30].
  4. Roman Poznański, Klaudiusz Dybowski, Sławomir Polak. System dla ubogich - wywiad z Bogusławem Radziszewskim i Krzysztofem Gajewskim. „Bajtek”. 11 (23), s. 3-4, listopad 1987. Spółdzielnia „Bajtek”. ISSN 0860-1674. [dostęp 2025-09-01]. 
  5. http://rfobasic.com/#section-1
  6. Vickers, Steven (1982).Sinclar ZX Spectrum BASIC Programming. Sinclair Research.
Języki programowania
1GL
2GL/
Język drugiej generacji/
Asembler
3GL /
Język trzeciej generacji
wieloparadygmatowe
proceduralne
istrukturalne
historyczne
inne
obiektowe
funkcyjne
edukacyjne
4GL/
Język czwartej generacji/
Język dziedzinowy
Języki zapytań do baz danych
Generatory raportów / stron
Przetwarzanie danych, analiza i raportowanie
5GL/Logiczne
Ezoteryczne
Inne
Źródło: „https://pl.wikipedia.org/w/index.php?title=BASIC&oldid=77717865
Kategorie:
Ukryta kategoria:

[8]ページ先頭

©2009-2026 Movatter.jp