Опубликован: 03.10.2011 | Уровень: для всех | Доступ: платный | ВУЗ: Тверской государственный университет
Лекция 4:

Основы структуры программ

< Лекция 3 || Лекция 4: 123 || Лекция 5 >
Аннотация: Предыдущая лекция позволила нам получить первое представление о программах. Теперь мы готовы к введению новых концепций. Давайте ближе познакомимся с некоторыми частями программы, уже использованными, но не получившими пока собственные имена.

3.1. Операторы (instructions) и выражения

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

Paris.display
Louvre.spotlight
Line8.highlight
Route1.animate
Console.show (Route1.origin)
        

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

До сих пор все рассматриваемые нами операторы были операторами вызова метода. В последующих лекциях мы встретимся с другими видами операторов языка.

Для выполнения своей работы операторам нужны некоторые значения, подобно тому, как математическая функция "косинус" при ее вызове cos(x) может дать результат, только если известно значение x. При вызове метода необходимыми значениями являются:

  • цель, заданная объектом. В наших примерах это Paris, Louvre и т. д.;
  • аргументы, не обязательные, но необходимые для некоторых вызовов, как Route1.origin в последнем примере.

Такие элементы программы, обозначающие значения, называются выражениями. Наряду с продемонстрированной формой записи выражения нам встретятся выражения в привычной математической форме, такие как a + b.

Определение: операторы, выражения

В тексте программ:

  • оператор обозначает базисную операцию, которую необходимо выполнить в период работы программы;
  • выражение обозначает значение, используемое оператором при его выполнении.

3.2. Синтаксис и семантика

В определении оператора и выражения важную роль играет слово "обозначает". Выражение, такое как Route1.origin или a + b, не является значением – это последовательность слов программного текста. Оно обозначает значение, которое может существовать в момент выполнения.

Аналогично оператор, такой как Paris.display, является некоторой последовательностью слов, скомбинированной в соответствии с некоторыми структурными правилами; он обозначает некоторую операцию, которая будет происходить в момент выполнения.

Этот термин "обозначает" отражает различие между дополняющими друг друга аспектами программ:

  • способа записи программы, состоящей из слов, которые, в свою очередь, составлены из символов, печатаемых на клавиатуре. Например, оператор Paris.display состоит из трех частей – слова, составленного из пяти символов P, a, r, i, s, затем "точки", затем слова, составленного из семи символов.
  • эффекта от этих элементов программы, который, как вы ожидаете, возникнет в процессе выполнения: вызов метода Paris.display приведет к отображению на экране карты Парижа.

Первый аспект характеризует синтаксис программы, второй – ее семантику. Дадим точные определения.

Определения: синтаксис, семантика

Синтаксис программы – это структура и форма записи ее текста.

Семантика – множество свойств потенциально возможных выполнений программы.

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

Ранее у нас уже было разделение: команды против запросов. Команды являются императивными: они командуют, заставляя компьютер при запуске программы выполнять некоторые действия, которые могут изменять объекты. Запросы являются дескриптивными: они запрашивают у компьютера некоторую информацию об объектах без изменения самих объектов. Эта информация предоставляется программе. Комбинируя эти различия с различиями в синтаксисе и семантике, приходим к четырем различным ситуациям.

Синтаксис Семантика
Императивный Оператор Команда
Дескриптивный Выражение

Запрос

Значение

В нижнем правом углу таблицы имеем две семантики: запрос является программным механизмом для получения некоторой информации; эта информация, полученная при выполнении запроса, создана из значений.

< Лекция 3 || Лекция 4: 123 || Лекция 5 >
Кирилл Юлаев
Кирилл Юлаев
Федор Антонов
Федор Антонов

Здравствуйте!

Записался на ваш курс, но не понимаю как произвести оплату.

Надо ли писать заявление и, если да, то куда отправлять?

как я получу диплом о профессиональной переподготовке?

Petr Ponomarev
Petr Ponomarev
Россия
Василий Долгополов
Василий Долгополов
Россия, Санкт-Петербург, БГТУ