- •Міністерство освіти і науки україни
- •9.12. Огляд WinDev 154
- •10. Історія операційних систем 169
- •Список літератури 187
- •Передмова
- •1. Передвісники комп’ютерної ери
- •1.1. Комп’ютерна програма–що це?
- •1.2. Доелектронна історія обчислювальної техніки
- •Логарифмічна лінійка
- •1.3. Можливості двійкового коду
- •1.4. Розвиток двійкової системи
- •1.5. Винахід перших комп’ютерів
- •Перша в історії працююча програмнокерована універсальна обчислювальна машина z-3 (1941 р.)
- •1.6. Гарвардська архітектура
- •1.7. Архітектура фон Неймана
- •1.8. Створення зрозумілих людині кодів
- •1.9. Крок на благо програмування
- •1.10. Можливості програмного управління
- •2. Нові мови програмування
- •2.1. Поневіряння пакетної обробки
- •2.2. Універсальна мова програмування
- •2.3. Усунення неоднозначності
- •2.4. Заклик до дотримання математичної строгості
- •2.5. Пошук та усунення помилок
- •2.6. Нелегке мистецтво програмування
- •2.7. Обчислювальна техніка та програмування в срср
- •3. Розквіт та хаос програмного забезпечення
- •3.1. Місце народження хакерів
- •3.2. Два чародії програмування
- •3.3. Перші промислові стандарти
- •3.4. Дружній інтерфейс
- •3.5. Прообраз сучасного «ноутбука»
- •4. Болісний шлях розвитку програмування
- •4.1. Плануюче обчислення
- •4.2. Внесок Великої Британії
- •4.3. Програмування англійською мовою
- •5. Три комерційні гіганти
- •5.1. Перша комерційна мова програмування
- •5.2. Обчислювальна техніка приходить у бізнес
- •5.3. Народження codasyl
- •5.4. Конференція в Цюріху
- •5.5. На шляху до сумісності комп’ютерів
- •5.6. Розбіжності Нового Світу
- •6. Десятиліття динамічного розвитку
- •6.1. Перші кроки непроцедурної мови
- •6.3. Алфавітне хрещення
- •6.4. Успіх та суперечки
- •6.5. Інженерний підхід
- •6.6. Структурний підхід
- •6.7. Поява мови “Ада”
- •7. Програмування приходить у наші домівки
- •7.1. Розквіт Бейсіка
- •7.2. Поява мови Модула-2
- •7.3. Музикальний француз
- •7.4.Довгожитель Lisp – інструмент функціонального програмування
- •7.5. Prolog – нездійснена мрія еом V покоління
- •7.6. Революція на ім’я Java
- •8. Історія і шляхи розвитку супер-еом
- •8.1. Усе починалося з менфреймов
- •8.2. Напрями розвитку обчислювальної техніки
- •8.3. Розвиток елементної бази. Закон Мура
- •8.4. Вдосконалення архітектури
- •Звичайна послідовн обробка
- •Конвеєрна обробка
- •9. Сучасний стан та перспективи розвитку програмування
- •9.1. Криза у програмуванні
- •9.2. Методологія процедурно-орієнтованогопрограмування
- •9.3. Методологія об’єктно-орієнтованогопрограмування
- •9.4. Методологія об’єктно-орієнтованогоаналізу та проектування
- •9.5. Технології програмування
- •9.6. Case –засоби
- •9.7. Методологія rad
- •9.11.1. Знайомство с LightSwitch
- •9.11.2. Архитектура LightSwitch
- •9.11.3. Створення проекту в Microsoft Visual Studio LightSwitch
- •9.11.4. Дванадцять основних переваг LightSwitch
- •9.12. Огляд WinDev
- •9.12.1. ПризначенняWinDev
- •9.12.2. Деякі характеристики wLanguage
- •9.13. Технологія model checking
- •9.14. NeoBook – программирование для непрограммистов
- •9.14.1. Введення для секретарок
- •9.14.3. Можливості та області застосування
- •9.15. Файлові системи найближчого майбутнього
- •9.15.1. Зетта-повінь настає
- •9.15.2. Файлова система zfs
- •9.15.3. Файлова системаBtrfs
- •9.15.4. Файлова системаHammer
- •10. Історія операційних систем
- •10.1. Послідовна обробка даних
- •10.2. Прості пакетні системи
- •10.3. Багатозадачні пакетні системи
- •10.4. Системи з режимом розподілу часу
- •10.5. Основні досягнення
- •10.6. Сучасні системи unix
- •10.7. Os/2. Битва двох гігантів
- •Список літератури
2. Нові мови програмування
В середині 50-х років, коли обчислювальна техніка міцно вкорінялася в університетах та науково-дослідних центрах США та Європи, наступив час прогресу в області програмування, а в 60-і програмування стає загальнодоступним. Проте нові розробки зовсім не заперечували усьому тому, що було зроблене раніше. Навпаки, вони спиралися на вже побудований фундамент. Транслятори для так званих мов Асемблера– символічних мов машинних команд (такі мови вимагають від програміста глибокого знання апаратури) залишилися важливим засобом програмування для будь-якого комп’ютера і до цього часу. Проте їх роль поступово зменшувалась. Посередником між програмістами і машинами стали мови програмування – мови нового типу. Від мови асемблера вони відрізнялися більшою гнучкістю та можливістю використання конструкцій, схожих на речення. Але мова Асемблер ще й досі використовується як проміжна мова для компіляторів з мов високого рівня.
З появою мов високого рівня програмісти одержали можливість більше часу приділяти вирішенню конкретної проблеми, не відволікаючись на вельми тонкі питання організації самого процесу виконання завдання на комп’ютері. Крім того, поява цих мов ознаменувала перший крок на шляху створення програм, які вийшли за межі науково-дослідних центрів. Транслятори для цих мов програмування, які перетворювали символічні програми у машинний код, отримали назву – компілятори. При цьому кожен оператор мови високого рівня породжував низку машинних команд на мові Асемблер.
Університети почали пропонувати навчальні програми за новою технологією, і кількість виробників апаратного забезпечення швидко зростала. Раптово комп’ютери і присвячені ним навчальні курси сталі доступними всім, або, принаймні, тим, хто відвідував університет.
У той же час комп’ютери стали значно ефективнішими. Коло проблем, які вони могли вирішувати, серйозно змінилося як за рівнем, так і за складністю. Мови програмування ставали могутнішими та простішими у використанні. 60-і роки були періодом феноменального зростання комп’ютерних технологій і завдали тон тій частині сторіччя, що залишилася.
Тим часом, у ці роки розвиток галузі міг піти тупиковим шляхом. Менш талановиті люди бралися за вирішення складніших завдань. Дійсно, як можна було знайти ще талановитіших розробників, ніж програмісти 50-х років? Ситуація вела до катастрофи, але катастрофи не відбулося. Програмне забезпечення, яке було розроблене у 60-х роках, відрізняється такою ж високою якістю, як і програми, що були створені десятиліттям раніше.
Цей парадокс має просте, хоча і неочевидне, пояснення. Програмісти у 60-і роки були добросовісними, а якість програм високою, завдяки відсутності персональних засобів компіляції.
Компіляція у 60-і роки була справою нелегкою. Здебільшого компанія або університет мали тільки один величезний комп’ютер. Компілятор на цьому комп’ютері, по-перше, знаходився досить далеко від робочого місця програміста, по-друге, був настільки завантажений, що час роботи на ньому доводилося резервувати заздалегідь, і, по-третє, він був вкрай чутливий до помилок у синтаксисі та конструкціях мови програмування.
Іншими словами, компіляція недостатньо досконалої програми вимагала величезних непродуктивних витрат часу та сил, і, в результаті, могла вимагати значних доопрацювань. Уявіть, що вам потрібно пройти декілька десятків метрів, нести в руках купу перфокарт заввишки 20-30 см тільки для того, щоб машина видала назад цю пачку з повідомленням про «неузгодження типів» на 30-ій перфокарті. І могло статися так, що до компілятора наступного разу вас допустять тільки через декілька днів.
Процес компіляції примушував програмістів годинами просиджувати за робочими столами з олівцем у руках, ретельно перевіряючи свої програми, звертатися за допомогою до колег і знову читати і читати свої перфокарти доти, доки не будуть вичерпані всі можливі засоби їх перевірки. Ніякі заходи не здавалися зайвими, оскільки ціна недбалості була дуже висока.