Storage for a based variable can be allocated by using the ALLOCATE statement, the ALLOCATE built-in function, the AUTOMATIC built-in function, or the LOCATE statement.
A based variable can also be used to access existing data by using the READ statement (with SET option), or the FETCH statement (with SET option), or the ADDR built-in function.
Based AREA variables can be allocated using the ALLOCATE statement; PL/I automatically initializes the area to EMPTY upon allocation. However, if you obtain storage for the area variable using the ALLOCATE or the AUTOMATIC built-in function, you must assign EMPTY to the variable after obtaining the storage.