True BASIC - True BASIC

Prawdziwy BASIC
Prawdziwe logo BASIC.svg
Zaprojektowany przez John G. Kemeny
Thomas E. Kurtz
Deweloper True BASIC, Inc.
Po raz pierwszy pojawiły się 1983 ; 38 lat temu  ( 1983 )
Stronie internetowej www .truebasic .com
Wpływem
PODSTAWOWY

Prawdziwy BASIC jest wariantem języka programowania BASIC wywodzącego się z Dartmouth BASIC - oryginalnego BASIC. Obie zostały stworzone przez profesorów uniwersytetu Johna G. Kemeny'ego i Thomasa E. Kurtza .

Historia

Prawdziwy BASIC wywodzi swoją historię z odgałęzienia Dartmouth BASIC zwanego Structured BASIC lub w skrócie SBASIC. Zostało to wydane gdzieś w 1975 lub 1976 roku, ale nie zostało zainstalowane jako główna wersja BASIC w Dartmouth Time Sharing System (DTSS), który wspierał kampus. Wkrótce potem Kemeny zaangażował się w próbę stworzenia standardu ANSI BASIC, próbując połączyć wiele małych odmian języka, które rozwinęły się w późnych latach sześćdziesiątych i wczesnych siedemdziesiątych XX wieku. Wysiłki te początkowo koncentrowały się na systemie znanym jako „Minimal BASIC”, który był podobny do wczesnego Dartmouth BASIC, ale z dodanymi zmiennymi łańcuchowymi, podczas gdy późniejsze prace miały na celu „Standardowy BASIC”, który był zasadniczo SBASIC.

We wczesnych latach osiemdziesiątych dziesiątki milionów komputerów domowych korzystało z pewnej odmiany Microsoft BASIC , która stała się de facto standardem. Wysiłki ANSI ostatecznie stały się bezcelowe, ponieważ stało się jasne, że te wersje nie będą miały żadnego wpływu na rynek w świecie zdominowanym przez MS. Obie wersje zostały ostatecznie ratyfikowane, ale przyjęto niewiele lub nie przyjęto ich wcale, a standardy zostały później wycofane. Jednak Kemeny i Kurtz zdecydowali się kontynuować swoje wysiłki w celu wprowadzenia koncepcji z SBASIC i wysiłków ANSI Standard BASIC. Stało się to True BASIC.

Początkowo oparty na Dartmouth BASIC 7 - inaczej znany jako ANSI BASIC - True BASIC został wprowadzony w 1985 roku. Istnieją wersje kompilatora True BASIC dla MS-DOS , Microsoft Windows i Classic Mac OS . Kiedyś oferowane były wersje dla komputerów TRS-80 Color Computer , Amiga i Atari ST , a także kompilator wiersza poleceń UNIX .

funkcje

Będąc strukturalną implementacją programowania języka, eliminuje potrzebę stosowania numerów wierszy i instrukcji GOTO , chociaż nadal można ich używać.

Prawdziwy BASIC zapewnia instrukcje dla arytmetyki macierzowej, cecha, która była obecna w Dartmouth BASIC od dawna, ale została usunięta z prawie wszystkich mikrokomputerowych wersji interpreterów BASIC. Obsługuje zmienne globalne i lokalne, co pozwala na pisanie funkcji rekurencyjnych i podprogramów .

Projektanci chcieli uczynić język niezależnym od sprzętu, aby kod źródłowy True BASIC działał równie dobrze na każdej wersji ich kompilatora. W większości udaje im się to przedsięwzięcie. Wadą użytkowników było to, że nie był dostępny bezpośredni dostęp do niektórych funkcji ich maszyn, ale można temu zaradzić za pomocą wywoływalnych funkcji i podprogramów specjalnie napisanych w języku asemblera .

Korzystając z nowszych wersji True BASIC, niektóre starsze funkcje są zablokowane. Przykład najnowszego kodu wyglądałby bardziej tak:

RANDOMIZE
SET WINDOW 0,20,0,20
SET COLOR 5 !Set the pen and text colour to 5 as true basic has 0-15 colours
PRINT "Welcome To ..." !Print "Welcome To ..." on the user's screen.

DO !Begin the loop
    LET x=rnd*20 !Let the value 'x' equal a random number between '0' and '20'
    LET y=rnd*20 !Let the value 'y' equal a random number between '0' and '20'
    Pause .1 !Waits 1/10 of a second
    PLOT TEXT, at x, y: "Fabulous Wikipedia!" !Plot 'Fabulous Wikipedia!' at coordinates 'x' and 'y'
LOOP !End the loop

END !End the program

Ten prosty program wyświetla tekst „Witamy w…” w lewym górnym rogu ekranu, a następnie kontynuuje w niekończącej się pętli kreślącej „Fantastyczna Wikipedia!” o losowych współrzędnych.

Przykład prostej animacji może wyglądać następująco:

!Draw the Car
SET WINDOW 0,20,0,20
SET COLOR 5
BOX AREA 2,6,2,3
BOX AREA 9,13,2,3
BOX AREA 16,20,2,3
SET COLOR 249
PLOT LINES :0,5;20,5
FLOOD 10,1
BOX KEEP 0,20,0,5 IN road$
BOX CIRCLE 2,3,5,6
FLOOD 2.5,5.5
BOX CIRCLE 5,6,5,6
FLOOD 5.5,5.5
SET COLOR 35
PLOT LINES :2.5,6;5.5,6
PLOT LINES :5,6;8,6;8,8;6,8;6,10;2,10;2,8;0,8;0,6;3,6
FLOOD 4,8
SET COLOR 248
BOX AREA 4,5,8,9

BOX KEEP 0,8,5,10 IN car$ !Save the car in 'car$'
 
FOR x=1 TO 20 STEP 1 !Create a 'for' loop
    BOX SHOW road$ AT 0,0
    BOX SHOW car$ AT x,5  
    PAUSE .1
    CLEAR
NEXT x !End the 'for' loop

END !End the programs

Przyjęcie

Jerry Pournelle w 1985 roku zapytał: „dlaczego w ogóle potrzebujemy True BASIC? [To] nie wydaje się robić niczego, czego zwykły BASIC nie robi, a to, co robi, nie jest atakowane w logiczny lub intuicyjny sposób”. Skrytykował brak danych wyjściowych, gdy napotkał błąd, zapobiegając interaktywnemu debugowaniu przez „ wstawianie instrukcji print jako diagnostyki ”. Pournelle podsumował: „Myślę, że przepuszczę szansę stania się odrodzonym na nowo Prawdziwym wierzącym w BASIC. Cieszę się moimi herezjami Microsoft i CBASIC ”.

Niektórzy użytkownicy narzekali, że ich programy i edytor zużywają 100% ich procesora (lub rdzenia). Wydaje się, że jest to spowodowane tym, że edytor i programy użytkownika używają pętli, która stale odpytuje klawiaturę i mysz o zdarzenia. Problem znany jest co najmniej od końca 2010 roku, jednak od początku 2014 roku nadal trwają prace nad jego rozwiązaniami.

Dalsza lektura

  • Kemeny, John G .; Kurtz, Thomas E. (1985). Powrót do BASIC: Historia, korupcja i przyszłość języka . Addison-Wesley Publishing Company, Inc. 141 str.  ISBN   0-201-13433-0 .

Bibliografia

Zewnętrzne linki