Різниця між компільованими та інтерпретованими мовами

Мови програмування поділяються на дві різні сімейства: складено і інтерпретується. Скомпільована мова кодується людиною, а потім вихідний код перекладається на мову асемблера, щоб цільова програма запускалася і повертала бажаний результат. Інтерпретована мова, однак, компілюється в реальному часі під час її запуску, і для кодування вона часто використовує простіший і зручніший для людини синтаксис.

Вибір компіляції vs. інтерпретована мова не повинна бути основним фактором, коли ви розглядаєте нову мову програмування для вивчення.

Що таке компільована мова?

Привіт, світ на C

Розглянемо просту програму, helloworld.c, написано в Мова програмування C:

#включати 
int main()
{
printf("Привіт, світ");
}

C є прикладом компільованої мови. Щоб запустити наведений вище код, ви повинні передати його через компілятор C — програму, яка інтерпретує ваш код для створення двійкової програми. Щоб зібрати просту програму на C в Linux, скористайтеся файлом gcc компілятор:

gcc helloworld.c -o привіт

Наведена вище команда перетворює код із формату, який читається людиною, у машинний код, який комп’ютер може запускати нативно. Скомпільована програма запускається шляхом виконання імені скомпільованої програми з оболонки:

./Здравствуйте

Сильні і слабкі сторони

Переваги використання компілятора для компіляції коду полягають у тому, що кінцевий продукт зазвичай працює швидше, ніж інтерпретований код, оскільки його не потрібно компілювати на льоту під час роботи програми.

Зібрану програму перевіряли на наявність помилок під час компіляції. Якщо є команди, які не подобаються компілятору, про них буде повідомлено. Ця перевірка помилок допоможе вам виправити всі помилки кодування, перш ніж ви отримаєте добре запущений кінцевий продукт.

Те, що програма успішно скомпільована, не означає, що вона працюватиме так, як ви очікуєте, тому вам все одно потрібно протестувати свою програму.

Однак програма C, скомпільована на комп’ютері з Linux, не працюватиме на комп’ютері з Windows, оскільки компілятор містить необхідні інструменти для запуску програми на певній платформі — як правило, на платформі, на якій вона була складено. Щоб запустити ту саму програму C на комп’ютері з ОС Windows, ви повинні знову скомпілювати програму за допомогою компілятора C на комп’ютері з Windows.

Що таке інтерпретована мова?

Hello World на Python

Python — популярна інтерпретована мова.

роздрукувати ("привіт, світ")

Наведений вище код є програмою на python, яка відображатиме слова Привіт Світ коли він запущений. Щоб запустити код, нам не потрібно його спочатку компілювати. Замість цього ми можемо просто запустити таку команду:

python helloworld.py

Або просто введіть його з інтерактивного інтерпретатора Python.

Цю крихітну однорядкову програму не потрібно спочатку компілювати, але вона вимагає, щоб Python був встановлений на будь-якій машині, на якій виконується сценарій. Інтерпретатор Python бере код, зрозумілий людині, і перетворює його на щось інше, перш ніж зробити його тим, що може читати машина. Усе це відбувається за лаштунками, і як користувач ви бачите лише слова Привіт Світ надруковано до стандартного виходу.

Сильні і слабкі сторони

Загалом, інтерпретований код виконується повільніше, ніж скомпільований, оскільки інтерпретатор на льоту перекладає програму у те, що може обробляти машина.

Хоча цей удар ефективності може здатися недоліком, інтерпретовані мови корисні з кількох причин. По-перше, набагато легше отримати програму, написану на Python, для запуску в Linux, Windows і macOS. Все, що вам потрібно зробити, це переконатися, що Python встановлено на комп’ютері, на якому ви хочете запустити сценарій.

Ще одна перевага полягає в тому, що код завжди доступний для читання і його можна легко змінити, щоб він працював так, як ви хочете. За допомогою скомпільованого коду вам потрібно знайти, де зберігається код, змінити його, скомпілювати та повторно розгорнути програму. Однак з інтерпретованим кодом ви відкриваєте програму, змінюєте її, і вона готова до роботи.