User:PauliKL/ANSI BASIC

ANSI BASIC is the standard published by the American National Standards Institute (ANSI) for the BASIC programming language. There are two standards: ANSI X3.60-1978 Minimal Basic and ANSI X3.113-1987 "Full Basic". These standards were subsequently adopted by International Organization for Standardization (ISO).

ANSI Full Basic
The Proposed Standard for Basic was published in the year 1983 .

Hello world
Unlike most other languages, typical BASIC implementations do not require any decorative constructs in the program. In ANSI BASIC, however, END instruction is mandatory.

BASIC does not need semicolons or similar to mark end of statement. Each statement ends at the end of line, unless line continuation character '\' is used. Unlike most real world Basic implementations, ANSI BASIC still requires line numbers.

Here is an example source code for a very simple Hello world program:

10 PRINT "Hello, World" 20 END

Control structures
ANSI BASIC is a structured programming language. Some of the basic control structures are described below.

Conditional statements:

10 IF a > b THEN 20    b = b*2 30    sum = sum + a    40 ELSE 50    a = a+1 60    sum = sum + b    70 END IF   100 SELECT CASE value 110  CASE 1 120    CALL do_something 130  CASE 2,3,4 140    CALL do_otherthing(value) 150  CASE IS > 4 150    counter = counter+1 160    value = value/2 170  CASE ELSE 180    PRINT "Incorrect value" 190 END SELECT

Loops

The DO...LOOP structure by itself creates an endless loop. However, it may have an exit statement WHILE or UNTIL at the beginning and/or at the end. In addition, EXIT DO statement can be used to exit anywhere in the middle of the loop.

200 DO  210     PRINT question$ 220    INPUT answer$ 230    IF answer = "quit" THEN EXIT DO   240     CALL check_answer(answer$) 220 LOOP WHILE time_left FOR...NEXT loop may have an optional step value. Exit from middle of the loop can be done with EXIT FOR.

300 FOR row = 1 TO maxrows 310    FOR column = 1 TO maxcols STEP 8 320        PRINT TAB(column);"*"; 330    NEXT column 340    PRINT 350 NEXT row

Procedures and functions
ANSI BASIC has two types of procedures: SUBs and FUNCTIONs. The difference is that a FUNCTION returns a value, SUB does not. Both of them can be either internal or external. In internal procedure, all the variables are global within the program unit. In external procedure, all variables are local.

500 SUB check_answer(answer$) 510    IF answer$ = correct$ THEN 520        PRINT "Correct!" 530        score = score+1 540        CALL NextQuestion 550    ELSE 560        PRINT "Wrong, try again." 570    ENDIF 580 END SUB