Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вступ до спец.Лекции.doc
Скачиваний:
11
Добавлен:
22.02.2016
Размер:
2.92 Mб
Скачать

4.2. Внесок Великої Британії

Програмісти вже були знайомі з поняттям підпрограми: Грейс Хоппер та її колеги застосовували підпрограми на гарвардському “Марку-1”, проте кожна підпрограма вирішувала свою специфічну задачу. Перші програмісти майже завжди мали блокноти із записом найспоживаніших підпрограм, щоб у разі потреби не складати їх наново. Проблема полягала у тому, що адреси розташування команд та змінних мінялися залежно від їх розміщення у пам’яті.

Налаштування підпрограми на певне місце у пам’яті, вочевидь, потребувало автоматизації, і вперше це було зроблено на новому комп’ютері EDSAC (1949 р), який був створений Морісом Уїлксом у Кембриджі та заснований на ідеї комп’ютера EDVAC.

Моріс Уїлкс назвав мнемонічну схему для EDSAC та бібліотеки підпрограм збираючою системою (assembly system – звідси слово “асемблер”), оскільки вона збирала послідовності підпрограм. Ідея виявилася настільки продуктивною, що всі подальші покоління програмістів на всіх ЕОМ відмовилися від абсолютного кодування, тобто програмування в абсолютних адресах. Мови програмування низького рівня, в яких коди операцій були замінені мнемонічними позначками, почали називатися мовами Асемблера або Автокодами (мнемокодами), а перетворюючі програми – асемблерами.

Мови Асемблера використовуються й дотепер, оскільки тісно пов’язані з машиною. Дійсно, мова асемблера – це машинно-залежна мова, яка спроектована так, щоб вона відповідала набору машинних команд конкретного комп’ютера. Тому мову асемблера люблять ті програмісти, які прагнуть стиснути свої програми до мінімального розміру, що дозволяє виконати їх максимально швидко та ефективно. Саме з цих причин асемблер ідеально підійшов для програмування телеметричної системи, яка була використана в експедиції з пошуку “Титаніка”.

Мова Асемблера – це перший крок до позбавлення програміста від дрібниць двійкового кодування, завдяки використанню символів (слів), які легко зрозуміти та запам’ятати.

Влітку 1952 р. у Манчестері Алік Гленнрозробив першу мову високого рівня під назвою “Автокод”, і став одним з перших творців комп’ютерних мов. “Автокод” дозволяв програмістові користуватися у програмах математичними формулами. Після введення програм у “Марк-1” “Автокод” транслював їх у програми на машинному коді. На відміну від інтерпретаторів, програми у машинному коді, що були згенеровані “Автокодом”, можна було зберігати та виконувати у будь-який час.

4.3. Програмування англійською мовою

Грейс Хоппер вирішила піти далі. Спираючись на власний досвід роботи, вона зі своєю групою зайнялася розробкою системи, яка могла б транслювати програми, що були написані на мові високого рівня, у програми на машинному коді. Транслююча програма повинна за мілісекунди виконувати велику роботу, що пов’язана з програмуванням: організація підпрограм, виділення пам’яті комп’ютера, перетворення операторів мови високого рівня у низку машинних команд. Хопер назвала цю транслюючу програму компілятором (compiler – компонувальник).

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

Хоча “Автокод” Гленна мав аналогічні властивості, компілятор Хопер став першою транслюючою системою, що здобула широку популярність. Таким чином, на той час до вжитку увійшли два типи мов високого рівня: такі, що компілюються та такі, що інтерпретуються. Відмінності між ними залишаються важливими і дотепер. Хопер назвала свій перший компілятор А-0, маючи на увазі, що це лише початок. Впродовж років вийшли кращі версії А-1, А-2, А-3. Треба зазначити, що сучасні системи програмування включають обидві компоненти – інтерпретуючу та компілюючу. Перша призначена для відлагодження програм і має можливість перегляду щодо коректного виконання програм, а друга – для остаточного формування коду програм для багаторазового використання. З іншого боку, мови програмування для Internet-програм суто інтерпретуючі, що робить їх мобільними для різних програмних платформ. Мобільність, тобто переносимість на інші програмні платформи, забезпечується відповідними інтерпретаторами, які однаково інтерпретують програми при їх виконанні.

Тим часом, Грейс Хоппер поставила перед собою нову мету: створити мову, за допомогою якої можна було б розв’язувати будь-які завдання, а не тільки математичні.

Виходячи з цього, Хопер та її група взялися за розробку компілятора, який дозволяв би особам, які зайняті у бізнесі, програмувати на мові, яка за можливістю наближається до звичайної англійської мови. Через декілька місяців роботи був виділений список приблизно з 30 слів, які стали “робочими конячками” мови.

У 1956 р. компілятор, що отримав назву “Флоу-метік” (FLOW-MATIC), надійшов до ринку. Таким чином, в середині 50-х років завдяки стрімкому розширенню використання компіляторів розвиток програмування отримав міцний фундамент. Золоте століття мов програмування було не за горами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]