TI-Basic is the on-board interpreted programming language for graphing calculators made by Texas Instruments. TI-Basic, as implemented on all TI calculators prior to the TI-89, is designed for quick calculations that the user has, for some reason, decided it is best to create a program for. (This is most frequently because the program represents operations that would be frequently used, or the calculation is best executed iteratively or recursively.) This language is quite suitable for tasks such as this, but it was never designed for the impressive uses many programmers have put the language to.
TI-Basic, as implemented on the earlier calculators, has very few control flow expressions. It uses BASIC-style verbose keywords for command blocks, and the earliest forms of TI-Basic do not have blocks of any form, requiring if statements to refer to goto statements should one wish for multiple operations to be executed, and loops must be manually built by use of if and goto. These inadequacies in the language force any significant programming project within the language to become spaghetti code. This form of TI-Basic does not support comments.
The TI-89, and later models of calculator, had a greatly improved form of TI-Basic. On the Voyage 200, with its built-in QWERTY keyboard, it becomes quite feasible to write more complicated programs. Although it retains the bulky "if...then...endif", "for...endfor", and "while...endwhile" syntax of previous forms of the language, it makes great strides in other areas. The most notable improvements are local variables that cannot conflict with previously-existing data, local functions, and indeed the notion of a user-defined function that can return a value at all, so such algorithms can call each other and use each other's output directly, rather than previous forms of TI-Basic which, although they support calling other programs, cannot return values. (Many programmers dodged this obstacle by defining a variable "RET", or some other standard name, that a subroutine's output was placed into where the calling program could read it.) This version of TI-Basic also adds comment functionality.
TI-Basic as implemented on the TI-89, TI-92+, and Voyage 200 is far superior to the language on previous calculators and should be considered a different language. However, the language is still interpreted rather than compiled, and therefore executes extremely slowly compared to programs written in assembly language or, more recently, C, with the assistance of the TIGCC compiler and IDE.
The greatest saving grace for TI-Basic is that it allows programs, of any form, to be written on the calculator without the assistance of a computer. Typing on a calculator keyboard is, however, inconvenient, with the notable exceptions of the TI-92, TI-92+, and Voyage 200, all of which sport QWERTY keyboards. As typing on such a device is inherently slow and bulky anyway, it is unreasonable to expect anything large to be programmed in the language; as a tool to automate repetitious or frequently-used calculations, it does its job just fine.