7.1: Складені v інтерпретовані програми
- Page ID
- 34515
Складені v інтерпретовані програми
Скомпільовані програми
Поки ми обговорювали, як програма завантажується у віртуальну пам'ять, запускається як процес, що відстежується операційною системою та взаємодіє з допомогою системних викликів.
Програма, яка може завантажуватися безпосередньо в пам'ять, повинна бути в прямому двійковому форматі. Процес перетворення вихідного коду, написаного на такій мові, як C, в бінарний файл, готовий до виконання, називається компіляцією. Не дивно, що процес виконується компілятором; найпоширенішим прикладом є gcc.
Інтерпретовані програми
Складені програми мають деякі недоліки для сучасної розробки програмного забезпечення. Кожен раз, коли розробник вносить зміни, компілятор повинен бути викликаний для відтворення виконуваного файлу. Це логічне розширення для розробки скомпільованої програми, яка може читати інший список програм і виконувати код рядок за рядком.
Цей тип компільованої програми ми називаємо інтерпретатором, оскільки він інтерпретує кожен рядок вхідного файлу і виконує його як код. Таким чином програму не потрібно компілювати, і будь-які зміни будуть помічені при наступному запуску коду інтерпретатором.
Для їх зручності інтерпретовані програми зазвичай працюють повільніше, ніж скомпільований аналог. Накладні витрати в програмі читання та інтерпретації коду кожного разу зустрічаються лише один раз для скомпільованої програми, в той час як інтерпретована програма стикається з нею кожного разу, коли вона запускається.
Але інтерпретовані мови мають багато позитивних моментів. Багато інтерпретованих мов фактично працюють у віртуальній машині, яка абстрагується від базового обладнання. Python і Perl 6 - це мови, які реалізують віртуальну машину, на якій інтерпретується код.
Віртуальні машини
Скомпільована програма повністю залежить від апаратної частини машини, для якої вона скомпільована, так як її потрібно вміти просто скопіювати в пам'ять і виконати. Віртуальна машина - це абстракція апаратного забезпечення в програмне забезпечення.
Наприклад, Java - це гібридна мова, яка частково компілюється і частково інтерпретується. Java код виконується в програму, яка працює всередині віртуальної машини Java або більш часто називають JVM. Це означає, що скомпільована програма може працювати на будь-якому обладнанні, на якому написано JVM; так званий запис один, запустити будь-де.