Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВИ АЛГОРИТМІЗАЦІЇ.doc
Скачиваний:
9
Добавлен:
09.11.2019
Размер:
511.49 Кб
Скачать

3.2. Мови|язики| програмування і програмне|програмова| середовище|середовище|

Як відомо, технічні засоби комп'ютера працюють в двійковому форматі представлення даних і команд. Програмувати в двійковому форматі дуже громіздко. Тому з самого зародження обчислювальної техніки використовувалися символічні мови програмування – символьні (текстові) рядки, зрозумілі людині-програмістові, які спеціальна програма-транслятор переводить в двійковий код, зрозумілий комп'ютеру, - так званий машинний код.

Можливості системи команд якнайповніше використовує мова Асемблера (Assembler, від assemble – збирати, вмонтовувати, англ.) – так звана мова низького рівня. У загальному випадку один символьний рядок Асемблера, як правило, породжує одну машинну команду.

До поширених сучасних професійних універсальних мов|язиків| високого рівня відносять ПАСКАЛЬ (Pascal|) [1,2] і Сі (C|із|, С++, C#|) [3,4,5]. Вони відрізняються компактнішим описом програми, ніж Асемблер. Один символьний рядок МВР породжує в середньому 5-6 команд машинного коду.

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

  • редактор символьного тексту програми, складеної на МВР;

  • редактор екранних форм, за допомогою яких відображуються|відображають| результати обчислень|підрахунків| і органи управління обчислювальним процесом;

  • транслятор, що здійснює переклад програми, написаної на МВР (початковий текст), в так званий об'єктний код – двійковий машинний код, доповнений зсилками на імена зовнішніх щодо трансльованої програми змінних і функцій;

  • розвинені бібліотеки стандартних програм загально-математичного і спеціалізованих напрямів;

  • компонувальник, що об'єднує код трансльованої програми з об'єктними кодами інших, у тому числі бібліотечних, програм в єдиний завантажувальний *.exe – модуль і запам'ятовує його на зовнішньому носієві (диску);

  • засоби відлагодження програм.

В даний час транслятори, як правило, об'єднуються з компонувальниками і називаються компіляторами (compile – збирати, англ.)

До сучасного програмного|програмової| середовища|середовища| відносяться: DELPHI| (мова|язик| Паскаль) [6], Borland| С++ Builder| 6 (мова|язик| C++|) [7], С# технології .NET Framework| (мова|язик| C#| - читається: Сі шарп| або Сі дієз) [8,9], Visual| C++|[10], Visual| Basic| [11].

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

3.3. Структура програмних комплексів

Велика програма (програмний комплекс) складається з головної програми, з якої починається робота програмного комплексу, і набору підпрограм, що виконують окремі обчислювальні функції. Якоюсь мірою головна програма подібна до змісту книги з введенням: у ній міститься перелік підпрограм і порядок їх виклику, а також дані, що інформаційно поєднують ці підпрограми. Окремі розділи книги – це підпрограми першого рівня. У свою чергу, вони можуть містити параграфи – підпрограми другого рівня, обслуговуючі старших за ієрархією, і так далі

Текст книги може посилатися на інші книги, зокрема, на довідники. У нашій термінології – це бібліотеки стандартних підпрограм (БСПП). Кожна мова високого рівня має свій набір БСПП, що значно полегшує роботу програміста, оскільки не доводиться кожного разу заново ‘винаходити велосипед’. Зазвичай бібліотеки стандартних підпрограм сучасних МВР містять наступні підпрограми:

  • обчислення|підрахунки| математичних функцій (sin|, tg|, ln|, exp|.. і так далі)

  • роботи із|із| зовнішніми пристроями|устроями| (клавіатура, миша, дисплей, принтер, диски)

  • роботи з|із| графікою

  • людино-машинного інтерфейсу (MMI - man-machine interface,англ.)

  • створення/знищення|створіння| об'єктів для об'єктно-орієнтованого програмування

  • звернення до функцій операційної системи, так званий API (application program interface,англ).

Процес розробки складного програмного|програмового| комплексу починається з розбиття початкового|вихідного| завдання|задачі| на окремі, більш-менш самостійні підзадачі, які розбиваються на ще дрібніші|мілкі| підзадачі і так далі поки об'єм|обсяг| підзадачі нижнього рівня ієрархії буде осяжно малим, – не більше 1-2 сторінок тексту на МВР.

Зазвичай використовується технологія низхідного програмування [12]: у програмі, старшій за ієрархією, робляться виклики підпрограм, але замість реальної підпрограми ставиться підпрограма - ‘заглушка’, що лише імітує роботу справжньої підпрограми.

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

Символьні тексти програмного комплексу можуть зберігатися в декількох окремих символьних файлах з розширеннями:

*.pas-| для Pascal - програм

*.c|із| – для програм на Сі

*.cpp-| для програм на C++|

*.cs| – для програм на C#|

*.bas| – для програм на Бейсику

*.asm| – для програм на Асемблері.

Для складних програмних|програмових| комплексів кількість таких символьних файлів з|із| початковим|вихідним| текстом може досягати декількох сотень і навіть тисяч з|із| розміщенням в кожному з них текстів декількох десятків підпрограм. Сучасне програмне|програмова| середовище|середовище| дозволяє компонувати програмні|програмові| комплекси, окремі символьні файли яких написані на різних мовах|язиках|.