Sheerpower Logo F.1  String handling
Business applications use a lot of strings. Sheerpower is highly optimized for handling strings using a number of optimization techniques.
fullname$ = 'Sally Sue'
sentence$ = fullname$ + ' was here.'
print sentence$
sentence$ = 'So I heard.'
print sentence$
Strings are handled very efficiently by Sheerpower. Each string knows both its allocated size and its real size. For example, if a string holds the words "The rain in Spain" and later needs to hold the shorter string of "Enjoy life", Sheerpower can copy the characters from the new shorter string into where the longer string was, repurposing its already allocated buffer.

Sheerpower manages all memory use for you. You never have to worry about memory allocations or deallocations when using Sheerpower. It does this by internally managing a series of memory pools that it creates as the program runs.

In addition, each string is given a globally unique string ID (SID). When a string is copied, its SID is copied to the target as well. Later, Sheerpower avoids unnecessary string copies by first checking if the SIDs of the source and target strings match. If they do, the copying process is avoided.

When using functions like getword$(), Sheerpower also uses SIDs as part of an internal hinting system for further efficiency. For example, if the entire contents of the Bible is stored in the variable bible$ and you do a getword$(bible$, 1000) and then later you do a getword$(bible$, 1001), the function does not need to re-read the first 1000 words to get to the 1001 word. It knows from the hinting system where it last left off and returns the 1001 word immediately.

Sheerpower provides memory safety without garbage collection. This eliminates the string handling slowdowns that other languages experience

Note: See the fileinfo$() function for an easy way to read the entire contents of a file, such as the Bible, into a variable.

Hide Description



Looking for the full power of Sheerpower?
Check out the Sheerpower website. Free to download. Free to use.
Wide screen