Malloka variablo
En programlingvoj, malloka variablo estas variablo deklarita ekster ĉiu subprogramo aŭ klaso, variablo kies regiono estas la tuta komputila programo.
Mallokajn variablojn oni povas uzi anstataŭ parametrojn de subprogramoj, por provizi al tiuj argumentojn kaj ricevi de ili rezultojn. Tio estas malaprobata praktiko, kiu malklarigas la programon.
Pli pravigebla estas uzado de mallokaj variabloj en programpartoj kiuj malhavas malimplicajn vokojn, kiaj estas signaltraktiloj aŭ plenumfadenoj.
Ekzemplo
Jen estas ekzempla programo en esperantigita Paskala pseŭdokodo.
⚓ La programo manipulas stakon (inversvican memoron); la variabloj Stako
kaj pinto
estas mallokaj kaj kune manipulataj de la antingaj proceduroj kaj funkcioj. Male, la «aplika» proceduro TienReen
entenas lokan variablon i
.
programo P; konst stakkapacito = 100; tipo datumo = 0 .. MaksEnt; var Stako : tabelo [1 .. stakkapacito] el datumo; {malloka} pinto : 0 .. stakkapacito; {pinto estas ankoraŭ unu malloka variablo} proceduro preparuStakon; starto pinto := 0 fino; funkcio malplenas : bulea; starto malplenas := (pinto = 0) fino; funkcio troo: bulea; starto troo := (pinto+1 = stakkapacito) fino; funkcio elstakigu : entjera; starto se malplenas tiam elstakigu := -1 alie starto elstakigu := Stako[pinto]; pinto := pinto - 1; fino; fino; proceduro surstakigu(d : datumo); starto se ne troo tiam starto pinto := pinto + 1; Stako[pinto] := d; fino; fino; proceduro TienReen; {ĉi tiu estas proceduro kiu "aplikas" la ĉi-suprajn} var i: entjera; {i estas loka en TienReen} starto por i := 1 supre 7 faru surstakigu(i); por i := 1 supre 7 faru skribu(elstakigu:2); skribuLin; fino; starto {de la programo} preparuStakon; TienReen; fino.
(La korpo de la programo entenas vokon de la proceduro TienReen
, kiu unue surstakigas la vicon de 1 2 ... 7 kaj poste deprenas ilin — en la inversa ordo — kaj printas 7 6 5 4 3 2 1.)