Jump to content

Microsoft Small Basic

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by TangLab (talk | contribs) at 15:19, 2 September 2012 (Language: Added section describing data types in MS SB- strings/text can be treated just like int/float in different contexts.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Microsoft Small Basic
Original author(s)Microsoft DevLabs
Developer(s)Microsoft DevLabs
Initial release2008
Stable release
Microsoft Small Basic v1.0 / 12th July 2011
Written inMicrosoft .Net 3.5
Operating systemMicrosoft Windows
PlatformMicrosoft Windows
TypeIntegrated development environment
Websitehttp://www.smallbasic.com/

Microsoft Small Basic is a simplified variant of the BASIC programming language introduced by Microsoft in October 2008. With a bare minimum of concepts, Microsoft accredits this as an easy programming language for beginners to grasp. The language itself has only 14 keywords,[1] and the environment is beginner-friendly, with a straightforward interface. Small Basic Version 1.0 (12 June 2011)[2] was released with an updated Microsoft MSDN website that included several new Small Basic guides for beginners through a partnership with ComputerScienceForKids.com. The published Small Basic guides include a complete Developer's Reference Guide, a Beginning Small Basic tutorial, and a republished classic programming book by David H. Ahl.[3]

Microsoft Small Basic was designed by Microsoft DevLabs and released as a Technology Preview[4] in October 2008. Its intended audience is anyone looking to begin programming, including children and beginner adults as well.

Language

The actual language is a modified version of Microsoft's QBasic language, but ported over to the .Net Framework. The traditional 'Hello World' can be written as:

TextWindow.Write("Hello World")

or:

TextWindow.WriteLine("Hello World")

The first example just writes 'Hello World', but the second example writes 'Hello World' on a new line.

Note that traditional Basic variants, including Microsoft QuickBasic, used an easier syntax:

print "Hello World"

The language itself is Turing complete and supports concepts like conditional branching and loops. Variables are typeless and dynamic, and there are no scoping rules. The language supports subroutines and the runtime uses them for event handling purposes.

Conditional Branching

TextWindow.Write("Enter the temperature today (in F): ")
temp = TextWindow.ReadNumber()
If temp > 100 Then
  TextWindow.WriteLine("It is pretty hot.")
ElseIf temp > 70 Then
  TextWindow.WriteLine("It is pretty nice.")
ElseIf temp > 50 Then
  TextWindow.WriteLine("Don't forget your coat.")
Else
  TextWindow.WriteLine("Stay home.")
EndIf

Looping

TextWindow.WriteLine("Multiplication Tables")
table = 4
For i = 1 to 10
  TextWindow.WriteLine(i + " x " + table + " = " + table * i)
EndFor

Data Types

The language supports basic implementation of data types, like strings, integers and decimals.

TextWindow.WriteLine("Enter your name:")
name = TextWindow.Read()
TextWindow.Write("Enter your age: ")
age = TextWindow.ReadNumber()
TextWindow.WriteLine("Hello " + name + "!")
TextWindow.WriteLine("In 5 years you will be " + age + 5 + "years old!")

In the above example, the TextWindow library gets user input twice- Read() for a text value and ReadNumber() to get a number. ReadNumber also makes the language more user-friendly by preventing invalid numerical values, such as "asdf", from being typed.

Advanced programmers should note that Small Basic stores all values- including Arrays- as formatted strings. Hence, strings containing numerical data can be manipulated as numbers in various contexts, and vice versa:

TextWindow.WriteLine(Math.log("100")) 'Prints 2
TextWindow.WriteLine("100" + "3000") ' Prints 3100

(The latter example can be overcome by using Text.Append().)

Libraries

The software ships with a built in set of libraries which are quite modern and intended to pique the learners' interest.

For example to change the desktop wallpaper to a variety of 10 mountain photos, the students would make use of a prebuilt "GetRandomPicture" method for Flickr so the code becomes simply:[5]

For i = 1 To 10
  pic = Flickr.GetRandomPicture("mountains")
  Desktop.SetWallPaper(pic)
  Program.Delay(10000)
EndFor

Turtle

Microsoft Small Basic ships with a Turtle graphics library that borrows the idea from Logo. For example, you can make the turtle draw a square by simply saying:

For i = 1 to 4
  Turtle.Move(100)
  Turtle.TurnRight()
EndFor

Older Basic dialects, like Microsoft QuickBasic, did not use

EndFor

but

Next i

Testing

The first trials were successfully done with several middle school children, most of them children of workers at Microsoft. Small Basic was also successfully tested using a hands-on lab approach to a group of 25 high school girls.[6]

See also

References