Лекция 01. Тема Общая характеристика языков программирования высокого уровня


Download 4.1 Mb.
Pdf ko'rish
bet10/57
Sana12.11.2023
Hajmi4.1 Mb.
#1767546
TuriЛекция
1   ...   6   7   8   9   10   11   12   13   ...   57
Bog'liq
Lektsii po YaP Lukinova 2 sem

2.3.Тип переменной
Прежде чем рассматривать способы связывания переменной с ее типом, 
необходимо поговорить о самом понятии «тип данных», поэтому в данном 
разделе дается определение типа данных, описываются механизмы контроля 


типа и уровни типизации языка. Эти вопросы имеют особую значимость, т.к. 
определяют надежность ЯП.
Определение. Тип переменной (данных) определяет (специфицирует):

множество значений, которые может принимать переменная 
данного типа;

множество операций, определенных над объектами данного типа;

внутреннее представление данных и способ доступа к ним.
Следствие 1. Если дан новый тип, то можно описать и инициировать, т.е. 
определить значение объекта этого типа.
Следствие 2. Если даны две переменные некоторого типа, то их можно 
сравнить, по крайней мере, на равенство или неравенство.
Следствие 3. Если два типа отличаются с точки зрения указанных 
свойств, то они считаются различными.
Это определение говорит о том, что основа надежности ЯП заключается 
в возможности проверить, что любая операция, выполняемая над объектом 
данных соответствует специфицируемому типу этого объекта.
Если два типа отличаются с точки зрения перечисленных свойств, то 
они считаются различными. Например, типы 
 
Array[1..10] of real; и 
 
Array[1..11] of real;
 
различны. 
2.3.1 Контроль типов 
Определение. Проверка, обеспечивающая анализ совместимости типов 
операндов оператора, называется контролем типов. Она заключается в 
определении типов выражений и их согласованности с правилами типизации 
языка программирования.
Согласованность типов операндов может быть обеcпечена:

вручную (программист следит сам, чтобы типы были согласованы);

автоматически (с помощью функций преобразования типов или 


операций приведения типа).
Операции приведения типа могут быть:

суживающие – более широкий тип преобразуется к более узкому 
(float к типу integer);

расширяющие. Расширяющее преобразование почти всегда 
безопасно. Проблема здесь может возникнуть только в следующем. 
В некоторых реализациях целые числа имеют размер 32 бита, что 
позволяет хранить 9 значащих десятичных цифр. Если значения с 
плавающей точкой также имеют размер 32 бита, то это 7 
десятичных цифр. Поэтому точность в 2 цифры потеряется. 
Операции приведения могут быть реализованы двумя способами:

явно, с помощью специальных функций (int(x), float(x), str(x) и т.д.);

неявно, реализуется по правилам, заложенным при разработке ЯП.
В теории языков нет единого мнения об использовании приведения 
типов арифметических выражений. С одной стороны, повышается гибкость 
программ от введения всевозможных приведений, с другой – приведение 
аннулирует выгоды от проверки типов и тем самым уменьшает надежность.

Download 4.1 Mb.

Do'stlaringiz bilan baham:
1   ...   6   7   8   9   10   11   12   13   ...   57




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling