3. Типове данни
17
3. Типове данни
Една от основните особености на езика Pascal (в сравнение с предхождащите го
езици) е концепцията за типовете. По думите на самия автор на езика (Н.Уирт в
"Алгоритми + Структури от данни = Програми") организацията на данните в езика Pascal
се основава на теорията на структурната организация на данните на Хоар (C.A.R.Hoare),
според която:
*
типът определя клас от стойности (към който може да принадлежат
константи или които могат да приемат променливи или изрази) и множество
от операции над този клас от стойности;
*
всяка стойност принадлежи на един и само на един тип;
*
типът на константа, променлива или израз може да се изведе или от
контекста, или от вида на самия операнд, но без да се използва стойността,
изчислявана по време на работа на програмата (това е условие за статични
типове данни);
*
на всяка операция съответства някакъв фиксиран тип на нейните операнди
и някакъв фиксиран тип на резултата й;
*
за всеки тип свойствата на стойностите и елементарните операции над тях
се задават с помощта на аксиоми.
При работа с език от високо ниво познаването на типа позволява на компилатора
да открива в програмата безсмислени конструкции и да решава въпроса за метода, по
който ще се представят данните, и за начина, по който ще се извършват
преобразуванията над тях в машината.
Силната типизация (типовете отговарят на изброените по-горе условия), въведена
в Pascal, е първата стъпка към абстрактните типове данни, чиято идея и реализация се
появява в по-късно разработените езици (с най-известен представител ADA).
И така, двете основни характеристики на един тип са множеството от стойности,
които принадлежат на този тип, и операциите, дефинирани над обектите от този тип.
При описанието на всички типове данни ще се опитаме да ги представим от гледна точка
на тези два основни аспекта на типа.
3.1. Прости типове данни
Към простите типове данни в Pascal се отнасят стандартните, изброимите и
диапазонните типове. При определяне на синтаксиса се въвежда клас дискретни типове
(ordinal types), съдържащ всички прости типове без реалния. Това се прави поради
честото използване на простите типове (но без реалния) при синтактичното и семантично
описание на езика.
SimpleType =
OrdinalType | RealType.
OrdinalType =
Enumerated | SubRange | StandardType.
StandardType =
'integer'  | 'shortint'  | 'longint' |
'cardinal' | 'shortcard' | 'natural' |
'boolean'  | 'char' |
'longword' | 'word' | 'byte'|.
RealType =
'real'.
За всички прости типове данни са дефинирани операциите (в повечето случаи
няма да се спираме специално на тях, но ще предполагаме наличието им): даване на
стойност (:=), отношенията за равенство (=), неравенство (<>), по-малко (<),
<<  <  GO  >  >>

Вернуться к началу сайта