Skip to main content

Tiny Basic Sieve Benchmark

Compared to the Sieve benchmarks in previous posts, Tiny Basic is very slow. In fact, it's much slower than I anticipated.

I ran Tiny Basic on both the Run Basic public server and Liberty Basic 4.03 on my laptop. Here are the numbers:



After 5000, the Run Basic program exceeded the allowable time on the public server.

The following is the Sieve program. I had to use IF statements because Tiny Basic doesn't have a FOR/NEXT loop yet.

10 REM sieve2

20 REM ported to Tiny Basic from Liberty Basic by David den Haring

30 REM last updated: 8-14-07

40 REM s -- size, a() -- flags array, a -- start time, z -- end time

50 REM i -- loop counter, p -- prime, c -- prime count, k -- temp

60 s = 7000 : i = 1

70 a = ms

80 IF a(i) > 0 THEN GOTO 300

90 p = (i + i + 3)

100 k = i + p

110 IF k > s THEN GOTO 290

120 a(k) = 1

130 k = k + p

140 GOTO 110

290 c = c + 1

300 i = i + 1

310 IF i > s THEN GOTO 400

320 GOTO 80

400 z = ms

410 PRINT c;

420 PRINT " primes found."

430 PRINT "End of iteration. Elapsed time in milliseconds: ";

440 PRINT z - a

450 END

Comments

Popular posts from this blog

BASIC turns 50

Well, the BASIC language actually turned 50 on May 1, 2014, and I'm very late to the party. Born at Dartmouth in 1964 (along with the first commercial time sharing), here is the university's tribute page . There is even a great 38 minute documentary that they made for the occasion. 10 PRINT "ENJOY" 20 GOTO 10

Tiny Basic tinkering

One of the examples on the Run Basic website is a port of Tiny Basic . It's fun to play with and is very much like the interactive, command line Basics found on early personal computers. In fact, I think Tiny Basic was the dialect used on the TRS-80 Model 1. I'm currently working on modifying Tiny Basic to run the Sieve benchmark. Tiny Basic needs two things: profiling and array support . I've already added profiling support for the RUN command. Tiny Basic now displays the running time of a program in milliseconds. The last step is to add array support. Tiny Basic only supports the numeric variables 'a' to 'z'. I'm adding a single array to the environment in order to port the Sieve program. The array will be called a(). I will post the modified Tiny Basic code to the Run Basic Programming Wiki when finished. The whole point of this exercise, however, is to see how fast the Tiny Basic interpreter runs the Sieve benchmark and compare it to the others i...

Run BASIC Hosting Service Launched

The new Run BASIC hosting service launched at midnight! Please visit http://runbasichosting.com for more details. Monthly and annual subscriptions are available. Run BASIC , a product by ShopTalk Systems, is a tool that makes it easy to create your own web applications. No computer science degree required . Run BASIC Hosting is a service that makes it easy to deploy your applications to the Internet. No IT experience required .