Beim Erzeugen eines LLM durch den BINDER kann der Benutzer festlegen, ob Slices nach dem Attribut PUBLIC gebildet werden sollen. Das LLM wird dann in zwei Teile (Slices) aufgespalten, die beide das Format eines einfachen LLMs haben. Die Slice mit den CSECTs mit dem Attribut PUBLIC=YES kann als Shared Code geladen werden. Die andere Slice, in der alle CSECTs mit dem Attribut PUBLIC=NO zusammengefasst sind, ist nur im tasklokalen Benutzerspeicher ladbar und bildet den privaten Teil des LLM.
Der DBL lädt nur den PUBLIC-Teil des LLM, wenn das LLM mit DSSM als unprivilegiertes Subsystem oder mit dem ASHARE-Makro geladen wird.
Beim Laden des LLM mit den Kommandos START/LOAD-EXECUTABLE-PROGRAM (bzw. START/LOAD-PROGRAM) oder mit dem BIND-Makro wird zuerst der private Teil des LLM geladen. Enthält der private Teil Externverweise auf den PUBLIC-Teil, dann können zwei Fälle eintreten:
Der PUBLIC-Teil des LLM war bereits im Shared-Code-Speicher geladen. Die Externverweise im privaten Teil werden durch den Shared Code befriedigt.
Der PUBLIC-Teil befand sich noch nicht im Shared-Code-Speicher und wird als privater Code in den tasklokalen Benutzerspeicher geladen. Dasselbe passiert, wenn der Benutzer SHARE[-SCOPE]=NONE im Ladeaufruf angegeben hat und den PUBLIC-Teil nicht als Shared Code nutzen will.
Beim Laden des privaten Teils eines LLM, in dem Externverweise auf den PUBLIC-Teil auftreten, überprüft der DBL, ob auch wirklich beide Teile zu ein- und demselben LLM gehören. Ist das nicht der Fall, dann wird der PUBLIC-Teil des LLM als privater Code in den tasklokalen Benutzerspeicher geladen.
Soll der PUBLIC-Teil des LLM über das DSSM geladen werden, so muss der Benutzer bereits im BINDER-Lauf in den Anweisungen START-LLM-CREATION oder MODIFY-LLM ATTRIBUTES die Liste der SUBSYSTEM-ENTRIES angeben, die nach außen hin für den PUBLIC-Teil des LLM bekannt sein sollen. Diese Möglichkeit besteht ab BINDER V1.1A.