Applesoft BASIC

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken
Applesoft BASIC.png

In de informatica is Applesoft BASIC een programmeertaal. Het was het tweede dialect van de taal BASIC dat geleverd werd op de Apple II-computer, als opvolger van Integer BASIC. Applesoft BASIC werd geleverd door Microsoft; Apple was op zoek naar een nieuwe BASIC-versie voor de Apple II Plus met 48 kB RAM, en na Microsofts succes met Altair BASIC viel de keuze op deze leverancier. Apple nam een licentie op een assembleertaalversie van 10 kB van BASIC die "Applesoft" genoemd werd. Deze leek sterk op (en deelde inderdaad code met) BASIC-implementaties op andere 6502-gebaseerde computers, zoals Commodore BASIC: de taal gebruikt regelnummers, spaties waren niet noodzakelijk in regels, en hoewel hij veel trager was, had hij enkele belangrijke mogelijkheden die Integer BASIC niet had:

  • Atomische strings: een string is niet langer een array van karakters (zoals in C); in de plaats daarvan een object dat door garbage collection wordt opgevangen (zoals in Scheme en Java). Dit laat string-arrays toe; DIM A$(10) resulteerde in een vector van tien stringvariabelen;
  • Multidimensionele arrays;
  • Enkele-precisie floating point variabelen met een 8-bit exponent en 31-bit mantisse. Hierbij werd ook een trigonometrische bibliotheek voorzien;
  • Hoge-resolutie grafische mogelijkheden;
  • CHR$, ASC, STR$, en VAL functies voor conversie tussen strings en numerieke types;
  • LET statement is optioneel.

Er werden echter relatieve weinig actiespelen geschreven in Applesoft BASIC, omwille van verscheidene redenen:

  • In een tijdperk waar men klokcycli nauwkeurig telde en geheugen beperkte, was het een vreemd idee om snelheidsafhankelijke programma's te schrijven die enkel via een runtime interpreter draaien.
  • Het gebruik van reële getallen voor alle wiskundige bewerkingen creëerde onnodige overhead en verminderde de prestaties van programma's die in Applesoft BASIC geschreven waren. Variabelen met gehele getallen moesten naar reële worden geconverteerd voor er berekeningen op uitgevoerd konden worden; daarna werden ze terug naar gehele getallen omgezet. Microsoft had dit niet geoptimaliseerd.
  • Zogeheten shape tables (vormtabellen) zijn een traag alternatief voor bitmaps. Er bestonden geen voorzieningen om tekst en figuren te mengen, uitgezonderd voor het beperkte "Hardware split screen" van de Apple II (vier lijnen tekst onderaan het scherm). Er werden in de BASIC interpreters van de 128 kB Apple IIe en Apple IIc modellen geen voorzieningen toegevoegd voor het extra geheugen en de dubbele grafische resolutie van de nieuwe computers, of voor de 16 kleuren modus van de Apple IIGS. (Beagle Bros bood een oplossing in machinetaal om deze problemen te omzeilen.)
  • Het programma werd opgeslagen als een gelinkte lijst van lijnen; een GOTO kostte O(n) (lineaire) tijd.
  • De BASIC had geen geluidsondersteuning.
  • De closed source-beweging was juist begonnen; software-uitgevers ondervonden dat het moeilijker was een gecompileerd binair bestand te kraken dan een geïnterpreteerde broncode.

Dit is Hello World in Applesoft BASIC:

10 TEXT:HOME
20 ?"HELLO WORLD"
Bronnen, noten en/of referenties
  • Dit artikel bevat vertaalde tekst uit Everything2, vrijgegeven onder GFDL-licentie.