Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция1.doc
Скачиваний:
41
Добавлен:
10.12.2018
Размер:
526.34 Кб
Скачать

6.3.3. Механизмы доступа к данным

Для предоставления программисту простого и легкого доступа к различным объектам, все ЯП высокого уровня используют идентификаторы. С идентификатором компилятор однозначно сопоставляет некоторый адрес в памяти и подставляет его (адрес) в машинный код на этапе компиляции программы. Естественно по идентификатору (читай - адресу) можно произвести чтение и/или запись какого либо значения, то есть получить полный доступ к данным (стандартных типов).

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

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

Point.x = Point.y-3; //C++

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

D[3]:= D[2]+D[4]; {Pascal}

6.4. Интерфейсные механизмы

Выполнение любых алгоритмов бесполезно, если оно не сопровождается демонстрацией результатов и вводом исходных данных. Поэтому каждый ЯП, за исключением, пожалуй, С и С++, содержит специальные операторы ввода-вывода. Кроме того, вместо использования стандартных операторов ввода-вывода языка, за счет управления аппаратными средствами ЦВМ, программист может производить ввод и вывод информации более "продвинутыми" способами. Соответственно, для этого необходимы механизмы управления аппаратурой.

6.5. Механизмы управления аппаратурой

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

  • механизмы общения с ОС;

  • механизмы прямого доступа к аппаратуре.

6.6. Механизмы структуризации

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

Дальнейшее развитие данной концепции достаточно давно (около 1978 года) привело к идее объединения стуктур данных с их структурными свойствами, из чего выросла концепция объектно-ориентированного программирования. Однако, ее реализация слишком различна для разных ЯП (а в некоторых до сих пор полностью не реализована),

чтобы выносить ее в общий обзор языков программирования.

7. Типы и структуры данных

Типы и структуры данных представляют собой фундамент, на котором строится вся современная технология программирования. Программирования в широком смысле, включая не только непосредственно написание и отладку программ, но и проектирование программных систем разной сложности; проектирование, реализацию и использование баз данных и информационных систем и т.д. Сегодня только большие любители обходятся без использования безтиповых языков программирования (например, языков ассемблера) или неструктурированных и/или нетипизированных хранилищ данных во внешней памяти. В этой части книги, не прибегая к излишним формализмам и теоретическим изыскам, мы приводим систематическое обсуждение основных типов и структур данных, применяемых в современных языках программирования, а также соответствующих концепций, используемых в распространенных реляционных и перспективных объектно-реляционных системах.

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