The term "parameter passing mechanism" refers to the way in which data is passed to a subprogram. BASIC supports three parameter passing mechanisms with the following BY clauses: BY VALUE, BY REF, and BY DESC. By default, BASIC passes and receives scalar numeric data by reference, and strings and arrays by descriptor. All BASIC FUNCTION and SUB subprograms receive parameters BY REF or BY DESC. If a program consists entirely of BASIC program modules, you should not specify any parameter passing mechanism. However, other programming languages may not pass or receive parameters in the same way. You may have to specify a parameter passing mechanism when calling non-BASIC programs.