Город МОСКОВСКИЙ
01:26:24

Лекция 5 Compile time errors, runtime errors, undefined behavior

Аватар
Ленинский Букварь
Просмотры:
66
Дата загрузки:
05.12.2024 20:32
Длительность:
01:26:24
Категория:
Обучение

Описание

Ошибки компиляции (compile-time errors) возникают, когда программа пытается обратиться к необъявленной функции или переменной, неоднозначна или вызывает операцию над недопустимым типом. Такие ошибки делятся на лексические, синтаксические и семантические.

Ошибки выполнения (runtime errors) появляются при запуске программы. Один из примеров — segmentation fault (SEGFAULT), который возникает при попытке доступа к памяти вне допустимого диапазона. Ещё одна ошибка — деление на ноль: попытка выполнить такое действие приводит к ошибке.

Неопределённое поведение (undefined behavior) возникает, когда в одном выражении происходят два неупорядоченных изменения одной и той же переменной. Компилятор не может гарантировать порядок выполнения операций, что приводит к непредсказуемым результатам.

Некоторые примеры неопределённого поведения: гонки данных ( конфликтующий доступ на чтение / запись из разных потоков исполнения ), доступ к памяти за пределами границ массива, переполнение знакового целого числа, разыменование нулевого указателя и другие.

00:00 Введение и структура лекции
02:23 Ошибки компиляции
03:42 Лексические ошибки
06:14 Синтаксические ошибки
08:11 Примеры ошибок
11:16 Чтение ошибок компиляции
13:23 Градуированная грамматика
14:16 Синтаксические ошибки
16:07 Семантические ошибки
18:52 Классификация ошибок компиляции
19:44 Ошибки доступа
20:44 Ошибки выполнения
23:15 Пример SEGFAULT
27:07 Деление на ноль
30:47 Ошибки времени выполнения
35:31 Преимущества компиляции
39:13 Неопределенное поведение
42:23 Примеры неопределенного поведения
44:17 Компилятор и условия задачи
46:01 Пример с переполнением int
49:56 Неопределенное поведение и оптимизатор
52:46 Конкурс на самый причудливый результат
55:12 Неопределенное поведение в C++
57:01 Примеры неопределенного поведения
58:56 Специфическое и неопределенное поведение
01:02:58 Имплементационное поведение
01:03:53 Оптимизация и неопределенное поведение
01:07:01 Лирическое отступление
01:07:40 Введение в стадии компиляции и ворнинги
01:08:38 Примеры ворнингов
01:10:14 Примеры полезных ворнингов
01:12:12 Параметры компиляции для ворнингов
01:17:39 Флаг -Werror
01:22:16 Использование прагм в коде
01:22:54 Синтаксис прагм
01:24:32 Завершение первой главы
01:25:11 Домашние задания и экзамены

Рекомендуемые видео