Аппаратно и программно-реализуемые типы данных

Страницы работы

Содержание работы

Лекция №2 АППАРАТНО И ПРОГРАММНО-РЕАЛИЗУЕМЫЕ ТИПЫ ДАННЫХ

Аппаратно-реализуемые типы данных

Информация - данные принятые, понятые и оцененные как полезные получателем данных. Т.е. без определения процедур использования (интерпретации) информация, представленная на любых носителях не является таковой.

Для ЭВМ в этом аспекте понимание (интерпретация) связана с правилами работы с битовыми комбинациями. Если соблюдается условие непротиворечивости, то с битовой комбинацией могут быть связаны любые смысловые значения. Например, значение x может интерпретироваться как адрес и как целое число:

x=1252

float * x;                     int x;

x = x + 1 x=1256           x=x+1  x=1253

 


Аппаратная реализация типа данных определяется методами интерпретации бытовых комбинаций, характерными для команд конкретной ЭВМ.

При создании средств программирования применительно к аппаратно-реализуемым типам данных (АРТД) принципиально важным оказывается решение двух вопросов:

- каким образом определить типы данных, т.е. разрешенные для интерпретации бытовые комбинации;

- какие типы данных использовать для интерпретации заданной бытовой комбинации.

Таким образом:

АРТД = .

Каждая ЭВМ имеет свой "родной" набор аппаратно-реализуемых     типов данных, т.е. содержит механизмы манинулирования бытовыми комбинациями в соответствии с объектами, которые ими представлены.

Примеры АРТД:

- указатели,

- целые числа,

- вещественные числа,

- десятичные числа с фиксированной точкой, и т.д.

Но для большинства специалистов по программному обеспечению в большей степени важны интерпретация типов данных с точки зрения потребностей пользователя.

Например: сложение чисел в десятичной системе счисления

13 + 15 = 28.

Здесь предпочтительно работатьс концепцией целого числа, а не с понятием бытовых комбинаций. Более того, естественно на базе концепции целых десятичных чисел строить на логическом уровне конструкции типа целочисленных массивов из кодов объектов или логических значений.

При этом с того момента, как концепцию типа данных отделена от аппаратных возможностей ЭВМ, появляется перспектива построения практически неограниченного количества структур данных.

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

Базовые вычислительные структуры алгоритмических языков.

Объекты и типы объектов

Дискретное сообщение N вместе с сопоставленной ему информацией J в дальнейшем будем называть объектом:

                                    отображение

L     

N       J

обозначение       значение

Отображение L не обязательно обратимо

0.00001

0.1Е-4       единое значение

1Е-5

На практике объекты группируются благодаря тому, что на них определен некоторый естественный процесс обработки сообщений. Например, можно определить группу объектов, над которыми определены следующие операции:

- переход к следующему числу;

- сложение;

- умножение;

- вычитание;

- деление с остатком.

Чтобы объект мог служить операндом в некотором алгоритме, он должен быть представлен конечным числом знаков из какого-либо алфавита. При этом требуется, чтобы выполнялись три принципа [ ]:

- принцип порождения - "каждый объект порождается за конечное число шагов";

- "принцип выделенных элементов" - каждый объект порождается из конечного числа элементов;

- "принцип перечислимости " - множество объектов должны быть перечисленным посредством некоторого алгоритма.

Множество объектов с однородными значениями, для которых естественным образом определена некоторая совокупность операций, называется множеством объектов определенного типа (тип данных).

Наиболее распространенные типы:

- целые (integer);

- вещественные (real);

- значения истинности (Bool);

- символы (литер) (char);

- конечные последовательности знаков (slring);

- битовые последовательности (bit) и т.д.

Вычислительная структура состоит из одного или нескольких типов объектов и некоторых основных операций над этими типами, каждая с результатом одного из этих типов.

Сигнатура вычислительной структуры: совокупность типов и операций.

Внутренние операции - операции, у которых операнды и результат относятся к одному типу.

В противном случае имеют место смешанные операции.

В качестве примера рассмотрим сигнатуру для типа целых чисел (табл. 2.1). Для этой структуры типы объектов - целые числа и логические значения.

Программная реализация вычислительной структуры в рамках компилятора алгоритмического языка позволяет интерпретировать соответствующие типы данных как базовые типы алгоритмического языка.

Переходы между типами

Наряду с общим применением символов операций для внутренних операций, например: над целыми или вещественными числами алгоритмические языки предполагают смешанные операнды. Это достигается с помощью предварительного отображения одного типа в другой (обычно обладающий большей общностью) тип.

Такую вспомогательную операцию называют неявным обобщением:

а = "СПРУТ"   в = "1"

а + в                 "СПРУТ 1"

неявное обобщение

`1` "1"

3 + 4,17             7,17

3       3.00

Таким образом, при проектировании базовых типов данных для алгоритмических языков необходимо определить сигнатуру соответствующей вычислительной структуры и возможные переходы между типами в операциях.
Таблица 2.1

Основные вычислительные операции над целыми числами

Тип операции

(операция)

Функциональный тип операции

и обозначения

Двуместные внутренние

операции

(int, int)  int

- сложение

.+.

- вычитание

.-.

- умножение

.x.

- частное

.div.

- остаток

.mod.

- минимум

.min.

- максимум

.max.

- НОД

.ged.

- НОК

.lcm.

- степень

..

Одноместные внутренние операции

(int)  int

- предшественник

.pred. (инкримент)

- приемник

.Succ. (декримент)

- удвоение

.x

- деление пополам

div

- абсолютное значение

abs

- знак

sign

- перемена знака

Предикаты:

- равно, не равно

- меньше, больше

- меньше или равно

- больше или равно

Свойство быть:

- равным нулю

- не равным нулю

- быть четным

- быть нечетным

(int, int)  Boolean

.=., < >.

.<., .>.

.<=.

.>=.

=0

0

odd

Похожие материалы

Информация о работе