This is an old revision of this page, as edited by Titov (talk | contribs) at 20:32, 21 January 2018 (Gosub advantage: speed). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Revision as of 20:32, 21 January 2018 by Titov (talk | contribs) (Gosub advantage: speed)(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)GOSUB is a command in many versions of the BASIC computer programming language. A GOSUB statement jumps to a line elsewhere in the program. That line and the following lines up to a RETURN are used as a simple kind of a subroutine without (sometimes with) parameters or local variables.
The GOSUB command may be used to emulate functions in a BASIC dialect that does not support functions in its syntax. GOSUB is convenient for performing the same function several times in a BASIC program without duplicating the code.
According to Benoît Minisini, the developer of Gambas, the advantage of GOSUB ist speed, compared to the usage of separate methods.
RETURN
A RETURN command resumes program flow from the point at which GOSUB was invoked.
Using GOSUB too many times, as in a loop or recursively, without corresponding RETURN statements, would typically cause a stack overflow. On the other hand, when the BASIC interpreter encounters a RETURN statement without a GOSUB it will emit a RETURN WITHOUT GOSUB
error.
Computed GOSUB
A computed GOSUB statement, ON...GOSUB
, exists in some BASIC dialects. The syntax of the statement is ON x GOSUB line1, line2, ...
Computed GOSUB branches to one of several destinations based on the value of x. RETURN commands return program flow to the statement following ON..GOSUB.
Support
Not all BASIC implementations support GOSUB or ON..GOSUB. For example, in FreeBASIC GOSUB is considered as deprecated in favor of SUB/FUNCTION, and is disabled by default. In Visual Basic, GOSUB and ON..GOSUB were removed when VB.NET was released. In Gambas GOSUB as well as ON .. GOSUB were introduced in version 3.1 and 3.2.
See also
References
- "GOSUB...RETURN Statement Details". Microsoft. 1988. Retrieved 2008-07-04.
- "[Gambas-user] Can JSON.Decode be faster?". 2018. Retrieved 2018-01-20.
- "GOSUB". FBWiki. 2008-05-08. Retrieved 2008-07-04.
Gosub support is disabled by default in the -lang fblite unless the Option Gosub statement is used.
This programming-language-related article is a stub. You can help Misplaced Pages by expanding it. |