Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Мини-Паскаль

(Паскаль, из которого выброшено «всё лишнее»).

Данные и сами программы хранятся в памяти. Реально существует много типов памяти: внешняя память (файлы) и оперативная, которая, в свою очередь, имеет много подтипов.

Память со случайным доступом,

Регистровая память и т.д.

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

Bit=0..1;

Byte=array[0..7] of bit;

Word=byte;

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

Goto begin

память

под

переменные

begin

Данные и программы хранятся в одной памяти, информация о структуре (типе данных) хранится в нашей собственной памяти. Все слова основной (оперативной) памяти занумерованы, номер слова называется его абсолютным адресом.

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

базовый

смещение

Это даёт возможность операционной системе разместить программу в любом свободном на этот момент участке памяти.

С точки зрения ЭВМ, вне зависимости от носителя любая информация есть последовательность слов (byte). Единственным типом нашего языка будет то, что раньше мы называли ячейками памяти – последовательности или одномерные массивы машинных слов. Этот тип мы будем называть двоичным полем. Поля задаются адресом начала поля и его длиной.

начало длина

///////////////////////////

Память в целом, конечно, - тоже двоичное поле.

{var Mem:field}

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

Близкие к машинным языкам языки ассемблера разрешают использование символьных имён полей и символьных кодировок команд (то есть язык ассемблера – ориентированная на человека форма машинного языка). В отличие от Паскаля и других языков высокого уровня имеется однозначное соответствие между командами машинного и языка ассемблера.

Конечно, все переменные – это подполе основного поля.

Пример синтаксиса: А[10] – десять машинных слов, лежащих по адресу А.

Может ли наш единственный тип заменить все типы данных? В принципиальном плане (в теории), если игнорировать конечность памяти, то, конечно, да!

Двоичный тип универсален. Любой другой тип можно смоделировать (реализовать) в нём, по крайней мере, хотя бы одним способом. На деле таких способов много. Они называются форматами (представление данных и команд).

Достаточно понять, что символьный тип можно смоделировать двоичными полями, поставив в соответствие каждому символу некоторое двоичное поле (обычно байт или два). Символьный тип универсален: любое значение любого типа имеет какую-то запись в какой-то системе обозначений.

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

Записью числа в k-ичной системе счисления называется последовательность кодов от 0 до k-1.

m n

n=∑ aiki (n=∑ ai2i – для двоичной)

i=0 i=0

Упражнение. Написать алгоритм перевода числа из k-ичной в «нормальную» (десятеричную) и обратно.

0 1 0 1=5

1*20+0*21+1*22+0*23=5

В зависимости от того, занимает ли число фиксированное или переменное количество слов, существуют фиксированные и переменные форматы. Для указания формата фиксированной длины достаточно лишь указания адреса.

Для простоты будем считать, что мы будем использовать форматьы только фиксированной длины и знать значения констант: cSizeOfInteger, cSizeOfChar, cSizeOfReal и так далее, которые измеряются в байтах.

Понятие формата определено не только для данных, но и для команд, причём для каждого формата, например, числового, имеются свои операции.

 

<== предыдущая лекция | следующая лекция ==>
Формальная семантика goto и неструктурных программ | Адресная арифметика
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 1016; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.