Инструкции
—
Основы PHP
- Что такое инструкция
- Выводы
В этом уроке мы изучим команду, которая указывает компьютеру, что нужно выполнить. Речь пойдет об инструкциях.
Что такое инструкция
Инструкция — это команда, которую исполняет интерпретатор PHP. Она написана на языке программирования. Ее можно сравнить с инструкцией или рецептом по приготовлению блюда:
Код на PHP — это набор инструкций, которые отделяются друг от друга символом ;.
Вот пример кода с двумя инструкциями:
<?php
print_r('Mother of Dragons. ');
print_r('Dracarys!');
// => Mother of Dragons. Dracarys!
При запуске этого кода на экран последовательно выводятся два предложения: Mother of Dragons. Dracarys!.
Инструкции можно написать последовательно друг за другом без переноса на новую строчку:
<?php
print_r('Mother of Dragons. '); print_r('Drakarys!');
// => Mother of Dragons. Dracarys!
Результат на экране будет таким же. Но такой код неудобно читать, поэтому инструкции располагают друг под другом.
Выводы
В этом уроке мы узнали, что такое инструкции в языке PHP. Это единица исполнения, а интерпретатор — программа, которая запускает код на PHP и выполняет инструкции по очереди.
Разработчики должны понимать этот порядок и уметь мысленно разделять программу на независимые части, удобные для анализа.
Дополнительные материалы
- Немного об интерпретаторах
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
-
130 курсов, 2000+ часов теории -
1000 практических заданий в браузере -
360 000 студентов
Наши выпускники работают в компаниях:
Инструкции/Операторы
Инструкция — это (грубо говоря) команда, действие, как и оператор, но вполне часто можно заметить разделение: арифметические операторы называют как не странно операторами, а вот оператор объявления функции def часто могут назвать инструкцией.
В целом же разницы между ними нет.
while True:
print(«I love you!»)
Давайте добавим еще одно определение:
Оператор — это элемент программного кода, который описывает то или иное действие в выражении (операцию). В большинстве языков программирования высокого уровня оператор — это символ, благодаря которому могут производиться различные виды вычислений, сравнений или присваиваний с участием одного или нескольких значений.
Операнд — это значение, переменная или выражение, которое расположено слева или справа от оператора.
Операторы бывают:
- Унарные: когда с оператором используется только один операнд
- Бинарные: когда с оператором используется два операнда
- Тернарные: когда с оператором используется три оператора
Во многих языках тернарный оператор один, и отвечает он за ветвлениеSOME_INT = 3
is_odd = True if SOME_INT % 2 != 0 else False
На этом изображении примеры перечислены в порядке:
- Бинарный оператор сложения
- Унарный оператор инкремента
- Тернарный оператор ветвления
Выражения
Это инструкция которая которая возвращает значение, чтобы было понятнее давайте посмотрим на такой ошибочный код:
А вот вам определение из с сайта MDN
Выражением является любой корректный блок кода, который возвращает значение.
Ну вот… вроде бы мы с вами воспользовались оператором del, но этот оператор ничего не возвращает, а значит в консоль ничего не попало. Ну и вообще вы получили SyntaxError. А вот второй пример:
print(«even» if 3 % 2 == 0 else «odd»)
В этом примере мы воспользовались тернарным оператором(<value> if <conditional> else <value>)
Комментарий
Простые, однострочные комментарии в python очень примитивные, их один вариант:
Давайте к коментариям отнесем и docstring
def foo():
«»»My awesome function»»»
pass
То что вы видите выше является объявлением функции, но есть интересная деталь в том, что если в начале тела функции встречается строчный литерал, то строка объявленная в начале будет считаться документацией(комментарием) к функции.
docstring попадает в аттрибут __doc__ функции:
Аналогично строчный литерал объявленый в начале файла будет документацией модуля.
«»»
This is very cool module!
«»»
def main():
pass
У модуля тоже есть аттрибут __doc__:
import some_module
print(some_module.__doc__)
Глобальная функция help()
Обращаться к методам с двумя подчеркиваниями считается плохим тоном, поэтому у нас есть функция help() которая вернет нам поле __doc__ объекта
Полезные ссылки
Пройдите тест, узнайте какой профессии подходите
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы
В программировании, statement – это как команда, которая говорит компьютеру, что делать, но не обязательно сообщает, что получится в итоге 🤖. Например, взять что-то и положить в коробку. В отличие от этого, expression вычисляется в конкретное значение, как решение математической задачки 🧮.
Statement решает проблему управления потоком выполнения программы и изменения её состояния. Это как рецепт, где каждый шаг ведет к созданию блюда, но сам по себе не является ингредиентом. 🍲
Знание о statement и его отличии от expression упрощает написание программ, помогая понять, как строить логику и управлять действиями в коде. Это как научиться готовить, зная не только ингредиенты, но и порядок действий. 📖✨
Пример
Давайте представим, что вы пишете программу для управления светом в доме. Ваша задача — сделать так, чтобы свет в комнате включался, когда на улице темнеет. В программировании для выполнения таких действий используются инструкции, или как их еще называют, statements.
В этом примере:
if— это условная инструкция (statement), которая проверяет, наступил ли вечер.время == "вечер"— это выражение (expression), которое оценивается либо какTrue(истина), либо какFalse(ложь).включить_свет()— это вызов функции, который является еще одним примером инструкции. Эта функция выполняет действие (в нашем случае, включает свет).
🔹 Зачем это нужно? Использование инструкций позволяет программе реагировать на различные условия и выполнять соответствующие действия. В нашем примере, благодаря условной инструкции, свет в доме будет включаться автоматически, когда наступит вечер.
🔸 Какую проблему это решает? Это делает жизнь удобнее и избавляет от необходимости помнить о мелочах, таких как включение света в вечернее время. Программа, используя простую инструкцию, автоматизирует этот процесс.
Таким образом, инструкции в программировании — это основные строительные блоки, которые позволяют программе выполнять различные действия и реагировать на изменения условий.
Основное различие между statement и expression
Statement и expression в программировании играют разные роли, хотя оба являются фундаментальными элементами кода. Основное различие между ними заключается в том, что expression всегда возвращает значение и может быть частью statement, в то время как statement выполняет действие и не обязательно возвращает значение. Это как разница между задачей (statement) и решением задачи (expression).
Виды инструкций в мире программирования
В программировании существует множество типов инструкций, каждый из которых выполняет свою уникальную функцию. Они включают в себя:
- Объявления переменных: создают новые переменные и выделяют для них место в памяти.
- Присваивание: изменяют значение переменной.
- Условные инструкции: позволяют программе выбирать между различными путями выполнения на основе определенных условий.
- Циклы: повторяют определенный блок кода до тех пор, пока не будет выполнено заданное условие.
Эти инструкции позволяют программистам создавать сложные и эффективные программы, управляя потоком выполнения и обрабатывая данные различными способами.
Синтаксис и семантика: основы понимания кода
Синтаксис в программировании относится к правилам, определяющим, как код должен быть написан, чтобы компьютер мог его понять. Это как грамматика в языке. Семантика, с другой стороны, описывает значение и поведение кода – что именно делает ваш код и как он это делает.
Понимание синтаксиса и семантики критически важно для написания эффективного и безошибочного кода. Это как знание правил и их применение для создания понятных и корректных предложений.
Практические примеры: statement в действии
Чтобы лучше понять, как работают statement в программировании, давайте рассмотрим несколько примеров:
В этих примерах мы видим, как инструкции используются для создания переменных и изменения их значений. Несмотря на то, что вторая строка содержит выражение x + 1, весь оператор присваивания является statement, поскольку он выполняет действие (изменение значения x).
Этот пример демонстрирует использование условной инструкции для выполнения кода на основе определенного условия. Здесь if x > 0 является statement, который контролирует поток выполнения программы.
Понимание различий между statement и expression и умение их использовать позволяет программистам более точно и эффективно управлять поведением своих программ. Это основа программирования, которая открывает двери к созданию сложных и мощных приложений.
From Wikipedia, the free encyclopedia
In computer programming, a statement is a syntactic unit of an imperative programming language that expresses some action to be carried out.[1] A program written in such a language is formed by a sequence of one or more statements. A statement may have internal components (e.g. expressions).
Many programming languages (e.g. Ada, Algol 60, C, Java, Pascal) make a distinction between statements and definitions/declarations. A definition or declaration specifies the data on which a program is to operate, while a statement specifies the actions to be taken with that data.
Statements which cannot contain other statements are simple; those which can contain other statements are compound.[2]
The appearance of a statement (and indeed a program) is determined by its syntax or grammar. The meaning of a statement is determined by its semantics.
Simple statements are complete in themselves; these include assignments, subroutine calls, and a few statements which may significantly affect the program flow of control (e.g. goto, return, stop/halt). In some languages, input and output, assertions, and exits are handled by special statements, while other languages use calls to predefined subroutines.
- assignment
- Fortran:
variable = expression - Pascal, Algol 60, Ada:
variable := expression; - C, C#, C++, PHP, Java:
variable = expression;
- Fortran:
- call
- Fortran:
CALL subroutine name(parameters) - C, C++, Java, PHP, Pascal, Ada:
subroutine name(parameters);
- Fortran:
- assertion
- C, C++, PHP:
assert(relational expression); - Java:
assert relational expression;
- C, C++, PHP:
- goto
- Fortran:
GOTO numbered-label - Algol 60:
goto label; - C, C++, PHP, Pascal:
goto label;
- Fortran:
- return
- Fortran:
RETURN value - C, C++, Java, PHP:
return value;
- Fortran:
- stop/halt/exit
- Fortran:
STOP number - C, C++:
exit(expression) - PHP:
exit number;
- Fortran:
Compound statements
[edit]
Compound statements may contain (sequences of) statements, nestable to any reasonable depth, and generally involve tests to decide whether or not to obey or repeat these contained statements.
-
- Notation for the following examples:
- <statement> is any single statement (could be simple or compound).
- <sequence> is any sequence of zero or more <statements>
- Some programming languages provide a general way of grouping statements together, so that any single <statement> can be replaced by a group:
- Notation for the following examples:
-
-
- Algol 60:
begin <sequence> end - Pascal:
begin <sequence> end - C, PHP, Java:
{ <sequence> }
- Algol 60:
-
-
- Other programming languages have a different special terminator on each kind of compound statement, so that one or more statements are automatically treated as a group:
- Ada:
if test then <sequence> end if;
- Ada:
- Other programming languages have a different special terminator on each kind of compound statement, so that one or more statements are automatically treated as a group:
Many compound statements are loop commands or choice commands. In theory only one of each of these types of commands is required. In practice there are various special cases which occur quite often; these may make a program easier to understand, may make programming easier, and can often be implemented much more efficiently. There are many subtleties not mentioned here; see the linked articles for details.
- count-controlled loop:
- Algol 60:
for index := 1 step 1 until limit do <statement> ; - Pascal:
for index := 1 to limit do <statement> ; - C, Java:
for ( index = 1; index <= limit; index += 1) <statement> ; - Ada:
for index in 1..limit loop <sequence> end loop - Fortran 90:
DO index = 1,limit <sequence> END DO
- Algol 60:
- condition-controlled loop with test at start of loop:
- Algol 60:
for index := expression while test do <statement> ; - Pascal:
while test do <statement> ; - C, Java:
while (test) <statement> ; - Ada:
while test loop <sequence> end loop - Fortran 90:
DO WHILE (test) <sequence> END DO
- Algol 60:
- condition-controlled loop with test at end of loop:
- Pascal:
repeat <sequence> until test; { note reversed test } - C, Java:
do { <sequence> } while (test) ; - Ada:
loop <sequence> exit when test; end loop;
- Pascal:
- condition-controlled loop with test in the middle of the loop:
- C:
do { <sequence> if (test) break; <sequence> } while (true) ; - Ada:
loop <sequence> exit when test; <sequence> end loop;
- C:
- if-statement simple situation:
- Algol 60:
if test then <unconditional statement> ; - Pascal:
if test then <statement> ; - C, Java:
if (test) <statement> ; - Ada:
if test then <sequence> end if; - Fortran 77+:
IF (test) THEN <sequence> END IF
- Algol 60:
- if-statement two-way choice:
- Algol 60:
if test then <unconditional statement> else <statement> ; - Pascal:
if test then <statement> else <statement> ; - C, Java:
if (test) <statement> else <statement> ; - Ada:
if test then <sequence> else <sequence> end if; - Fortran 77+:
IF (test) THEN <sequence> ELSE <sequence> END IF
- Algol 60:
- case/switch statement multi-way choice:
- Pascal:
case c of 'a': alert(); 'q': quit(); end; - Ada:
case c is when 'a' => alert(); when 'q' => quit(); end case; - C, Java:
switch (c) { case 'a': alert(); break; case 'q': quit(); break; }
- Pascal:
- Exception handling:
- Ada:
begin protected code except when exception specification => exception handler - Java:
try { protected code } catch (exception specification) { exception handler } finally { cleanup } - Python:
try: protected code except exception specification: exception handler else: no exceptions finally: cleanup
- Ada:
Apart from assignments and subroutine calls, most languages start each statement with a special word (e.g. goto, if, while, etc.) as shown in the above examples. Various methods have been used to describe the form of statements in different languages; the more formal methods tend to be more precise:
- Algol 60 used Backus–Naur form (BNF) which set a new level for language grammar specification.[3]
- Up until Fortran 77, the language was described in English prose with examples,[4] From Fortran 90 onwards, the language was described using a variant of BNF.[5]
- Cobol used a two-dimensional metalanguage.[6]
- Pascal used both syntax diagrams and equivalent BNF.[7]
BNF uses recursion to express repetition, so various extensions have been proposed to allow direct indication of repetition.
Statements and keywords
[edit]
Some programming language grammars reserve keywords or mark them specially, and do not allow them to be used as identifiers. This often leads to grammars which are easier to parse, requiring less lookahead.
No distinguished keywords
[edit]
Fortran and PL/1 do not have reserved keywords, allowing statements like:
- in PL/1:
IF IF = THEN THEN ...(the secondIFand the firstTHENare variables).
- in Fortran:
IF (A) X = 10...conditional statement (with other variants)IF (A) = 2assignment to a subscripted variable namedIF
-
- As spaces were optional up to Fortran 95, a typo could completely change the meaning of a statement:
DO 10 I = 1,5start of a loop with I running from 1 to 5DO 10 I = 1.5assignment of the value 1.5 to the variableDO10I
In Algol 60 and Algol 68, special tokens were distinguished explicitly: for publication, in boldface e.g. begin; for programming, with some special marking, e.g., a flag ('begin), quotation marks ('begin'), or underlined (begin on the Elliott 503). This is called «stropping».
Tokens that are part of the language syntax thus do not conflict with programmer-defined names.
Certain names are reserved as part of the programming language and can not be used as programmer-defined names.
The majority of the most popular programming languages use reserved keywords. Early examples include FLOW-MATIC (1953) and COBOL (1959). Since 1970 other examples include Ada, C, C++, Java, and Pascal. The number of reserved words depends on the language: C has about 30 while COBOL has about 400.
Semantics is concerned with the meaning of a program. The standards documents for many programming languages use BNF or some equivalent to express the syntax/grammar in a fairly formal and precise way, but the semantics/meaning of the program is generally described using examples and English prose. This can result in ambiguity.[8] In some language descriptions the meaning of compound statements is defined by the use of ‘simpler’ constructions, e.g. a while loop can be defined by a combination of tests, jumps, and labels, using if and goto.
The semantics article describes several mathematical/logical formalisms which have been used to specify semantics in a precise way; these are generally more complicated than BNF, and no single approach is generally accepted as the way to go. Some approaches effectively define an interpreter for the language, some use formal logic to reason about a program, some attach affixes to syntactic entities to ensure consistency, etc.
A distinction is often made between statements, which are executed, and expressions, which are evaluated. Expressions always evaluate to a value, which statements do not. However, expressions are often used as part of a larger statement.
In most programming languages, a statement can consist of little more than an expression, usually by following the expression with a statement terminator (semicolon). In such a case, while the expression evaluates to a value, the complete statement does not (the expression’s value is discarded). For instance, in C, C++, C#, and many similar languages, x = y + 1 is an expression that will set x to the value of y plus one, and the whole expression itself will evaluate to the same value that x is set to. However, x = y + 1; (note the semicolon at the end) is a statement that will still set x to the value of y plus one because the expression within the statement is still evaluated, but the result of the expression is discarded, and the statement itself does not evaluate to any value.[9]
Expressions can also be contained within other expressions. For instance, the expression x = y + 1 contains the expression y + 1, which in turn contains the values y and 1, which are also technically expressions.
Although the previous examples show assignment expressions, some languages do not implement assignment as an expression, but rather as a statement. A notable example of this is Python, where = is not an operator, but rather just a separator in the assignment statement. Although Python allows multiple assignments as each assignment were an expression, this is simply a special case of the assignment statement built into the language grammar rather than a true expression.[10]
Most languages have a fixed set of statements defined by the language, but there have been experiments with extensible languages that allow the programmer to define new statements.
- Comparison of programming languages (syntax) § Statements
- Control flow
- ^ «statement». webopedia. September 1996. Retrieved 2015-03-03.
- ^ Backus, J.W.; Bauer, F.L.; Green, J.; Katz, C.; McCarthy, J.; Naur, P.; Perlis, A.J.; Rutishauser, H.; Samuelson, K.; Vauquois, B.; Wegstein, J.H.; van Wijngaarden, A.; Woodger, M. Naur, Peter (ed.). «Revised Report on the Algorithmic Language Algol 60». mass:werk. Section «4.1». Retrieved January 23, 2021.
- ^ Backus, J.W.; Bauer, F.L.; Green, J.; Katz, C.; McCarthy, J.; Naur, P.; Perlis, A.J.; Rutishauser, H.; Samuelson, K.; Vauquois, B.; Wegstein, J.H.; van Wijngaarden, A.; Woodger, M. Naur, Peter (ed.). «Revised Report on the Algorithmic Language Algol 60». mass:werk. Section «1.1». Retrieved January 23, 2021.
- ^ «FORTRAN» (PDF). United States of America Standards Institute. 1966. Retrieved February 19, 2021 – via WG5 Fortran Standards.
- ^ «Working draft J3/04-007» (PDF). J3 Fortran. May 10, 2004. Retrieved February 19, 2021.
- ^ «ASCII COBOL Programming Reference Manual» (PDF). unisys. June 2010. Retrieved January 23, 2021.
- ^ Jensen, Kathleen; Wirth, Niklaus (1974). Goos, G.; Hartmanis, J. (eds.). «PASCAL User Manual and Report» (PDF). Lecture Notes in Computer Science. Appendix D. Retrieved February 19, 2021.
- ^ Knuth, D. E. (Jul 1967). «The Remaining Trouble Spots in Algol 60» (PDF). The ALGOL Family. Retrieved February 24, 2021.
- ^ «ISO/IEC 9899:1999 (E)» (PDF). ISO/IEC. Archived (PDF) from the original on Feb 7, 2024.
- ^ «7. Simple statements». Python 3.10.8 documentation.
- PC ENCYCLOPEDIA: Definition of: program statement
У этого термина существуют и другие значения, см. оператор.
- Из-за путаницы с терминологией словом «оператор» в программировании нередко обозначают операцию (англ. operator), см. Операция (программирование).
Инстру́кция или опера́тор (англ. statement) — наименьшая автономная часть языка программирования; команда или набор команд. Программа обычно представляет собой последовательность инструкций.
Многие языки (например, Си) различают инструкцию и определение. Различие в том, что инструкция исполняет код, а определение создаёт идентификатор (то есть можно рассматривать определение как инструкцию присваивания).
Ниже приведены основные общие инструкции языков программирования на языке Pascal[источник не указан 2087 дней].
| Определение типа |
TYPE SALARY = INTEGER |
|---|---|
| Объявление |
VAR A:INTEGER |
| Объявление |
A dd ? |
| Объявление |
int A; |
| Присваивание |
A := A + 1 |
| Последовательность инструкций |
A := A + 1; WRITELN(A) </sour#дужжувзвce> |- !'''[[Блок инструкций]]''' |<source lang="pascal"> BEGIN WRITE('Number? '); READLN(NUMBER); END |
| Условная инструкция |
IF A > 3 THEN WRITELN(A) ELSE WRITELN('NOT YET') END |
| Переключатель |
switch (c) { case 'a': alert(); break; case 'q': quit(); break; } |
| Цикл со счетчиком (цикл For, цикл For..Next) |
FOR A:=1 TO 10 DO WRITELN(A) |
| Цикл с постусловием (цикл Repeat..Until, цикл Do..While) |
do { computation(&i); } while (i < 10); |
| Цикл с предусловием (цикл While) |
WHILE NOT EOF DO READLN |
| Вызов подпрограммы, процедуры или функции |
GOSUB 500 clearscreen() data = file.read() |
| Безусловный переход |
goto 1 |
| Утверждение |
assert(ptr != NULL); |
| Возврат из подпрограммы |
return true; |
См. также[править | править код]
- Директива (программирование), а также прагма (там же)
- Инструкции процессора (машинные инструкции)
- Система команд
| Это заготовка статьи о компьютерных языках. Вы можете помочь проекту, дополнив её. |
