пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Виртуальные машины и трансляция языков.

Виртуальная машина (VМ, от англ. virtual machine) — программная и/или аппаратная система, эмулирующая аппаратное обеспечение некоторой платформы (target — целевая, или гостевая платформа) и исполняющая программы для target-платформы на host-платформе (host — хост-платформа, платформа-хозяин) или виртуализирующая некоторую платформу и создающая на ней среды, изолирующие друг от друга программы и даже операционные системы (см.: песочница); также спецификация некоторой вычислительной среды (например: «виртуальная машина языка программирования Си»).

Виртуальная машина исполняет некоторый машинно-независимый код (например, байт-кодшитый кодp-код) или машинный код реального процессора. Помимо процессора, ВМ может эмулировать работу как отдельных компонентов аппаратного обеспечения, так и целого реального компьютера (включая BIOSоперативную памятьжёсткий диск и другие периферийные устройства). В последнем случае в ВМ, как и на реальный компьютер, можно устанавливать операционные системы (например, Windows можно запускать в виртуальной машине под Linux или наоборот). На одном компьютере может функционировать несколько виртуальных машин (это может использоваться для имитации нескольких серверов на одном реальном сервере с целью оптимизации использования ресурсов сервера).

Виртуальные машины могут использоваться для:

  • защиты информации и ограничения возможностей программ (см.: песочница);
  • исследования производительности ПО или новой компьютерной архитектуры;
  • эмуляции различных архитектур (например, эмулятор игровой приставки);
  • оптимизации использования ресурсов мейнфреймов и прочих мощных компьютеров (см., например: IBM eServer);
  • вредоносного кода для управления инфицированной системой: вирус PMBS, обнаруженный в 1993 году, а также руткит SubVirt, созданный в 2006 году в Microsoft Research, создавали виртуальную систему, которой ограничивался пользователь и все защитные программы (антивирусы и прочие).[2]
  • моделирования информационных систем с клиент-серверной архитектурой на одной ЭВМ (эмуляция компьютерной сети с помощью нескольких виртуальных машин).
  • упрощения управления кластерами — виртуальные машины могут просто мигрировать с одной физической машины на другую во время работы.
  • тестирования и отладки системного программного обеспечения;

http://koi.tspu.ru/koi_books/stas/    Транслятором называется программа, обрабатывающая текст на некотором входном языке. Наиболее распространёнными видами трансляторов для языков программирования являются компиляторы и интерпретаторы

Любой транслятор выполняет следующие основные задачи:

- анализирует транслируемую программу, в частности определяет, содержит ли она синтаксические ошибки;

- генерирует выходную программу (ее часто называют объектной) на языке машинных команд;

- распределяет память для объектной программы.

Компиляторы переводят текст программы с языка высокого уровня на язык низкого уровня – машинный код.

Интерпретаторы переводят текст программы с языка высокого уровня на язык команд некоторой абстрактной машины, программная реализация которой, как правило, входит в интерпретатор. 

Анализирующая часть синтаксически управляемого транслятора состоит из лексическогосинтаксического и контекстного анализаторов.

Лексический анализатор преобразует входной символьный поток в последовательность более крупных единиц –  лексем. Например, текст из 14 символов (включая пробелы)

"x1-3.5+x2 <> y" 

преобразуется в последовательность из 7 лексем

[id(x1),`-,n(3.5),`+,id(x2),'<>',id(y)].

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

 


22.06.2017; 13:47
хиты: 134
рейтинг:0
Точные науки
информатика
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь