А   Б  В  Г  Д  Е  Є  Ж  З  І  Ї  Й  К  Л  М  Н  О  П  Р  С  Т  У  Ф  Х  Ц  Ч  Ш  Щ  Ю  Я 


Окремий програміст

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

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

Бібліотеки для зберігання модулів можуть бути організовані як для окремих програмістів, так і для цілих груп розробників, пов'язаних або не пов'язаних між собою. При цьому необхідно подбати про регулярне чищення бібліотеки від непотрібних вже варіантів модулів і передбачити процедуру відновлення вмісту бібліотек на випадок збою в роботі диска.
  Нові абстрактні типи даних, створені в середовищах розробки C, можуть бути власністю окремих програмістів, невеликих груп або компаній. Абстрактні типи даних можуть також міститися в стандартні бібліотеки класів, призначені для широкого поширення. Це не обов'язково сприяє поширенню стандартів, хоча de facto робить появу стандартів цілком імовірним. Повною мірою значення мови C буде усвідомлено тільки тоді, коли стануть широко доступними великі стандартизовані бібліотеки класів. Повинен бути ініційовано формальний процес, що сприяє розробці стандартизованих бібліотек. У Сполучених Штатах така стандартизація часто відбувається завдяки ANSI, Американському національному інституту стандартів. Незалежно від того, яким чином, в кінцевому рахунку, з'являться ці бібліотеки, читач, який вивчає C і об'єктно-орієнтоване програмування, буде готовий скористатися перевагами нових видів прискореної, орієнтованої на компоненти розробки програмного забезпечення, яку роблять можливою бібліотеки абстрактних типів даних.

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

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

Ці мови є загальноприйнятими і використовуються як засіб не тільки програмування, а й обміну алгоритмами між окремими програмістами.

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

Аналогічна тенденція має місце і в області розробки засобів програмного забезпечення (ПО) АБИС. У зазначених умовах конкурентні можливості окремих програмістів або їх невеликих груп вельми обмежені і мають мало шансів на успіх. Зусилля цих програмістів можуть бути корисні в основному для підтримки експлуатації вже наявних промислових розробок програмних продуктів (ПП) або, в кращому випадку, - їх адаптації або прив'язки до приватних умов експлуатації. Немає сумніву, що зазначені тенденції в XX столітті не тільки збережуться, але й істотно посиляться.

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

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

В кінці 60 - х років фірма ІБМ, провідна компанія з виробництва ЕОМ в капіталістичному світі, зробила спробу поєднати все краще, що є в основних мовах програмування, в одній мові PL /I. Головним гаслом було: мати в одній мові кошти, необхідні всім категоріям програмістів, з тим щоб окремому програмісту досить було ознайомитися лише з визначеною підмножиною мови. Це гасло не знайшов широкого визнання, особливо серед інших виробників ЕОМ, так що продовжують використовуватися окремі мови, тим більше що PL /I складний для вивчення і використання.

Ці мови є загальноприйнятими і використовуються не тільки як засіб програмування, але і як засіб обміну алгоритмами між окремими програмістами.

В даний - час з мов автоматичного програмування для вирішення математичних задач найбільшого поширення набули АЛГОЛ і ФОРТРАН. Ці мови є загальноприйнятими і використовуються не тільки як засіб програмування, а й як засіб обміну алгоритмами між окремими програмістами.

Ці мови є загальноприйнятими і використовуються не тільки як засіб програмування, але і як засіб обміну алгоритмами між окремими програмістами.

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

Із зростанням загального числа ситуацій в системі її швидкодію істотно уповільнювався саме через зростання часу роботи функції MATCH. Виникла необхідність в іншому підході до розпізнавання ситуації. У новій версії системи FLEX функція MATCH формується автоматично для кожного окремого програміста. Далі в процесі роботи виникають ситуації зіставляються функцією MATCH не з усіма наявними в системі ситуаціями, а тільки з тими, які передбачені для даного програміста.

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

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

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

Бібліотеки процедур бувають стандартними, комерційними і фірмовими. Стандартні бібліотеки широко поширені. Кожен програміст може їх придбати і використовувати. Деякі компанії займаються спеціально створенням комерційних бібліотек і продають їх іншим компаніям і окремим програмістам. У багатьох компаніях (і навіть у індивідуальних програмістів) за роки роботи складаються свої фірмові бібліотеки. Якщо, наприклад, в комп'ютерних іграх ви звертали увагу на те, що програми різних компаній мають різний стиль оформлення і управління, то це пов'язано з тим, що кожна компанія використовують свої індивідуальні бібліотеки. Фірмові бібліотеки не поширюють і не продають. Їх ретельно захищають від конкурентів.

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

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

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

Корисно знайти особливі обмеження або узагальнення Г - графів мови. Одне з цікавих узагальнень пов'язано із завданням деяких функцій довжини на дугах графа. У початковий момент довжини всіх дуг однакові. У міру послідовного використання дуг значення їх функції довжини зростають. Альтернативні варіанти шляхів вибираються завжди з урахуванням довжини. Таким чином, накопичуючи досвід, машина покращує якість своєї роботи. Якщо таку зважувати схему вмонтувати, наприклад, в транслятор з Фортрану, то транслятор зможе в деякому сенсі навчитися розпізнавати стилю і почерку окремих програмістів.