Робота в системі програмування

 
  • Версія друку Весь реферат без реклами та завантаження шаблону:)
  •  
    Реферат з інформатики
    на тему:
    Робота в системі програмування


    Від складання програмістом до виконання комп'ютером програма проходить досить тривалий шлях спеціальними службовими програмами, що складають систему автоматизації програмування. З часом слово “автоматизація” випало із наведеного словосполучення, в результаті чого воно перетворилося на систему програмування. Система програмування складається з кількох компонент, а саме: препроцесора (preprocessor), компілятора (compiler), компонувальника (linker), налагоджувача (debugger) , об'єднаних спільним інтерфейсом у так зване універсальне середовище розробки програм.
    Головна особливість підготовки програми до виконання полягає у використанні багатьох різнорідних складових частин. Деякі з них підготовлені заздалегідь, вони зберігаються в бібліотеках, системних або власних, інші складають частини програми, розміщені в різних файлах. Зауважимо, що в С++ лише поглибилася тенденція винесення значної частини мови на рівень бібліотеки, яка дула закладена ще авторами С. Зокрема на бібліотеку, а не мову покладена відповідальність за зв'язок програми з операційною системою.
    Одночасне використання багатьох файлів з текстами різних частин програми — роздільна компіляція — одне з найбільших досягнень систем програмування. Завдяки йому ми ділимо програму на файли, які називаються одиницями трансляції ( translation unit ), групуючи у одному файлі тісно зв'язані одну з одною частини програми. В такий спосіб великі за розмірами програми діляться на частини, якими легше управляти.
    Програмування — це діяльність, яка вимагає великої організованості. Тому при складанні програм дотримуються певних правил доброго тону, одне з яких полягає в розділенні визначень і обчислень між файлами двох типів: файлів заголовків (header) і файлів реалізації . Файли заголовків обробляються препроцесором, файли реалізації готуються препроцесором для подальшої обробки компілятором. Тому їх звичайно називають початковими файлами ( source file, исходный файл ). Сукупність пов'язаних одне з одним заголовних і початкових файлів складають вхідну програму для системи програмування. Вхідну програму розміщують у програмному проекті, в рамках якого система програмування будуватиме об'єктні коди та виконавчу програму .
    Система програмування (programming system) - 1) те ж що й інструментальна система; 2) система автоматичного програмування, що складається з мови програмування, компілятора або інтерпретатора програм, які написані на цій мові, відповідної документації, а також допоміжних засобів для підготовки програм до виконання;
    Інструментальна система (development environment) — комплекс програмних або програмних і технічних засобів, який використовується фахівцями з програмування як інструмент для розробки програмного забезпечення (програм, програмних комплексів та систем тощо).
    Мова програмування — формальна мова представлення програм для системи програмування.
    Мови програмування низького рівня орієнтовані на конкретний тип процесора і враховують його особливості.
    Переваги
    з допомогою мов низького рівня створюються ефективні і компактні програми, оскільки розробник отримує доступ до всіх можливостей процесора.
    Недоліки
    Програміст, що працює з мовами низького рівня, має бути високої кваліфікації, добре розуміти будову комп’ютера.
    результуюча програма не може бути перенесена на комп’ютер з іншим типом процесора.
    Мови низького рівня, як правило, використовують для написання невеликих системних додатків, драйверів пристроїв, модулів стиків з нестандартним обладнанням, коли найважливішими вимогами є компактність, швидкодія і можливість прямого доступу до апаратних ресурсів.
    Асемблер
    Мови програмування високого рівня можна сказати є більш зрозумілими людині, ніж комп’ютеру. Особливості конкретних комп’ютерних архітектур в них не враховуються, тому створені програми легко переносяться з комп’ютера на комп’ютер, де встановлено транслятор цієї мови. Розробляти програми на таких мовах значно простіше і помилок допускається менше.
    Фортран
    Кобол
    Алгол
    Pascal
    Java
    C
    C++
    C#
    Objective C
    SmallTalk
    J++
    Delphi
    П’ять поколінь мов програмування
    1 покоління:
    початок 1950-х років – мови перших комп’ютерів. Перша мова асемблера, створена за принципом “одна інструкція – один рядок”.
    2 покоління
    кінець 1950-х – початок 1960-х р.р. Розроблено символьний асемблер, в якому з’явилося поняття змінної. Це перша повноцінна мова програмування.
    3 покоління
    1960-ті р.р. – мови програмування високого рівня. Їхні характеристики:
    відносна простота;
    незалежність від конкретного комп’ютера;
    можливість використання потужних синтаксичних конструкцій.
    Простота мов дає змогу писати невеликі програми і людям, які не є професійними програмістами.
    4 покоління
    початок 1970-х р.р. до сьогоднішнього часу. Створюються мови, призначені для реалізації крупних проектів. Проблемно-орієнтовані мови, що оперують конкретними поняттями вузької галузі. Як правило, в такі мови вбудовують потужні оператори, що дозволяють одним рядком описувати функції, для опису яких мовами молодших поколінь потрібно було б сотні-тисячі рядків початкового коду.
    5 покоління
    з середини 1990-х р.р. – до теперішнього часу. Це системи автоматизованого проектування програмного забезпечення (САПР ПЗ). Створення прикладних програм, редакторів, САПРів для людей, які не знайомі з програмуванням: Word, Excel, PcAD, OrCAD, PSPICE, MathCad, ACAD і т. д.
    Компілятор (англ. Compiler від англ. to compile збирати в ціле) - комп'ютерна програма (або набір к. програм), що перетворює (компілює) програмний код, написаний певною мовою програмування (мова джерела, англ. source language), на семантично еквівалентний код в іншій мові програмування (мова цілі, англ. target language). Що, як правило, є необхідним для виконання програми на машині, наприклад: на комп'ютері.
    Коротко компілятор можна визначити, як програма або технічний засіб, що виконує компіляцію.
    Історично компілятором називалась програма що зв'язувала підпрограми, чим й зумовлено походження слова. Сьогодні це завдання виконує консолідатор або лінкер (англ. Linker).
    Для того щоб бути виконаною програма не завжди повинна бути перекладена К., існує також інший принцип: Інтерпретатор (англ. Interpreter).
    Компілятор – це програма, що читає програму записану початковою мовою і записує цільовою мовою. Цей процес називають компіляцією (трансляцією, перекладом). Він складається з двох частин
    Аналіз (parsing) – розбиття початкової програми на складові частини та створення проміжного представлення
    Синтез – побудова цільової програми з проміжного представлення
    Початкова мова визначається її синтаксисом – описом того, з яких конструкцій складається мова, та семантикою – набором правил, що визначають суть цих конструкцій.
    Фази компіляції
    Концептуально компілятор працює фазово, в процесі кожної фази відбувається перетворення початкової програми з одного представлення до іншого. На практиці фази можуть об'єднуватись і деякі проміжні представлення можуть не будуватись в явному вигляді. Типове розбиття компілятора на фази:
    Лексичний аналізатор
    Синтаксичний аналізатор
    Семантичний аналізатор
    Генератор проміжного коду
    Оптимізатор
    Генератор цільового коду
    Лексичний розбір виділяють для спрощення побудови компілятора. Це лінійне сканування вхідної програми, при якому символи групуються в токени - послідовності символів, що мають певне сукупне значення. Наступний рядок мовою Паскаль
    len := 3.14 * r;
    складається з наступних токенів
    Ідентифікатор len
    Символ присвоєння :=
    Числова стала 3.14
    Знак множення *
    Ідентифікатор r
    Роздільник операторів ;
    Синтаксичний розбір
    Послідовність машинних символів, що утворюють токен, називають лексемою токена. Токени мають тип (наприклад, ідентифікатор, числова стала - це типи токенів). Деякі токени мають лексичне значення (наприклад, значення числової чи рядкової константи утвореної з лексеми токена). Задача лексичного аналізатора – виокремити лексеми токенів і повідомити синтаксичний аналізатор про тип токена та його лексичне значення.
    Ієрархічний аналіз називається розбором (parsing) чи синтаксичним аналізом, у ході якого відбувається групування токенів програми. В синтаксичному аналізі символом називають токени(термінали) та групи токенів об'єднаних у логічне ціле в процесі аналізу (нетермінали).
    Синтаксис звичайно визначається контесктно-незалежною граматикою, що складається з символів – терміналів та нетерміналів, стартового символу що належить множині нетерміналів, та контесктно-незалежних продукцій.
    Програма є послідовністю терміналів, яку можна вивести зі стартового символу послідовно застосовуючи правила виводу (продукції). Продукція – це заміна послідовності символів S1 на послідовність символів S2 (Позначається. S1 : S2 або S1 -> S2). Продукція називається контесктно-незалежною, якщо S1 – один символ. Звичайно розглядаються лише контесктно-незалежні продукції.
    Задача синтаксичного аналізатора – встановити шлях, яким вхідна програма виводиться з стартового символа.
    Наприклад, наступна граматика із трьох продукцій описує вирази (expression), що можуть складатись з ідентифікаторів (identifier), чисел (number), та знаку додавання +
    expression : identifier
    expression : number
    expression : expression + expression
    Перший рядок означає що будь-який ідентифікатор є виразом. Другий рядок означає що будь-яке число є виразом. Третій рядок означає що будь-яка послідовність з двох виразів розділених знаком додавання теж є виразом.
    В цій граматиці символами є expression, number, identifier та +. Expression є стартовим символом і нетерміналом, решта символів є терміналами.
    Класифікація компіляторів
    Відомі компілятори
    GCC
    Генератори аналізаторів
    Побудовані алгоритми, що перетворюють опис вхідної мови у програму, що виконує аналіз і є велика кількість реалізацій цих алгоритмів. Є також утиліти, що автоматизують решту фаз компіляції та системи створення компіляторів у цілому
    В Unix поширені генератор лексичних аналізаторів (F)Lex, та генератори синтаксичних аналізаторів Bison та Yacc.
    Інтерпретатор (interpreter) - програма чи технічні засоби, необхідні для виконання інших програм; вид транслятора, який здійснює пооператорну (покомандну) обробку, перетворення у машинні коди та виконання програми або запиту (на відміну від компілятора, який транслює у машинні коди всю програму без її виконання).
    Інтерпретатори можуть працювати як з вихідним кодом програми, написаним на мові програмування, так і з байт-кодом (інтерпретатори байт-коду).


    Список використаної літератури
    Абрамов С.А., Зима Е.В. Начала информатики. – М.: Наука, 1989. – 256 с.
    Інформатика: Комп’ютерна техніка. Комп’ютерні технології. Посіб./ За ред. О.І.
    Информатика. Базовый курс / Под ред. Симоновича С.В. – СПб., 1998.
    Жалдак М.І., Рамський Ю.С. Інформатика. – К.: "Вища школа", 1991. – с.
    Пушкаря – К.: Видав-ничий центр "Академія", 2001. – 696 с.Vchys: ГДЗ, Решебники , Ответы, Реферати, Твори, ПрезентаціїГДЗ, Решебники и Ответы