compilator Pascal generează segment de cod care stochează programul sub formă de instrucțiuni mașină, segmentul de date în care memoria este alocată în cadrul segmentului la nivel mondial variabile de program și stiva, concepute pentru a se potrivi variabilele locale în timpul rulării.
Sunt numite variabilele globale. a cărui sferă de aplicare este întregul program sau bloc. Acestea sunt descrise în programul principal. Variabilele care nu au fost inițializate explicit sunt resetate la zero înainte de executarea programului. Durata de viață a variabilelor globale de la începutul programului până la finalizarea acestuia.
În interiorul subrutinelor, sunt descrise variabilele locale. Acestea sunt situate în segmentul de stivă, prin care alocarea de memorie are loc la momentul apelului subrutinei, iar eliberarea sa se află la sfârșitul subrutinei. Astfel, durata de viață a variabilelor locale este de la începutul subrutinei până la sfârșitul ei. Valorile variabilelor locale dintre două apeluri ale aceleiași subrutine nu sunt salvate și aceste variabile nu sunt anulate anterior, adică există valori arbitrare în celulele de memorie corespunzătoare.
Variabilele globale sunt disponibile oriunde în program sau în subrutine, cu excepția acelor subprograme care descriu variabile locale cu aceleași nume. Variabilele locale sunt variabile cu un domeniu de aplicare limitat în program. Acestea pot fi folosite numai în subrutina în care sunt descrise și în tot ce este inclus în el.
În consecință, nu este necesar un efort suplimentar de transfer al variabilelor globale în subrutină, deoarece acestea sunt văzute în ea într-un mod natural. Acest mod de schimb de informații între programul principal și subrutina este cel mai simplu, este și cel mai rău, așa cum se întâmplă adesea în alte situații de viață.
În plus, utilizarea variabilelor globale îngustează posibilitatea de a folosi subprograme: în cazul în care folosește numele unei variabile globale, subrutina poate lucra numai cu ea, nu cu orice variabilă de același tip, așa cum se întâmplă atunci când transferul de date prin intermediul parametrilor. Imaginați-vă cât de jenant ar fi de a utiliza proceduri și funcții standard, dacă este necesar pentru a le numim vânt și inițializa o variabilă cu numele dat!
Dacă subrutina nu utilizează variabile globale, ea devine independentă: poate fi reutilizată, plasată într-un alt program sau într-un modul separat.
Localizarea variabilelor, adică rutinele de scriere, astfel încât toate datele să fie transmise fie din exterior prin intermediul parametrilor, fie au fost descrise în interiorul subrutinei, este foarte importantă. Așa cum vom vedea mai târziu, acest principiu stă la baza încapsulării - una dintre pietrele de temelie ale programării orientate pe obiecte.