Skip to content

абстрактная машина

Dmitry Ponyatov edited this page Aug 19, 2019 · 7 revisions

абстрактная машина языка программирования

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

Набор команд АМ включает такие относительно высокоуровневые операции, как выделение областей памяти, ее чтение/запись с контролем типов, создание классов (для динамических языков), инициализация объектов, вызов методов, организация каналов передачи данных, передача сообщений, реализация структур управления типа циклов и условных переходов, управление процессами/потоками и т.д.

Задачи абстрактной машины:

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

Для некоторых абстрактных машин, определенных математически, возможен аналитический анализ программ:

Другие широко известные абстрактные машины:

Clone this wiki locally