Comparison of User-Defined Function Features: Difference between revisions

From BR Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(One intermediate revision by one other user not shown)
Line 5: Line 5:
|-
|-
! rowspan="2"|Quality
! rowspan="2"|Quality
! rowspan="2"|User Defined Function
! rowspan="2"|Normal User Defined Function
! rowspan="2"|User Defined Library Function in Main Program
! rowspan="2"|User Defined Library Function in Main Program
! colspan="3"|User Defined Library Function Defined in Separate Program  
! colspan="3"|User Defined Library Function in Separate Program  
|-  
|-  
!Resident
!Resident
Line 20: Line 20:
|yes
|yes
|-
|-
|Linkage must be establishe (via LIBRARY statement) before function may be called
|Linkage must be established (via LIBRARY statement) before function may be called
|no
|no
|yes
|yes
Line 29: Line 29:
|Program may be specified in named LIBRARY statement
|Program may be specified in named LIBRARY statement
|n/a
|n/a
|yes
|no
|yes
|yes
|yes
|yes
|yes
|yes
|-
|-
|If loaded program will be searched for function when unnamed LIBRARY statement is executed
|Loaded program will be searched for function when unnamed LIBRARY statement is executed
|n/a
|n/a
|yes
|yes
Line 53: Line 53:
|When main program ends (Default). Other options available
|When main program ends (Default). Other options available
|When main program ends
|When main program ends
|When main program ends
|When function call ends
|-
|-
|Using OPTION RETAIN in the library program causes the library to retain global variables irrespective of when the program ends
|Using OPTION RETAIN in the library program causes the library to retain global variables irrespective of when the program ends
Line 62: Line 62:
|no
|no
|-
|-
|Library is loaded into memorey with the LOAD command
|Library is loaded into memory with the LOAD command
|n/a
|n/a
|n/a
|n/a
Line 76: Line 76:
|no
|no
|-
|-
|Library is automatically removed from memore when all function definitions are reassigned
|Library is automatically removed from memory when all function definitions are reassigned
|n/a
|n/a
|n/a
|n/a

Latest revision as of 11:25, 16 October 2014

The following table illustrates the similarities and differences between regular user-defined functions (non-library) and library user-defined functions.

Quality Normal User Defined Function User Defined Library Function in Main Program User Defined Library Function in Separate Program
Resident Present As Needed
LIBRARY keyword required on DEF statement no yes yes yes yes
Linkage must be established (via LIBRARY statement) before function may be called no yes yes yes yes
Program may be specified in named LIBRARY statement n/a no yes yes yes
Loaded program will be searched for function when unnamed LIBRARY statement is executed n/a yes yes yes no
Main program's global variables are available to the function no yes no no no
Point at which global variables are cleared When main program ends When main program ends When main program ends (Default). Other options available When main program ends When function call ends
Using OPTION RETAIN in the library program causes the library to retain global variables irrespective of when the program ends n/a na/a yes no no
Library is loaded into memory with the LOAD command n/a n/a yes no no
Library is cleared from memory with the CLEAR command n/a n/a yes no no
Library is automatically removed from memory when all function definitions are reassigned n/a n/a no yes n/a
Library is automatically removed from memory when main program ends n/a n/a no yes n/a