Спеціалізовані мови програмування
VTFK • 2025
Фокус: від теорії до практики
Розробка програм, які взаємодіють прямо з апаратурою: операційні системи, драйвери, компілятори, базові утиліти.
Аналогія: Як архітектор будівель розуміє не тільки дизайн, але й основу, фундамент, конструкцію
Абстракція і контроль
| Мова | Рівень | Безпека | Продуктивність | Крива навчання |
|---|---|---|---|---|
| C | Низький | Ручна | Дуже висока | Висока |
| Rust | Низький | Автоматична | Висока | Дуже висока |
| Assembly | Дуже низький | Немає | Максимальна | Найвища |
| Python | Високий | Автоматична | Низька | Низька |
Додавання двох чисел
// C: контроль над всім
#include
int main() {
int a = 5, b = 3;
int sum = a + b; // + в C = одна машинна інструкція
printf("%d\n", sum);
return 0;
}
// Результат: 8
Безпечніше, але більше синтаксису
// Rust: безпека + контроль
fn main() {
let a = 5;
let b = 3;
let sum = a + b; // Компілятор перевіряє типи
println!("{}", sum);
}
// Результат: 8
Машина говорить нам
; Assembly: абсолютний контроль
mov rax, 5 ; rax = 5
mov rbx, 3 ; rbx = 3
add rax, rbx ; rax = rax + rbx (8)
; Результат у rax: 8
Шлях компіляції
Assembly для x86-64 не працює на ARM. C — зв'язок між логікою та машиною.
C часто простіший, ніж Assembly, та переносимий
// Я писатиму Assembly
// щоб мій код був швидшим
int c_version() { return 5 + 3; }
Сучасні компілятори (gcc -O3) генерують ідентичний Assembly
// Пиши на C/Rust першим
// Оптимізуй тільки вузькі місця
// Профілюй інструментами: perf, valgrind
Правило 80/20: 80% часу у 20% коду
Далі — системи числення
Лекція 2: Системи числення
Дякую за увагу! 💾