I'm a bit confused as to exactly what shells are/why they are useful. Do they convert your BASIC code into ASM or something, to make them better/faster? I understand that at some point in the execution of any non-machine programming language, such as basic and higher level languages like object oriented programming languages, the program must be converted either to hex or binary in order to be executed. Obviously, a code that is translated all at once will run much more smoothly/faster after that initial tokenization, while a program that is translated line by line, with each command, will be much slower. I was under the impression that TI-BASIC programs in particular are translated line by line, & that this part of the reason why TI-BASIC is such a slow programming language. Is the purpose of a shell then to convert the entire code, all at once, into the assembly code, or is it something else? Please help.