Четверг, 25.04.2024, 15:06
Приветствую Вас Гость | RSS | PDA

Всё для студента информата

Полезная информация

Материалы для студента

Всё для студента IT » Материалы для студента » Теория языков программирования

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

Виртуальные компьютеры и время связывания

Итак, требуемый компьютер можно сконструировать следующим образом.

  1. Путем АППАРАТНОЙ реализации, когда структуры данных и алгоритмы непосредственно представлены физическими устройствами.
  2. Путем ПРОГРАММНО-АППАРАТНОЙ реализации, когда структуры данных и алгоритмы представлены микропрограммами, которые выполняются на соответствующем микропрограммируемом  аппаратном компьютере.
  3. Как ВИРТУАЛЬНЫЙ компьютер, то есть путем моделирования структур данных и алгоритмов программами, написанными на каком-либо другом языке программирования.
  4. Посредством комбинации перечисленных методов, когда некоторые части требуемого компьютера реализованы аппаратным способом, другие программно-аппаратным, третьи при помощи программного моделирования, то есть виртуальным способом.

При реализации ЯП структуры данных и алгоритмы, задействованные при выполнении программы, определяют некоторую вычислительную машину (компьютер). Поскольку этот компьютер всегда моделируется программным образом, он называется ВИРТУАЛЬНЫМ КОМПЬЮТЕРОМ, ОПРЕДЕЛЯЕМЫМ  РЕАЛИЗАЦИЕЙ ЯЗЫКА. Машинным языком этого виртуального компьютера будет являться выполняемая программа, выдаваемая транслятором этого языка. Если язык компилируемый, эта программа может состоять из машинных команд реального компьютера; она может быть представлена произвольной структурой данных, если язык интерпретируемый.
Далее, структурами данных этого виртуального компьютера являются структуры данных, которые используются при выполнении программы. Примитивные операции – это те операции, которые действительно используются аппаратным компьютером при выполнении программы. Аналогично, структуры управления последовательностью действий, данными и памятью – это те же структуры, которые используются при выполнении программы, независимо от того, поддерживаются ли они аппаратной частью, микропрограммами или смоделированы программным способом.

Виртуальные компьютеры и реализация языка

Если бы ЯП определялись в терминах своих виртуальных компьютеров, так что каждый язык ассоциировался с некоторым однозначно определенным и понимаемым компьютером, то описание семантики языка в терминах виртуального компьютера было бы очевидным. Но в действительности языки обычно определяются путем ИНДИВИДУАЛЬНОГО ЗАДАНИЯ СЕМАНТИКИ ДЛЯ КАЖДОЙ СВОЕЙ СИНТАКСИЧЕСКОЙ КОНСТРУКЦИИ, поэтому определение виртуального базового компьютера осуществляется только неявным образом.
Каждый раз, когда ЯП реализуется на новом компьютере, разработчик видит нескольно иной виртуальный компьютер в определении того же самого языка. Таким образом, две различные реализации одного и того же ЯП могут использовать различные структуры данных и различные наборы операций. Например, целочисленная переменная может быть сразу помещена в область памяти без дополнительного указания о ее типе, а в другой  реализации прежде сохраняется тип переменной, а затем по ссылке можно обратится к самому значению переменной и преобразовать его к обязательному объявленному типу.
Таким образом, различия в реализации одного и того же языка объясняются следующими факторами:

  1. Разные разработчики могут иметь различные мнения о том, как должен быть устроен виртуальный компьютер, неявно определенный данным ЯП.
  2. Различные базовые компьютеры, на котором реализуется язык, предоставляют различные возможности.
  3. Каждый разработчик выбирает собственные решения для реализации элементов виртуального компьютера, используя возможности, предоставляемые базовым компьютером, и для конструирования транслятора таким образом, чтобы он поддерживал выбранные решения для предоставления виртуального компьютера.

Похожие статьи:

Не нашли то, что Вам нужно?.. Найдите ответ на форуме!
Категория: Теория языков программирования | Добавил: admin (15.04.2011)
Просмотров: 875 | Теги: лекция, Тяп
Сообщество
Помощь
Форма входа
Поиск

Студенческий помощник по информатике © 2024
При цитировании материалов данного сайта, обязательна ссылка на источник: ITstudents.ru



>