BASIC
Z Wikipedii
BASIC (Beginner's All-purpose Symbolic Instruction Code) - język programowania wysokiego poziomu, opracowany w 1964 przez Johna George'a Kemeny'ego i Thomasa E. Kurtza w Dartmouth College w oparciu o Fortran i Algol-60. Jego pierwsza wersja znana była później pod nazwą Dartmouth BASIC.
Spis treści |
[edytuj] Historia
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.
BASIC wybił się na czoło języków do zastosowań amatorskich i półprofesjonalnych po wprowadzeniu na rynek mikrokomputera Altair 8800. Twórcami dialektu BASIC-a dla tej maszyny byli Bill Gates i Paul Allen. BASIC szybko zaimplementowany został przy budowie serii komputerów Apple, a później (jako GW BASIC) w IBM PC (początkowo w ROM, a po pojawieniu się DOSa na dyskietce).
Następcą GW BASIC-a dla pecetów został QB, później rozprowadzany komercyjnie jako QuickBASIC, który w końcu wyewoluował w Visual Basic for Windows. Istnieją też alternatywne interpretery i kompilatory tego języka dla platformy win32 (Power BASIC, DarkBASIC itp.)
W Polsce najbardziej znane są dialekty BASIC-a napisane dla popularnych komputerów ośmiobitowych - Commodore, Amstrada CPC, Atari i Sinclair ZX Spectrum.
[edytuj] Semantyka
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 albo 32767).
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 w C).
BASIC w sprowadzonej do wspólnego mianownika wersji posiada bardzo proste mechanizmy sterowania przebiegiem programu - instrukcję skoku bezwarunkowego GOTO, wywołania podprogramu GOSUB (kończonego instrukcją RETURN) oraz warunkową (IF..THEN (oraz ELSE w niektórych dialektach). Za pomocą instrukcji FOR..NEXT można powtarzać określone fragmenty programu (pętla iteracyjna).
Niektóre dialekty posiadają także instrukcje pętli warunkowej (DO LOOP..UNTIL, WHILE..WEND), skoku warunkowego (ON GOTO, ON GOSUB), oraz wyboru warunkowego (CASE..SELECT).
Inne typowe instrukcje:
- RUN - uruchomienie programu
- PRINT tekst - wyprowadzenie tekstu lub wartości zmiennej na urządzenie wyjściowe (najczęściej ekran).
- INPUT zmienna - wczytanie wartości z klawiatury do zmiennej
- DIM tablica - deklaracja tablicy
- LET zmienna = wartość - deklaracja zmiennej (czasami LET można opuścić)
- STOP - zatrzymanie programu
- CONTINUE - wznowienie zatrzymanego programu
Ponadto w większości dialektów dostępne są funkcje matematyczne (INT, ABS, SGN) trygonometryczne (SIN, COS, TAN, czasami LOG, LN) i operacji na łańcuchach (szereg funkcji zakończonych znakiem $, np. LEFT$, UPPER$).
[edytuj] Najbardziej znane dialekty
- Altair BASIC
- AMOS (Amiga)
- Applesoft BASIC
- Atari BASIC
- BASICA
- Blitz Basic
- Commodore BASIC (zwany też CBM BASIC)
- EBASIC - implementacja firmy Elwro dla komputerów z rodziny Elwro 500
- GW BASIC
- Locomotive BASIC (Amstrad CPC)
- QBasic
- QuickBasic
- Sinclair BASIC
- Turbo Basic
- Visual Basic
- Visual Basic .NET
- sBasic (napisany dla komunikatorów Nokia)
[edytuj] Przykładowy program
10 PRINT "Witaj" 20 INPUT "Ile gwiazdek mam wydrukowac"; ile 30 PRINT "*"; 40 LET ile = ile -1 50 IF ile > 0 THEN GOTO 30
Powyższy program to klasyczny, niestrukturalny BASIC. Linie są w nim numerowane a pętle uzyskuje się używając instrukcji skoku GOTO. Duża ilość skoków powodowała, że kod wczesnego BASICa był często trudny do odczytania i zrozumienia, powstał nawet termin spaghetti code określający taki sposób tworzenia programów.
[edytuj] Zobacz też
ABAP • Ada • AWK • Asembler • C • C++ • C# • COBOL • D • Forth • Fortran • Icon • Java • JavaScript • Lisp • Modula 2 • Oberon • Object Pascal • Objective-C • Pascal • Perl • PHP • PL/SQL • Python • REXX • Ruby • sh • Smalltalk • Snobol • SQL • Visual Basic • VB.NET
Akademickie
Comal • Eiffel • Haskell • Logo • MCPL • ML • Nemerle • Prolog • Scheme
Historyczne
ALGOL • APL • BASIC • Clipper • MUMPS • PLAN • PL/I • PL/M • SAS • Simula