04. Языки программирования
Что такое язык программирования
Язык программирования — это формальный язык, предназначенный для записи алгоритмов, которые может выполнить компьютер.
Язык программирования — это способ общения человека с компьютером.
Компьютер понимает только:
- строгие инструкции
- точные команды
- однозначные формулировки
Из чего состоит язык программирования
Любой язык программирования представляет собой формальную систему, состоящую из нескольких взаимосвязанных элементов.
Язык программирования = правила + структура + смысл.
Чтобы программа работала, необходимо понимать, из каких частей состоит язык.
1. Алфавит
Алфавит языка программирования — это набор символов, из которых строятся программы. В него входят:
- буквы
- цифры
- специальные символы (
+,-,=,<,>,{},()и др.)
Алфавит определяет, какие символы вообще можно использовать при написании программы.
2. Лексика (слова языка)
Лексика — это допустимые слова языка. Сюда относятся:
- ключевые (служебные) слова
- имена переменных
- имена функций
Ключевые слова имеют особое значение и используются для построения конструкций языка.
Ключевые слова нельзя использовать в произвольном значении.
3. Синтаксис
Синтаксис — это правила построения команд. Он определяет:
- порядок записи элементов;
- обязательные символы;
- структуру выражений.
Если нарушить синтаксис — программа не запустится.
Синтаксическая ошибка означает, что программа написана неправильно с точки зрения правил языка.
4. Семантика
Семантика — это смысл записанных команд. Она определяет:
- что именно делает программа;
- как выполняются операции;
- к какому результату приводят команды.
Важно понимать:
Синтаксис отвечает на вопрос:
«Правильно ли написано?»Семантика отвечает на вопрос:
«Правильно ли это работает?»
5. Типы данных
Язык программирования определяет, с какими видами данных можно работать. Например:
- числа
- строки
- логические значения
Типы данных позволяют:
- хранить информацию;
- выполнять операции;
- управлять логикой программы.
6. Операторы
Операторы — это средства выполнения действий над данными. Они позволяют:
- выполнять вычисления;
- сравнивать значения;
- управлять логикой.
7. Конструкции языка
Конструкции — это способы организации программы. Основные виды:
- последовательность действий
- условные конструкции
- циклы
- функции
Конструкции позволяют строить сложные алгоритмы из простых шагов.
8. Стандартные средства языка
Большинство языков имеют встроенные инструменты:
- базовые функции
- стандартные библиотеки
- готовые операции
Это позволяет не писать всё «с нуля».
Обобщение
Любой язык программирования включает:
- набор допустимых символов
- слова и правила их использования
- строгий синтаксис
- смысл (семантику) команд
- средства работы с данными
- инструменты построения алгоритмов
Как компьютер понимает программу
Компьютер понимает только:
Машинный код (0 и 1)
Пример:
10101010 00101101
Чтобы человеку не писать нули и единицы, используются языки программирования.
Эволюция языков программирования
Машинный код
- самый низкий уровень
- максимально быстро
- крайне неудобно
Ассемблер
Команды заменены словами:
MOV ADD SUB
Ближе к человеку, но требует знаний архитектуры.
Высокоуровневые языки
Пример:
print("Hello")
Преимущества:
- проще писать
- быстрее разрабатывать
- легче читать
Классификация языков
По уровню абстрации
Уровень абстракции показывает, насколько язык «близок» к устройству компьютера.
1.Низкоуровневые
Это языки, максимально приближенные к архитектуре компьютера.
Особенности:
- зависят от типа процессора
- требуют знания устройства компьютера
- работают быстро
- дают полный контроль над памятью
Пример:
- Ассемблер
Где используются:
- драйверы
- операционные системы
- встроенные системы
Низкоуровневые языки сложны для изучения, но позволяют писать максимально эффективные программы.
2.Высокоуровневые
Это языки, приближенные к человеческому мышлению.
Особенности:
- абстрагированы от устройства компьютера
- проще в изучении
- кроссплатформенные
- быстрее в разработке
Примеры:
- Python
- Java
- C#
- JavaScript
Большинство современных языков — высокоуровневые.
По способу выполнения
1.Компилируемые
Процесс работы:
Код → Компилятор → Исполняемый файл → Запуск
Особенности:
- весь код переводится в машинный заранее
- создаётся отдельный исполняемый файл
- высокая скорость выполнения
Примеры:
- C
- C++
- Go
- Rust
Преимущества:
- высокая производительность
- оптимизация кода
Недостатки:
- требуется этап компиляции
2.Интерпретируемые
Процесс работы:
Код → Интерпретатор → Выполнение построчно
Особенности:
- код выполняется построчно
- нет отдельного исполняемого файла
- проще отладка
Примеры:
- Python
- JavaScript
Преимущества:
- быстрое тестирование
- удобство разработки
Недостатки:
- меньшая скорость
По области применения
1.Системные языки
Используются для разработки:
- операционных систем
- драйверов
- встроенных систем
Примеры: - C - C++
2.Веб-языки
Используются для разработки:
- сайтов
- веб-сервисов
Примеры: - JavaScript - PHP - Python
3.Языки анализа данных
Используются для:
- обработки данных
- статистики
- машинного обучения
Примеры: - Python - R
4.Мобильные языки
Используются для:
- Android
- iOS
Примеры: - Kotlin - Swift
По парадигме программирования
1.Процедурное программирование
Программа состоит из последовательности процедур (функций). Особенности:
- простой подход
- линейная логика
Примеры: - C - Pascal
2.Объектно-ориентированное программирование (ООП)
Программа строится вокруг объектов и классов. Особенности:
- модульность
- повторное использование кода
Примеры: - Java - C# - Python
3. Функциональное программирование
Программа строится на основе функций как математических объектов. Особенности:
- отсутствие изменяемого состояния
- работа с выражениями
Примеры: - Haskell - частично Python
По типизации
1.Статическая типизация
Тип переменной определяется заранее и не меняется. Примеры:
- C
- Java
Преимущества: - меньше ошибок во время выполнения
2.Динамическая типизация
Тип переменной определяется во время выполнения программы. Пример:
- Python
Преимущества: - проще писать код
Где используются языки программирования
| Область | Примеры |
|---|---|
| Системное ПО | ОС, драйверы |
| Веб | сайты, серверы |
| Мобильные приложения | Android, iOS |
| Анализ данных | статистика |
| ИИ | нейросети |
Популярные языки
Python
- простой синтаксис
- читаемый код
- анализ данных
- автоматизация
Java
- корпоративные системы
- банковские приложения
C
- десктопные программы
- корпоративные решения
JavaScript
- веб-разработка
- браузерные приложения
Как выполняется программа
Общая идея
Компьютер не понимает языки программирования напрямую.
Он понимает только машинный код — последовательность нулей и единиц.
Поэтому любая программа проходит этап перевода.
Основные этапы выполнения
Задача ↓ Алгоритм ↓ Код на языке программирования ↓ Перевод в машинный код ↓ Выполнение процессором ↓ Результат
Способы перевода программы
1.Компиляция
Код → Компилятор → Исполняемый файл → Запуск
- код переводится полностью
- создаётся отдельный файл
- высокая скорость работы
2.Интерпретация
Код → Интерпретатор → Выполнение построчно
- код выполняется строка за строкой
- отдельный файл не создаётся
- удобно для обучения и тестирования
Что делает процессор
Процессор выполняет команды по циклу:
- Получить команду
- Расшифровать
- Выполнить
- Перейти к следующей
Этот процесс повторяется до завершения программы.
Возможные ошибки
- Синтаксическая — нарушены правила языка
- Во время выполнения — ошибка при работе программы
- Логическая — программа работает, но результат неверный
Распространённые заблуждения
Есть самый лучший языкт
→ Нет универсального языка
Достаточно знать один язык
→ Важно понимать основы
Язык сложный → я плохой программист
→ Сложность языка ≠ сложность мышления