У этого термина существуют и другие значения, см. Инструкция.
В информатике термин инструкция обозначает одну отдельную операцию процессора, определённую системой команд. В более широком понимании, «инструкцией» может быть любое представление элемента исполнимой программы, такой как байт-код.
В традиционных архитектурах инструкция включает код операции, определяющий выполнение этой операции, как например, «добавить содержимое памяти в регистр», ноль или больше определений операндов, которые могут описывать регистры, расположение в памяти или символьные данные. Определения операндов могут содержать методы адресации, указывающие их значение, или находится в фиксированных полях.
В архитектуре VLIW (very long instruction word — очень длинная машинная команда), которая может включать в себя микрокоды, множество одновеременно исполняемых операций и операнды определяются в одной инструкции.
Размер или длина инструкции может изменяться в довольно широких пределах, от маленьких, размером в 4 бита в некоторых микроконтроллерах, и до инструкций размером в многие сотни бит, как в некоторых VLIW системах. Большинство современных процессоров, используемых в персональных компьютерах, мейнфреймах и суперкомпьютерах, имеют инструкции размером от 16 до 64 бит. В некоторых архитектурах, в основном типа RISC, инструкции имеют фиксированную длину, обычно сравнимую с размером машинного слова этой архитектуры. В остальных архитектурах, инструкции имеют переменную длину, обычно целое множество байт или полуслов.
Инструкции, составляющие программу, редко определяются при помощи их внутренней числовой формы; они могут определяться программистами с помощью языка ассемблера или, в более общем виде, могут генерироваться компиляторами.
См. также
- Команда (программирование)
- Данные (вычислительная техника)
- Машинный код
В информатике термин инструкция обозначает одну отдельную операцию процессора, определённую системой команд. В более широком понимании, «инструкцией» может быть любое представление элемента исполнимой программы, такой как байт-код.
В традиционных архитектурах инструкция включает код операции, определяющий выполнение этой операции, как например, «добавить содержимое памяти в регистр», ноль или больше определений операндов, которые могут описывать регистры, расположение в памяти или символьные данные. Определения операндов могут содержать методы адресации, указывающие их значение, или находится в фиксированных полях.
В архитектуре VLIW (very long instruction word — очень длинная машинная команда), которая может включать в себя микрокоды, множество одновременно исполняемых операций и операнды определяются в одной инструкции.
Размер или длина инструкции может изменяться в довольно широких пределах, от маленьких, размером в 4 бита в некоторых микроконтроллерах, и до инструкций размером в многие сотни бит, как в некоторых VLIW системах. Большинство современных процессоров, используемых в персональных компьютерах, мейнфреймах и суперкомпьютерах, имеют инструкции размером от 16 до 64 бит. В некоторых архитектурах, в основном типа RISC, инструкции имеют фиксированную длину, обычно сравнимую с размером машинного слова этой архитектуры. В остальных архитектурах, инструкции имеют переменную длину, обычно целое множество байт или полуслов.
Инструкции, составляющие программу, редко определяются при помощи их внутренней числовой формы; они могут определяться программистами с помощью языка ассемблера или, в более общем виде, могут генерироваться компиляторами.
См. также
- Команда (программирование)
- Данные (вычислительная техника)
- Машинный код
Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером
Выражения и инструкции
—
Введение в программирование
Видео может быть заблокировано из-за расширений браузера. В статье вы найдете решение этой проблемы.
Транскрипт урока
Взгляните на эту простую строчку кода:
const x = 5;
Вы точно знаете, что в ней происходит, верно? Создадим новую константу x
, зададим ей значение 5. Ничего особенного тут нет.
Вот другая строчка кода:
const y = getAnswer();
Создадим новую константу y
, зададим ей то значение, которое возвращает функция getAnswer
. Теперь представьте, что getAnswer
— это на самом деле невероятно сложная функция с миллионом строчек кода и потребуется 12 лет для её вычисления.
Насколько отличаются эти строчки? Оказывается, в информатике более важный и полезный вопрос: «насколько они схожи?».
И ответ, конечно — «всё относительно».
Если вы рассуждаете о том, что действительно, буквально, происходит — они вообще не похожи друг на друга. Одна устанавливает числовое значение, другая вызывает какую-то функцию. А мы уже хорошо понимаем, что это разные вещи. Мы знакомы с функциями, аргументами и всем, что связано с функциями.
Но иногда полезно оперировать другими понятиями, на другом уровне. Конечно, бегать и управлять самолётом — это очень разные виды активности, но на определённом уровне они подобны — и та и другая подразумевают передвижение из одной точки в другую.
Эти две строчки подобны, потому что справа от знака равно в обоих случаях находится выражение. Выражение — это фрагмент кода, который превращается в значение. Другими словами — становится значением. Да, знаю, 5
— это уже значение, но для интерпретатора JavaScript это выражение, которое превращается в значение 5
. Другое выражение, которое превращается в значение 5
— это, например, 2 + 3
.
Вызов функции getAnswer()
— это тоже выражение, потому что функция что-то возвращает. Этот вызов будет заменён на значение, которое она возвращает. Другими словами, вызов функции превратится в значение, а поэтому он является выражением.
Не всё в коде становится значением. Так что не всё в коде — это выражение, хотя большая часть его — именно выражения.
JavaScript различает выражения и инструкции. Инструкция — это команда, действие. Помните условие с if
, циклы с while
и for
— всё это — инструкции, потому что они только производят и контролируют действия, но не становятся значениями.
Это что, какие-то мутные технические термины из учебников? Может так показаться, но в реальности очень важно понимать и видеть разницу между выражениями и инструкциями.
Это помогает правильно понимать процесс вычисления и выполнения программы. Посмотрите на пример:
12 + square(7 + 5) + square(square(2));
Это выражение состоит из нескольких подвыражений.
Первое — 12
— выражается в 12
. Следующее состоит из множества подвыражений:
7
выражается в7
5
выражается в5
7
+5
выражается в12
square(12)
выражается в144
К этому моменту в процессе JavaScript видит такую картинку:
12 + 144 + square(square(2));
Это еще не конец, остались необработанные выражения. Это будет продолжаться пока всё выражение не превратится в единое значение.
square(square(2))
решается таким способом:
2
выражается в2
square(2)
выражается в4
square(4)
выражается в16
Давайте заглянем в мозг интерпретатора снова:
12 + 144 + 16;
Все внутренние выражения решены, так что теперь сложение происходит в два шага:
12 + 144 + 16;
156 + 16;
172;
Теперь решено всё выражение.
Кстати, оператор сложения имеет левую ассоциативность. Это значит, что в случае с составными сложениями процесс пойдёт слева направо, вот почему мы вначале видим 12 + 144, а потом 156 + 16.
Вы не можете ставить инструкции там, где должны быть выражения. Например, передача инструкции const
как аргумента функции приведёт к ошибке. Как и попытка присвоить инструкцию if
переменной. Подобное просто не имеет смысла в этом языке, потому что в таких случаях предполагаются только выражения:
console.log(const x); // error!
let b = if (x > 10) { return 100; }; // error!
Зная такие вещи, вы скоро обретёте две важные суперспособности:
- Вы будете способны замечать, что большая часть кода, даже та функция из миллиона строк на двенадцать лет, это просто горсть безделушек, которые становятся значениями.
- Вы будете способны замечать, что иногда код просто не будет работать, потому что он не имеет смысла в контексте выражений и инструкций.
Выводы
Выражением (expression) является любой корректный блок кода, который возвращает значение.
Ниже 5
это expression, оно выражается в значение 5
:
const x = 5;
Ниже getAnswer()
— это вызов функции — другое выражение. Этот вызов возвращает значение, то есть этот вызов функции выразится в значение:
const y = getAnswer();
Ниже пример выражения, которое состоит из нескольких подвыражений, и пошаговый процесс превращения каждого выражения по порядку, пока целое выражение не превратится в одно значение:
12 + square(7 + 5) + square(square(2));
12 + square(12) + square(square(2));
12 + 144 + square(square(2));
12 + 144 + square(4);
12 + 144 + 16;
156 + 16;
172;
JavaScript различает выражения (expressions) и инструкции (statements). Инструкция — это (грубо говоря) команда, действие.
if
, while
, for
, const
— примеры инструкций. Они производят или контролируют действия, но не превращаются в значения.
Дополнительные материалы
- Выражения / Mozilla Developer Network
- Приоритет операторов
- Expressions / Mozilla Developer Network
- Expressions versus statements in JavaScript
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
-
130 курсов, 2000+ часов теории -
1000 практических заданий в браузере -
360 000 студентов
Наши выпускники работают в компаниях:
Инструкция (информатика)
В вычислительной технике инструкция представляет собой единую операцию процессора, определяемую набором команд процессора.
Размер или длина команды варьируется в широких пределах, от всего 4 бит в некоторых микроконтроллерах до нескольких байт в некоторых системах с очень длинными командами слова (VLIW). Большинство современных процессоров, используемых в персональных компьютерах, мейнфреймах и суперкомпьютерах, имеют размер инструкций от 16 до 64 бит. В некоторых архитектурах, особенно в компьютерах с сокращенным набором команд, инструкции имеют фиксированную длину, обычно соответствующую размеру слова этой архитектуры.
На традиционных архитектурах инструкция включает в себя опкод, указывающий выполняемую операцию, например, «добавить содержимое памяти в регистр», и нулевой или более спецификаторов операндов, которые могут указывать регистры, ячейки памяти или буквальные данные. Спецификаторы операндов могут иметь режимы адресации, определяющие их значение, или могут находиться в фиксированных полях.
В VLIW-архитектурах, включающих множество микрокодов, несколько одновременных операций и операндов задаются в одной команде.
Инструкции редко задаются в форме машинного кода; они могут быть заданы программистами, использующими языкассемблера, или, что более распространено, могут быть сгенерированы компиляторами.
Есть еще одно более общее определение «инструкции», относящееся не только к наборуинструкций процессора: Инструкция» может быть любым представлением элемента исполняемой компьютерной программы.
Вопросы и ответы
В: Что такое инструкция по информатике?
О: Инструкция в информатике — это одна операция процессора, определяемая набором инструкций процессора.
В: Какой длины могут быть инструкции?
О: Размер или длина инструкции варьируется в широких пределах: от 4 бит в некоторых микроконтроллерах до нескольких байт в некоторых системах с очень длинным словом инструкции (VLIW). Большинство современных процессоров, используемых в персональных компьютерах, мейнфреймах и суперкомпьютерах, имеют размер инструкции от 16 до 64 бит. В некоторых архитектурах, особенно в Reduced Instruction Set Computers (RISC), инструкции имеют фиксированную длину, обычно соответствующую размеру слова этой архитектуры.
В: Что включает в себя инструкция?
О: Инструкция включает в себя опкод, определяющий выполняемую операцию, например, «добавить содержимое памяти в регистр», и ноль или более спецификаторов операндов, которые могут определять регистры, места в памяти или литеральные данные. Спецификаторы операндов могут иметь режимы адресации, определяющие их значение, или могут находиться в фиксированных полях. В архитектурах VLIW несколько одновременных операций и операндов указываются в одной инструкции.
В: Как обычно указываются инструкции?
О: Инструкции редко задаются в виде машинного кода; они могут быть заданы программистами с помощью языка ассемблера или, чаще всего, генерируются компиляторами.
В: Есть ли другое определение для «инструкции»?
О: Да, существует другое, более общее определение для «инструкции», связанное не только с набором инструкций процессора, которое представляет собой любое представление элемента исполняемой компьютерной программы.
В: Все ли инструкции имеют одинаковый размер?
О: Нет, размер или длина инструкций сильно варьируется в зависимости от типа используемого процессора, начиная от 4-бит до нескольких байт для VLIW систем, при этом большинство современных процессоров имеют размер от 16 до 64 бит, в то время как RISC архитектуры обычно имеют инструкции фиксированной длины, соответствующей размеру слова этой архитектуры.
поделиться знаниями или
запомнить страничку
- Все категории
-
экономические
43,679 -
гуманитарные
33,657 -
юридические
17,917 -
школьный раздел
612,462 -
разное
16,911
Популярное на сайте:
Как быстро выучить стихотворение наизусть? Запоминание стихов является стандартным заданием во многих школах.
Как научится читать по диагонали? Скорость чтения зависит от скорости восприятия каждого отдельного слова в тексте.
Как быстро и эффективно исправить почерк? Люди часто предполагают, что каллиграфия и почерк являются синонимами, но это не так.
Как научится говорить грамотно и правильно? Общение на хорошем, уверенном и естественном русском языке является достижимой целью.