Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
slaid_3_portal_2011.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
553.98 Кб
Скачать

Уникнення суворої типізації

Розглянемо один спосіб уникнення суворої типізації шляхом застосування нетипізованих вказівних змінних.

Умови:

U1, U2 – позначення типізованих вказівних змінних різних типів;

R – позначення простій змінної типу, відмінного від типу змінної U2;

Р – нетипізована вказівна змінна;

type's U2 – явне зведення типу (до типу змінної U2).

Завдання:

Необхідно виконати оператори присвоювання такого виду:

у мові Pascal:

U2 := U1;

або

U2 := @R;

у мові C:

U2 = U1;

або

U2 = &R; .

Згідно з суворої типізацією мов виконати такі оператори присвоювання неможливо через різнотипності змінних U1, U2 та U2 і R. Уникнути суворої типізації можна в такий спосіб:

У мові Pascal:

Р := U1;

або

Р := @R;

і далі

U2 := Р;

У мові С:

Р = U1;

або

Р = &R;

і далі

U2 = (typ`s U2)Р;

Отже, для уникнення суворої типізації використовується нетипізована вказівна змінна Р, значенням вмісту якої є адреса.

Існування та дія програмних об'єктів

Програмні об'єкти (літерал, константа, змінна, вираз) вводяться в дію за допомогою опису, який містить усю інформацію, необхідну для їх створення.

Для деяких об'єктів (константа, змінна) опис може називатися оголошенням (declation).

Після обробки опису транслятором програмний об'єкт починає своє існування в програмі.

Період існування та область дії

Період існування (existence time) описаного програмного об'єкту – це час, протягом якого оголошений об'єкт існує у програмі. Період існування, з одного боку, обмежується моментом створення об'єкта, а з іншого – моментом його знищення.

Область дії (scope) описаного програмного об'єкту – це той простір програми, в якому об'єкт доступний для використання. Цим простором може бути вся програма або її окремі частини. У першому випадку об'єкт є глобальним (global object) у програмі, а у другому - локальним (local object) у тій частині програми, де він діє.

Блок

Блок (block) – це обмежена спеціальними роздільниками (відокремлювачами) частина програми, яка неодмінно містить описи об'єктів. Як відокремлювачі блока в алголоподібних мовах зазвичай використовувалися позначення begin, end. Проте в мові С з цією метою використовуються позначення “{ “ і “}”. У сучасних мовах програмування блоки є основою закритих підпрограм, модулів і пакетів. Мови програмування, що ґрунтуються на понятті блока, називаються блок-орієнтированими мовами (block oriented language).

Нумерація, номер і глибина вкладеності блока

Нумерація блоку (numeration) – це набір чисел, відокремлених крапками. При цьому (n–1), де n – кількість чисел в наборі – це число дорівнює кількісті блоків, що охоплюють даний блок.

Останнє число в нумерації дорівнює порядковому номеру блока, або номеру блока. Передостаннє число вказує на номер охопного блока.

Перше число в нумерації, зазвичай дорівнює одиниці, що являє собою номер блока, що подає всю програму. Кількість чисел у нумерації називається глибиною вкладеності блоків.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]