Вопрос 14. Понятие семантического разрыва

По существу большинство современных ПЭВМ являются машинами фон Неймана. Вычислительной машине с архитектурой фон Неймана присущи следующие характеристики:

  1. Единственная последовательно адресуемая память. Программы и данные хранятся в одной памяти, адреса областей которой составляют последовательность типа 0, 1, 2...
  2. Память является линейной. Она одномерна, т.е. имеет вид вектора слов.
  3. Отсутствует явное различие между командами и данными. Их идентифицируют неявным способом при выполнении операций.
  4. Назначение данных не является их неотъемлемой составной частью. Набор битов может быть символьной строкой или числом с плавающей точкой.

Хотя архитектура фон Неймана была логичным решением проблемы создания первой машины с запоминаемой программой, она не всегда удовлетворяет требованиям, которые предъявляются к программам, написанным на языках высокого уровня. В отличие от перечисленных выше характеристик языки программирования высокого уровня имеют следующие характеристики:

  1. Память состоит из набора дискретных именуемых переменных.
  2. Используются многомерные, а не просто линейные данные.
  3. Существует резкое разграничение между данными и командами.
  4. Назначение данных является внутренней частью самих данных, т.е. связано с самими данными; тип данных определяет и операции, выполняемые над ними.

Машина фон Неймана оказывается плохим средством для выполнения программ, написанных на языках высокого уровня по следующим причинам:

  1. Чрезмерный расход программных средств с целью согласования возможностей языка со структурой памяти по фон Нейману.
  2. Машина фон Неймана универсальна (адресация к чему угодно в памяти и т.д.). Универсальность отсутствует в языках программирования, следовательно, компилятор решает эту проблему.
  3. В силу относительной примитивности принципа организации памяти по фон Нейману операции (набор команд), выполняемые машиной, оказываются в равной мере примитивными.

Итак, принципы, на которых основывается архитектура фон Неймана, не согласуются с принципами языков программирования и иногда даже противоречат им. Факт различия принципов, лежащих в основе языков программирования высокого уровня и тех принципов, которые определяют архитектуру ЭВМ, называется семантическим разрывом. Семантический разрыв - это мера различия принципов, лежащих в основе языков программирования высокого уровня, и тех принципов, которые определяют архитектуру ЭВМ. Одной из дополнительных причин семантического разрыва является использование двоичной арифметики:

  • Современные вычислительные системы вынуждены затрачивать много времени на десятично-двоичные преобразования.
  • Двоичные числа конечной длины - это лишь аппроксимация десятичных чисел (например, дробные десятичные числа). Чтобы понять наличие семантического разрыва, нужно выбрать какой-либо язык и архитектуру ПЭВМ, и изучить взаимосвязи между ними.

results matching ""

    No results matching ""