- •Мови і системи програмування Формальні мови та граматики Основні поняття теорії мов та граматик
- •Класифікація формальних граматик та мов
- •Засоби подання правил граматики
- •Мови програмування та їх класифікація
- •Технологія обробки тексту програми Трансляція програм
- •Послідовність обробки тексту програми
- •Інтегровані середовища розробки програм
- •Середовище створення програм Microsoft Visual Studio Загальні прийоми роботи
- •Створення консольного застосування
- •Компіляція і виконання проекту
- •Засоби налагодження програм
Послідовність обробки тексту програми
Загальна схема процедури створення і обробки програми має вигляд:
Формування тексту програми здійснюється редактором текстів. Створити текст програми можна в будь-якому редакторі, але краще використовувати для цього спеціалізовані редактори, які дозволяють у процесі введення тексту виділяти ключові слова і ідентифікатори різними кольорами та шрифтами, що дає змогу автоматично перевіряти правильність синтаксису програми.
Отриманий в результаті текстовий файл (файл із стандартним розширенням .pas, .cpp, тощо є вихідним текстом (вихідним кодом) програми. Вихідний текст програми може складатися як із одного файлу, так і бути проектом - містити сукупність файлів (модулів).
Трансляція вихідного тексту програми здійснюється відповідним компілятором (інтерпретатором). В результаті формується послідовність машинних команд, що називається об'єктним кодом програми (двійковий файл із стандартним розширенням .овj). При цьому вихідні тексти модулів багатомодульної програми компілюються в окремі об'єктні файли.
На цьому етапі вже можливе одержання готової програми, але найчастіше в ній не вистачає деяких компонентів – програма може включати виклики підпрограм (наприклад, стандартних математичних функцій), що містяться в бібліотеках (зокрема, файлах із стандартним розширенням .lіb). Згенерований об'єктний код модулів і підключені до нього стандартні функції треба не просто об'єднати в одне ціле, а виконати таке об'єднання з урахуванням вимог ОС, тобто одержати на виході програму, що відповідає певному формату. Ці дії виконує спеціальна програма - редактор зв'язків (або компонувальник), що “збирає” (компонує) працездатний код програми – код виконання (файл із стандартним розширенням .ехе).
Процес трансляції в цьому випадку може виконуватися як єдине ціле - компіляція та редагування зв'язків, або як два окремих етапи - спочатку компіляція об'єктних модулів, а потім виклик редактора зв'язків, що створює остаточний код. Останній підхід більш зручний для розробки програм. Він реалізований у трансляторах мов С і С++.
Об'єктний код, що створюється компілятором, являє собою область даних і область машинних команд, що мають адреси, які надалі "узгоджуються" редактором зв'язку (завантажувачем). Редактор зв'язку розміщує в єдиному адресному просторі всі окремо відкомпільовані об'єктні модулі і статично підключаємі бібліотеки.
Для подальшого запуску .ехе –файла на виконання служить програма-завантажувач.
На кожному етапі інформація, отримана від попереднього етапу, обробляється і передається далі. Якщо яке-небудь правило мови виявляється порушеним, запускається підпрограма обробки помилок, яка повідомляє програміста про знайдену помилку.
Узагальнення основних кроків перетворення програм:
Інтегровані середовища розробки програм
У загальному випадку для створення програми на обраній мові програмування потрібно мати наступні компоненти:
текстовий редактор - для набору тексту програми;
компілятор (інтерпретатор) - для перекладу тексту програми в машинний код;
редактор зв'язків (компонувальник) - для компоновки декількох компільованих модулів в одну програму.
Їх використання для створення коду програми у режимі командного рядка називають пакетним режимом розробки програм.
Однак більш зручним є використання систем програмування, що представляють собою інтегровані середовища розробки програм (IDE, Integrated Development Environment), які інтегрують в єдине ціле як зазначені вище компоненти, так і нові, зокрема, налагоджувач, бібліотеки функцій тощо. Окрім того, вони забезпечують діалогову взаємодію з користувачем на будь-якому етапі створення програми.
Зазвичай IDE орієнтовані на певну мову програмування, як, наприклад, Quick Basіc, Visual Basic, Borland Pascal, Free Pascal, Delphi, Borland С++Вuilder, Visual C++, Dev-C++ тощо. Однак, є деякі IDE, що підтримують декілька мов, наприклад, Microsoft Visual Studio, Eclipse, останні версії NetBeans та ін.
Сучасним підходом до програмування під Wіndows є так званий візуальний підхід, який передбачає створення елементів інтерфейсу програми не шляхом ручного програмування, а за допомогою готових візуальних компонентів. При цьому текст програми, що реалізує створення і роботу цих елементів, генерується автоматично. Такий підхід до створення програм підтримують середовища швидкого проектування або RАD-середовища (Rapid Аррlicаtion Dеvеlорment), такі як Delphi, Microsoft Visual Studio тощо.
Сучасні IDE реалізують концепцію проектів і рішень, що є контейнерами3, які використовуються для розміщення і групування коду, написаного в інтегрованому середовищі.
Проект - це група файлів і налаштувань, з яких збирається остаточна програма. Зазвичай, проект включає набір вихідних файлів, файлів ресурсів, налагодження, конфігураційних параметрів тощо.
Рішення – це віртуальний контейнер високого рівня для інших елементів. Файли рішень включають один або декілька пов’язаних проектів, а також файли і метадані, необхідні для опису рішення в цілому (інформація про залежності, параметри процесу складання і налаштування системи контролю вихідного коду тощо):
Рішення не обробляються компілятором. Вони застосовуються, в основному, для управління процесом компоновки проектів та інших елементів, що містяться в них (з їх допомогою можна управляти залежностями і порядком виконання компоновки).
Щоб допомогти користувачам організовувати і виконувати стандартні завдання із застосуванням елементів, що розробляються, проекти використовуються як контейнери в межах рішення. Це дозволяє логічно управляти, виконувати побудову і налагоджувати елементи, що утворюють програму. На виході проект, як правило, становить собою готову до виконання програму (exe-файл).
