ИНФОРМАТИКА · 10 КЛАСС
Алгоритмы и массивы · Интерактивный конспект

§ 2. Языки программирования

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

Попробовать на модели ↓
Разбираемся в теме

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

1

Уровни языков и трансляция

Язык задаёт правила записи, а транслятор связывает программу с исполнением.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Уровни языков и трансляция

Меняйте данные и выполняйте шаги. Цвет выделяет текущие элементы; подписи объясняют результат. Сброс возвращает исходный опыт.

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

Компилятор переводит программу в другую форму до последующего исполнения; интерпретатор организует выполнение по представлению программы. Возможны смешанные системы: промежуточный код и компиляция во время работы. Поэтому язык нельзя навсегда приравнять только к одному способу реализации. Среда разработки объединяет редактор, запуск, диагностику и другие инструменты.

Главная мысль: Язык задаёт правила записи, а транслятор связывает программу с исполнением.
2

Синтаксис, смысл и ошибки

Синтаксическая правильность, допустимость операций и правильность решения — разные проверки.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Синтаксис, смысл и ошибки

Меняйте данные и выполняйте шаги. Цвет выделяет текущие элементы; подписи объясняют результат. Сброс возвращает исходный опыт.

Синтаксис задаёт построение выражений и команд. Семантика задаёт их смысл. Переменная имеет имя, тип и значение; константа обозначает значение, которое не меняют в предусмотренном контексте. Правила имён и список служебных слов зависят от языка. Для учебных имён Pascal удобно использовать латинские буквы, цифры и подчёркивание, не начинать с цифры и не брать служебные слова.

Пропущенный end может вызвать синтаксическую ошибку. Деление на нуль проявляется при выполнении. Формула периметра a+b вместо 2*(a+b) может успешно выполниться, но решает задачу неправильно. Тип также влияет на операции: 7 div 2 = 3, а 7 / 2 = 3,5. Текст сообщения транслятора помогает найти место проблемы, но не всегда её первоначальную причину.

Главная мысль: Синтаксическая правильность, допустимость операций и правильность решения — разные проверки.
3

Парадигмы программирования

Парадигмы предлагают способы организации решения и могут сочетаться в одном языке.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Парадигмы программирования

Меняйте данные и выполняйте шаги. Цвет выделяет текущие элементы; подписи объясняют результат. Сброс возвращает исходный опыт.

Структурное программирование строит управление из следования, ветвления и циклов. Процедурное выделяет процедуры и функции. Эти подходы совместимы: структурная программа может состоять из процедур. Разработка сверху вниз и снизу вверх — способы проектирования, а не строгие определения разных языков.

Объектный подход объединяет состояние и операции в объектах, часто описываемых классами. Функциональный подход строит вычисления через функции и их композицию; в чистом функциональном ядре избегают изменяемого состояния. Многие языки поддерживают несколько подходов. Выбор зависит от задачи и среды, а не от единственного «самого правильного» стиля.

Главная мысль: Парадигмы предлагают способы организации решения и могут сочетаться в одном языке.
4

Подпрограммы и разработка

Разбиение задачи на подпрограммы упрощает объяснение, повторное использование и проверку.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Подпрограммы и разработка

Меняйте данные и выполняйте шаги. Цвет выделяет текущие элементы; подписи объясняют результат. Сброс возвращает исходный опыт.

Функция возвращает значение, которое можно включить в выражение. Процедура выполняет действие; её результат может проявиться, например, в выводе или изменении параметра. Параметры передают исходные данные, локальные переменные используются внутри вызова. Нужно различать имя параметра в определении и значение аргумента при вызове.

Практический порядок работы: уточнить вход и выход, составить алгоритм, выбрать типы, написать программу, выполнить трансляцию, проверить примеры и исправить ошибки. Полезно заранее вычислить ответы вручную. Визуальный тренажёр ниже исполняет заданный учебный алгоритм; он не является компилятором произвольного Pascal, Python или C++.

function Square(x: real): real;
begin
  Result := x * x;
end;

begin
  Writeln(Square(3)); { 9 }
end.
Главная мысль: Разбиение задачи на подпрограммы упрощает объяснение, повторное использование и проверку.
Интерактивная практика

Исследуйте и примените

Проверьте модель на нескольких наборах данных, затем выполните самостоятельное задание.

НАБЛЮДАЙТЕ И ПРОБУЙТЕ

Лаборатория: проверьте свой вариант

Меняйте данные и выполняйте шаги. Цвет выделяет текущие элементы; подписи объясняют результат. Сброс возвращает исходный опыт.

Соберём главное

Шесть выводов

01

Язык задаёт правила записи, а транслятор связывает программу с исполнением.

02

Синтаксическая правильность, допустимость операций и правильность решения — разные проверки.

03

Парадигмы предлагают способы организации решения и могут сочетаться в одном языке.

04

Разбиение задачи на подпрограммы упрощает объяснение, повторное использование и проверку.

05

Успешная трансляция не доказывает правильность алгоритма.

06

Проверяйте типы, входные ограничения и заранее известные ответы.

Самопроверка

Тест: 10 вопросов

Один верный ответ. За ответ — 0,5 балла. Откройте и проверьте себя.

1. Что задаёт синтаксис?

2. Что задаёт семантика?

3. Что делает компилятор?

4. Что обозначает ассемблерная запись?

5. Какое учебное имя Pascal допустимо?

6. Чему равно 7 div 2?

7. Формула a+b вместо периметра 2*(a+b) — это…

8. Какие подходы могут сочетаться?

9. Что обычно возвращает функция?

10. Что нужно после успешной трансляции?

ВыводыТестВ началоВсе параграфы
↑

Загрузка прогресса…