You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

206 lines
8.2 KiB

<h2>BASIC</h2>
<h4>The basics of BASIC</h4>
<p>
BASIC, which stands
for <b>B</b>eginners <b>A</b>ll-Purpose <b>S</b>ymbolic <b>I</b>nstruction <b>C</b>ode
is a programming language which was created at Dartmouth University
by John Kemeny and Thomas Kurtz in the early 1960's. BASIC's
authors intended to create a programming language and environment
which would be useful to people who's primary interest was something
other than computer programming. It was intended to be used by
average users, scientists, and programming students alike. BASIC
was instantly popular among the students and faculty of Dartmouth,
and it saw rapid adoption on other systems. When the microcomputer
revolution started to take hold in the 1970's and 1980's, BASIC was
the default user environment of choice. As a result, many of
today's programmers cut their teeth on BASIC. This tutorial will
help you get started with this wonderful little language. BASIC
remains a very easy to learn language, and it is great for writing
small programs. Best of all, a lot of the concepts in BASIC
transfer to other languages, so this can serve as a great jumping
off point for your programming career!
</p>
<p>
One of the difficulties in learning BASIC lies in the wide array of
BASIC compilers and interpreters that are currently in circulation.
Each one of these programs comes with their own nuances and
extensions to the BASIC programming language. The good news is that
there is a lot of commonality between the various versions of BASIC,
and once you've gained familiarity with one you can move to another
pretty quickly. Best of all, there is a common thread which runs
through all the various BASICs, and that is where we will begin.
We'll start with a minimal subset of the language, one which will
get you up and running with all the interpreters available on SDF.
</p>
<p>
Let's start with a simple working example. A classic one which
children the world over have typed into computers since the dawn of
the 80's!
</p>
<pre>
10 PRINT "HELLO"
20 GOTO 10
</pre>
<p>
If this is run through a BASIC interpreter, it will have the
following output:
</p>
<pre>
HELLO
HELLO
HELLO
HELLO
.... and so on off into infinity
</pre>
<p>
In fact, why don't we try this out in one of our several BASIC
interpreters! Go ahead and fire up bwbasic. To do this, just type
"bwbasic" at the sdf prompt. Type in the program listed above, and
then type RUN and press enter. Once you've been greeted enough
times, press Ctrl-C to halt the program. The hole session should
look like this:
</p>
<pre>
######## ## ## ## ## ### ######## ######## ########
## ## ## ## ## ## ## ## ## ## ## ## ##
## ## #### ## ## ## ## ## ## ## ## ##
######## ## ## ## ## ## ## ## ###### ########
## ## ## ## ## ## ######### ## ## ## ##
## ## ## ## ## ## ## ## ## ## ## ##
######## ## ### ### ## ## ## ######## ## ##
######## ### ###### #### ######
## ## ## ## ## ## ## ## ##
## ## ## ## ## ## ##
######## ## ## ###### ## ##
## ## ######### ## ## ##
## ## ## ## ## ## ## ## ##
######## ## ## ###### #### ######
Bywater BASIC Interpreter, version 3.00
Copyright (c) 1993, Ted A. Campbell
Copyright (c) 1995-1997, Jon B. Volkoff
Copyright (c) 2014-2015, Howard Wulf, AF5NE
bwBASIC: 10 PRINT "HELLO"
bwBASIC: 20 GOTO 10
bwBASIC: RUN
HELLO
HELLO
HELLO
HELLO
HELLO
HELLO
HELLO
HELLO
HELLO
HELLO
HELLO
Program interrupted at line 10
bwBASIC:
</pre>
<p>To exit bwbasic, just type "quit" and press enter.</p>
<h4>Structure of BASIC Lines of Code</h4>
<p>
Ok, so let's unpack what we just did a little bit. The basic layout
of a BASIC statement works like this:
<pre>LINE_NUMBER COMMAND PARAMETERS</pre>
Each of these parts serves a specific purpose.
<ul>
<li>LINE_NUMBER - Present in most BASICS. This serves as a label
for the line so you can refer to it later, and in some BASICs it
also serves as a method of editing lines. (more on this later!)
<li>COMMAND - This is what you want your program to do. There are
lots of these, we'll discuss them in detail later.
<li>PARAMETERS - Most commands require some additional
information. That's what this one is about.
</ul>
</p>
<p>
So now with that in mind, let's take a look at our happy little
program! The first line <pre>10 PRINT "HELLO"</pre> is line number
10. The command that we are using is "PRINT", and the parameter is
"HELLO". PRINT puts information on the screen, and "HELLO" is that
something we are putting on the screen. Pretty simple, right?
</p>
<p>
Now, what about the next line? <pre>20 GOTO 10</pre> GOTO is a
command which tells them computer what line to execute next.
Normally, the computer will just step through the lines of the
program in order, but when it hits a GOTO, that's your chance to
send it somewhere else. Here, we are sending it back to line 10.
This causes it to print out "HELLO" again, then it hits line 20
again, and then it goes back to 10. This will go on and on forever,
or until someone stops the program. Computers are very patient, so
you can run this to your heart's content!
</p>
<h4>The BASIC Line Editor</h4>
<p>
Before we go any further with the language, we should explore what's
going on with those line numbers. The answer lies in BASIC's
origins. Originally, BASIC was run on a GE-235 running Dartmouth's
Time Sharing System. The primary mode of interface was a teletype
printer (this was the 1960's after all!) so everything was
constantly being typed out to paper. This meant that modern
text editing just wasn't available to BASIC programmers. To combat
this, Kurtz and Kemeny implemented a line based editing scheme. The
line numbers were the key to this.
</p>
<p>
First and foremost, these line numbers provide a guide for
sequencing the program. The computer sorts them into increasing
order. They need not be consecutive, and traditionally BASIC
programmers would count by 10's or by 100's. The reason for this is
that you could go back and insert new lines of code in between lines
of code. Imagine, for instance, that you had entered our little
program, but then decided you wanted a second line of output that
said "GOODBYE". You could type the whole thing over again, or you
could just type the following:
<pre>
15 PRINT "GOODBYE"
</pre>
Now, we can take a look at what the computer thinks the program is
by using the LIST command:
<pre>
LIST
10 PRINT "HELLO"
15 PRINT "GOODBYE"
20 GOTO 10
</pre>
You can also use the line number to change the lines:
<pre>
15 PRINT ":-D"
</pre>
Or you can delete lines all together
<pre>
15
</pre>
So in short, these line numbers are both your labels in your
program, and they are also a means to edit your program. Of course,
I should mention that not all BASIC interpreters support this sort
of direct editing. In those cases, you'll want to edit your program
in a standard text editor (like ed!) [ok, or vi or emacs]. But for
that old-school feel, you'll want to use line number editing.
</p>
<h4>Available BASIC Interpreters at SDF</h4>
<li>bwbasic
<li>yabasic
<li>brandy
<li>..
<p>
<i>This is exactly how to use BASIC at SDF with a plethora of fun and interesting programming examples just for you!</i>
<p>
$Id: basic-language.html,v 1.4 2016/08/11 02:11:08 pngwen Exp $