BASIC (Beginner’s All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use. In 1964, John G. Kemeny and Thomas E. Kurtz designed the original BASIC language at Dartmouth College. They wanted to enable students in fields other than science and mathematics to use computers. At the time, nearly all use of computers required writing custom software, which was something only scientists and mathematicians tended to learn.
The advent of the personal computer was crucial to the success of BASIC. The language was designed for hobbyists, and as personal computers became more accessible to this audience, books of BASIC programs and BASIC games surged in popularity.
BASIC is generally not regarded as the easiest way to take the first steps in learning the art of programming. But it does not hinder beginners from learning how to program, or teach them bad habits. And it’s the highest low-level language. Even today, there remains value in learning BASIC.
1. A Beginner’s Guide to GAMBAS by John W. Rittinghouse, Jon Nicholson
A Beginner’s Guide to Gambas introduces the Linux-based programming language to developers of any skill level.
Gambas is the name of an object-oriented dialect of the BASIC programming language, as well as the integrated development environment that accompanies it. Designed to run on Linux and other Unix-like computer operating systems, its name is a recursive acronym for Gambas Almost Means Basic.
Intended for the Gambas novice, this book quickly introduces all of the major features of Gambas in a step-by-step manner with easy to follow sample programs and clearly written code.
- Introducing Gambas.
- Gambas Language Concepts.
- Keywords and Program Flow Control.
- Introducing the Gambas ToolBox.
- Controls for Gathering Input.
- Menus, Modules, Dialogs, and Message Boxes.
- Handling Strings and Converting Data-types.
- Using Advanced Controls.
- Working with Files.
- Math Operations.
- Object-Oriented Concepts.
- Learning to Draw.
- Error Management.
- Mouse, Keyboard and Bit Operations.
- Gambas and Databases.
- Global Gambas.
The book is published under the terms and conditions of the OpenContent License (OPL), Version 1.0.
2. A Beginner’s Guide to FreeBasic by Richard D. Clark and Ebben Feagan
FreeBASIC is a 32-bit BASIC compiler that outputs native code for Microsoft Windows, Linux and DOS via DJGPP.
- Numeric Data Types – coverage of the numeric data types that FreeBasic supports.
- Converting Numeric Data Types – implicit and explicit data conversion.
- Introduction to the C Runtime Library – covers the #include directive, the declaration statement, runtime conversion functions, and more.
- Arithmetic Operators – brief coverage of the arithmetic operators in FreeBasic.
- Bitwise Operators – NOT, AND, OR, XOR, EQV and IMP operators, as well as information on the shortcut bitwise operators, the SHL and SHR operators, and ending with bitwise macros.
- Mathematical functions- coverage of the supported mathematical functions including trigonometric functions, logarithms, and the C runtime library math constants and functions.
- Pointer Data Type covers pointers and memory, typed and untyped pointers, pointer operators, memory functions, and more.
- String Data Types – examines dynamic strings, fixed length strings, zstrings, wstrings, string functions, and more.
- Composite Data Types – types, type initialization,and unions are given coverage.
- Symbolic Constants – covers #define as a constant, the const keyword, const verses #define.
- Arrays – the chapter starts by covering one, two, and multi-dimensional arrays before going on to cover dynamic arrays, array functions, arrays of types, arrays in types, array initialization and more.
- Date and Time Functions – both intrinsic and extended data and time functions are covered.
- The Format Function – looks at string format characters, numeric format characters, date format characters, and time format characters.
- Console Programming – the console screen, the console functions, console colors, positioning text, printing text and more.
- Control Structures – includes the IF statement block, the IIF function, and the Select Case Statement Block.
The book is published under the GNU Free Documentation License, Version 1.2 or later.
3. So You Want to Learn to Program? – Programming With BASIC-256 by James M. Reneau
BASIC-256 is an easy to use version of BASIC designed to teach anybody (especially middle and high-school students) the basics of computer programming.
It uses traditional control structures like gosub, for/next, and goto, which helps kids easily see how program flow-control works. It has a built-in graphics mode which lets them draw pictures on screen in minutes, and a set of detailed, easy-to-follow tutorials that introduce programming concepts through fun exercises.
- Meeting BASIC-256 – Say Hello.
- Drawing Basic Shapes.
- Sound and Music.
- Thinking Like a Programmer.
- Your Program Asks for Advice.
- Decisions, Decisions, Decisions.
- Looping and Counting – Do it Again and Again.
- Custom Graphics – Creating Your Own Shapes.
- Subroutines – Reusing Code.
- Mouse Control – Moving Things Around.
- Keyboard Control – Using the Keyboard to Do Things.
- Images, WAVs, and Sprites.
- Arrays – Collections of Information.
- Mathematics – More Fun With Numbers.
- Working with Strings.
- Files – Storing Information For Later.
- Stacks, Queues, Lists, and Sorting.
- Runtime Error Trapping.
- Database Programming.
- Connecting with a Network.
This book is released under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.
All books in this series:
|Free Programming Books|
|Java||General-purpose, concurrent, class-based, object-oriented, high-level language|
|C||General-purpose, procedural, portable, high-level language|
|Python||General-purpose, structured, powerful language|
|C++||General-purpose, portable, free-form, multi-paradigm language|
|C#||Combines the power and flexibility of C++ with the simplicity of Visual Basic|
|PHP||PHP has been at the helm of the web for many years|
|HTML||HyperText Markup Language|
|SQL||Access and manipulate data held in a relational database management system|
|Ruby||General purpose, scripting, structured, flexible, fully object-oriented language|
|Assembly||As close to writing machine code without writing in pure hexadecimal|
|Swift||Powerful and intuitive general-purpose programming language|
|Groovy||Powerful, optionally typed and dynamic language|
|Go||Compiled, statically typed programming language|
|Pascal||Imperative and procedural language designed in the late 1960s|
|Perl||High-level, general-purpose, interpreted, scripting, dynamic language|
|R||De facto standard among statisticians and data analysts|
|COBOL||Common Business-Oriented Language|
|Scala||Modern, object-functional, multi-paradigm, Java-based language|
|Fortran||The first high-level language, using the first compiler|
|Scratch||Visual programming language designed for 8-16 year-old children|
|Lua||Designed as an embeddable scripting language|
|Logo||Dialect of Lisp that features interactivity, modularity, extensibility|
|Rust||Ideal for systems, embedded, and other performance critical code|
|Lisp||Unique features - excellent to study programming constructs|
|Ada||ALGOL-like programming language, extended from Pascal and other languages|
|Haskell||Standardized, general-purpose, polymorphically, statically typed language|
|Scheme||A general-purpose, functional language descended from Lisp and Algol|
|Prolog||A general purpose, declarative, logic programming language|
|Forth||Imperative stack-based programming language|
|Clojure||Dialect of the Lisp programming language|
|Julia||High-level, high-performance language for technical computing|
|Awk||Versatile language designed for pattern scanning and processing language|
|BASIC||Beginner’s All-purpose Symbolic Instruction Code|
|Erlang||General-purpose, concurrent, declarative, functional language|
|VimL||Powerful scripting language of the Vim editor|
|OCaml||The main implementation of the Caml language|
|ECMAScript||Best known as the language embedded in web browsers|
|Bash||Shell and command language; popular both as a shell and a scripting language|
|LaTeX||Professional document preparation system and document markup language|
|TeX||Markup and programming language - create professional quality typeset text|
|Arduino||Inexpensive, flexible, open source microcontroller platform|
|Elixir||Relatively new functional language running on the Erlang virtual machine|
|F#||Uses functional, imperative, and object-oriented programming methods|
|Tcl||Dynamic language based on concepts of Lisp, C, and Unix shells|
|Factor||Dynamic stack-based programming language|
|Eiffel||Object-oriented language designed by Bertrand Meyer|
|Agda||Dependently typed functional language based on intuitionistic Type Theory|
|Icon||Wide variety of features for processing and presenting symbolic data|
|XML||Rules for defining semantic tags describing structure ad meaning|
|Vala||Object-oriented language, syntactically similar to C#|
|Standard ML||General-purpose functional language characterized as "Lisp with types"|
|D||General-purpose systems programming language with a C-like syntax|
|Dart||Client-optimized language for fast apps on multiple platforms|
|Markdown||Plain text formatting syntax designed to be easy-to-read and easy-to-write|
|Kotlin||More modern version of Java|
|Objective-C||Object-oriented language that adds Smalltalk-style messaging to C|
|VHDL||Hardware description language used in electronic design automation|