Связь программ с компьютерами

Основы информатики

Pritesh Patel

Computer Scientist & Data Scientist for over 20 years

От человеческих инструкций к командам компьютера

Анимация, показывающая компиляцию цикла for в двоичный код

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

  • Человек пишет код, который затем переводится в двоичный формат
  • Промежуточный уровень

Способы перевода

  • Компиляция
  • Интерпретация
Основы информатики

Компилируемые языки: кинопроизводство

Изображение студии звукозаписи как аналогия компилируемого языка

Компилируемые языки

  • Код полностью переводится в двоичный формат (машинный код) до выполнения.
  • Это похоже на киносъёмку в отличие от живого спектакля:
    • Сценарий заранее написан, отрепетирован, снят и смонтирован
Основы информатики

Примеры компилируемых языков

Язык программирования Логотип
C Логотип языка программирования C
C++ Логотип языка программирования C++
Java Логотип языка программирования Java
Rust Логотип языка программирования Rust
Go Логотип языка программирования Go

Преимущества

  • Высокая производительность

Недостатки

  • Медленный цикл отладки
  • Зависимость от платформы
Основы информатики

Интерпретируемые языки: живой театр

Изображение театральной постановки как аналогия интерпретируемого языка

Интерпретируемые языки

  • Код переводится в двоичный формат (машинный код) построчно во время выполнения.
  • Это похоже на живое театральное представление:
    • Немедленное исполнение
Основы информатики

Примеры интерпретируемых языков

Язык программирования Логотип
Python Логотип языка программирования Python
Javascript Логотип языка программирования Javascript
Ruby Логотип языка программирования Ruby
php Логотип языка программирования php
R Логотип языка программирования R

Преимущества

  • Гибкость и быстрая итерация

Недостатки

  • Может работать медленнее
Основы информатики

Давайте потренируемся!

Основы информатики

Preparing Video For Download...