Язык примитивный

В вычислительной технике языковые примитивы — это самые простые элементы, доступные в языке программирования . Примитив — это наименьшая «единица обработки», доступная программисту данной машины, или он может быть атомарным элементом выражения на языке.
Примитивы — это единицы, обладающие смыслом, т. е. семантическим значением в языке. Таким образом, они отличаются от токенов синтаксического анализатора , которые являются минимальными элементами синтаксиса .
Типы примитивов [ править ]
Примитивы машинного уровня [ править ]
Машинная инструкция , обычно генерируемая программой на ассемблере , часто считается наименьшей единицей обработки, хотя это не всегда так. Обычно он выполняет то, что воспринимается как одна операция, например копирование байта или строки байтов из одной области памяти компьютера в другую или добавление одного регистра процессора в другой.
Примитивы микрокода [ править ]
Однако многие из сегодняшних компьютеров на самом деле воплощают в себе еще более низкую единицу обработки, известную как микрокод , которая интерпретирует машинный код , и именно тогда инструкции микрокода станут подлинными примитивами. Эти инструкции обычно доступны для изменения только оборудования программистам поставщика .
Примитивы языка высокого уровня [ править ]
Программа на языке программирования высокого уровня (HLL) состоит из дискретных операторов и примитивных типов данных , которые также могут восприниматься как выполняющие одну операцию или представляющие один элемент данных, но на более высоком семантическом уровне, чем те, которые предоставляются машиной. Копирование элемента данных из одного места в другое может фактически включать в себя множество машинных инструкций , которые, например,
- вычислить адрес обоих операндов в памяти на основе их позиций в структуре данных ,
- конвертировать из одного типа данных в другой
прежде чем наконец
- выполнение последней операции сохранения в целевой пункт назначения.
Некоторые операторы HLL, особенно те, которые включают циклы , могут генерировать тысячи или даже миллионы примитивов на языке программирования низкого уровня (LLL), которые включают в себя подлинную длину пути инструкции, которую процессор должен выполнить на самом низком уровне. Это восприятие было названо штрафом за абстракцию . [1] [2] [3]
Примитивы интерпретируемого языка [ править ]
Оператор интерпретируемого языка имеет сходство с примитивами HLL, но с дополнительным добавленным слоем . Прежде чем оператор может быть выполнен способом, очень похожим на оператор HLL: он должен сначала быть обработан интерпретатором — процессом, который может включать в себя множество примитивов на целевом машинном языке.
поколений и пятого четвертого Языковые примитивы
Языки программирования четвертого поколения (4GL) и языки программирования пятого поколения (5GL) не имеют простого соответствия «один ко многим» между примитивами высокого и низкого уровня. Существуют некоторые элементы примитивов интерпретируемого языка, воплощенные в спецификациях 4GL и 5GL, но подход к исходной проблеме не является процедурной языковой конструкцией и больше ориентирован на решение проблем и системное проектирование .
См. также [ править ]
Ссылки [ править ]
- ^ Сурана П. (2006). «Метакомпиляция языковых абстракций» (PDF) . Архивировано (PDF) из оригинала 17 февраля 2015 г. Проверено 17 марта 2008 г.
- ^ Кукетаев. «Бенчмарк штрафа за абстракцию данных (DAP) для небольших объектов в Java» . Архивировано из оригинала 11 января 2009 г. Проверено 17 марта 2008 г.
- ^ Хацигеоргиу; Стефанидес (2002). «Оценка производительности и возможностей объектно-ориентированных и процедурных языков программирования». В Блибергере; Штромайер (ред.). Материалы - 7-я Международная конференция по надежным программным технологиям - Ada-Europe'2002 . Спрингер. п. 367. ИСБН 978-3-540-43784-0 .