# Applesoft BASIC

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 voor Apple ontwikkeld door Microsoft, toen Apple de Apple II Plus introduceerde met een groter werkgeheugen van 48 kB RAM. Microsofts had al ervaring met de ontwikkeling van Altair BASIC. Apple nam een licentie op een assembleertaalversie van 10 kB van BASIC die men "Applesoft" noemde. Deze leek sterk op (en deelde inderdaad code met) BASIC-implementaties op andere 6502-gebaseerde computers, zoals Commodore BASIC.
De taal maakte gebruik van regelnummers. Spaties tussen de verschillende commando's waren niet noodzakelijk tijdens het intypen van regels, maar werden naderhand automatisch toegevoegd door Applesoft BASIC. Hoewel trager dan voorganger Integer BASIC, had hij enkele belangrijke nieuwe mogelijkheden:
* 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.

## Spellen

Er werden om verscheidene redenen relatief weinig actiespellen volledig geschreven in Applesoft BASIC:
* 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 zestienkleurenmodus 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 regels; een GOTO kostte O(n) (lineaire) tijd.
* De BASIC had geen geluidsondersteuning, met uitzondering van het simpele bel-signaal PRINT CHR$(7)
* De closedsourcebeweging was juist begonnen; software-uitgevers ondervonden dat het moeilijker was een gecompileerd binair bestand te kraken dan een geïnterpreteerde broncode.
Het was wel gebruikelijk de basis of het opstartprogramma te maken in Applesoft BASIC, en vanuit daar code in machinetaal aan te roepen.

## Voorbeeld

Dit is Hello World in Applesoft BASIC:
* Dit artikel bevat vertaalde tekst uit Everything2, vrijgegeven onder GFDL-licentie.