True BASIC - True BASIC
Zaprojektowany przez |
John G. Kemeny Thomas E. Kurtz |
---|---|
Deweloper | True BASIC, Inc. |
Po raz pierwszy pojawiły się | 1983 |
Stronie internetowej | www |
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 .