Історія створення мов програмування, Дослідження, Наука, Статті

11.09.2015

Історія створення мов програмування

Однією з найбільш революційних ідей призвели до створення автоматичних цифрових обчислювальних машин, була висловлена в 20-х роках 19 століття Чарльзом Бебиджем думка про попереднім записом порядку дії машини для подальшої автоматичної реалізації обчислень – програмі. І, хоча використана Бебиджем запис програми на перфокартах, придумана для управління такими верстатами французьким винахідником Жозеф Марі Жаккар, технічно не має нічого спільного з сучасними прийомами зберігання програм ПК, принцип тут по суті один. З цього моменту починається історія програмування.

Пеклі Левлейс, сучасницю Бебиджа, називають першим у світі програмістом. Вона теоретично розробила деякі прийоми керування послідовністю обчислень, які використовуються в програмуванні і зараз. Нею ж була описана і одна з найважливіших конструкцій практично будь-якої сучасної мови програмування – цикл.

Революційним моментом в історії мов програмування стала поява системи кодування машинних команд за допомогою спеціальних символів, запропонованої Джоном Моучли. Система кодування, запропонована ним, надихнула одну з його співробітниць Грейс Мюррей Хоппер. При роботі на комп’ютері «Марк-1» їй і її групі довелося зіткнутися з багатьма проблемами і всі, що ними придумано, було вперше. Зокрема вони придумали підпрограми. І ще одне фундаментальне поняття техніки програмування вперше ввели Хоппер і її група – «налагодження».

В кінці 40-х років Дж. Моучли створив систему під назвою «Short Code», яка була примітивним мовою програмування високого рівня. В ній програміст записував вирішувану задачу у вигляді математичних формул, а потім, використовуючи спеціальну таблицю, перекладав символ за символом, перетворював ці формули в двухлитерные коди. У подальшому спеціальна програма комп’ютера перетворювала ці коди в двійковий машинний код. Система, розроблена Дж. Моучли, вважається одним з перших примітивних інтерпретаторів.

Вже в 1951 р. Хоппер створила перший в світі компілятор і нею ж був введений сам цей термін. Компілятор Хоппер здійснював функцію об’єднання команд і в ході трансляції виробляв організацію підпрограм, виділення пам’яті комп’ютера, перетворення команд високого рівня (в той час псевдокодов) в машинні команди. «Підпрограми знаходяться у бібліотеці (комп’ютера), а коли ви підбираєте матеріал з бібліотеки – це називається компіляцією» – так вона пояснювала походження введеного нею терміна.

У 1954 році група під керівництвом Р. Хоппер розробила систему, що включає мову програмування і компілятор, яка в подальшому отримала назву Math-Matic. Після вдалого завершення робіт по створенню Math-Matic Хоппер і її група взялися за розробку нової мови і компілятора, який дозволив би користувачами програмувати на мові, близькій до звичайного англійської. У 1958 р. з’явився компілятор Flow-Matic. Компілятор Flow-Matic був першою мовою для задач обробки комерційних даних.

Розробки в цьому напрямку привели до створення мови Кобол (COBOL – Common Business Oriented Language). Він був створений в 1960 році. У цьому мові порівняно з Фортраном і Алголом, слабше розвинені математичні засоби, але зате добре розвинені засоби обробки текстів, організація виводу даних у формі необхідного документа. Він задумувався як основну мову для масової обробки даних в сферах управління і бізнесу.

Середина 50-х років характеризується стрімким прогресом в області програмування. Роль програмування в машинних командах стала зменшуватися. Стали з’являтися мови програмування нового типу, що виступають у ролі посередника між машинами і програмістами. Першим і одним з найбільш поширених був Фортран (FORTRAN, від FORmula TRANslator – перекладач формул), розроблений групою програмістів фірми IBM в 1954 році (перша версія). Ця мова був орієнтований на науково-технічні розрахунки математичного характеру і є класичним мовою програмування при рішенні на ПК математичних і інженерних завдань.

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

Особливе місце серед мов програмування займає Алгол, перша версія якого з’явилася в 1958 році. Одним з розробників Algol’у був «батько» Фортрану Джон Бэкус. Назва мови ALGOrithmic Language підкреслює ту обставину, що він призначений для запису алгоритмів. Завдяки чіткій логічній структурі Алгол став стандартним засобом запису алгоритмів в науковій і технічній літературі.

У середині 60-х років Томас Курц і Джон Камені (співробітники математичного факультету Дартмунтского коледжу) створили спеціалізований мова програмування, який складався з простих слів англійської мови. Новий мову назвали «універсальним символічним кодом для початківців» (Beginner All-Purpose Symbolic Instruction Code, або, скорочено, BASIC). Роком народження нової мови можна вважати 1964. Сьогодні універсальна мова Бейсік (має безліч версій) придбав велику популярність і отримав широке розповсюдження серед користувачів ПК різних категорій у всьому світі. Значною мірою цьому сприяло те, що Бейсік почали використовувати як вбудований мова персональних комп’ютерів, широке поширення яких почалося в кінці 70-х років. Однак Бейсік неструктурный мову, і тому він погано підходить для якісного навчання програмуванню. Справедливості заради слід зауважити, що останні версії Бейсика для ПК (наприклад, QBasic) стали більш структурними і за своїм образотворчим можливостям наближаються до таких мов, як Паскаль.

Розробники орієнтували мови на різні класи завдань, у тій чи іншій мірі прив’язували їх до конкретної архітектури ПК, реалізовували особисті смаки та ідеї. У 60-ті роки були зроблені спроби подолати цю «різноголосся» шляхом створення універсальної мови програмування. Першим дітищем цього напрямку став PL/1 (Programm One Language), розроблений фірмою IBM в 1967 році. Ця мова претендував на можливість вирішувати будь-які завдання: обчислювальні, обробки текстів, накопичення та пошуку інформації. Однак він виявився занадто складним, транслятор з недостатньо оптимальним і містив ряд невиявлених помилок.

Однак лінія на універсалізацію мов була підтримана. Старі мови були модернізовані універсальні варіанти: Алгол-68 (1968), Фортран-77. Передбачалося, що подібні мови будуть розвиватися й удосконалюватися, стануть витісняти всі інші. Однак жодна з цих спроб не увінчалася успіхом.

Мова ЛИСП з’явився в 1965 році. Основним у ньому служить поняття рекурсивно певних функцій. Оскільки доведено, що будь-який алгоритм може бути описаний за допомогою деякого набору рекурсивних функцій, то ЛИСП по суті є універсальною мовою. З його допомогою ПК може моделювати досить складні процеси, зокрема – інтелектуальну діяльність людей.

Пролог розроблений у Франції в 1972 році для вирішення проблем «штучного інтелекту». Пролог дозволяє у формальному вигляді описувати різні твердження, логіку міркувань і змушує ПК давати відповіді на задані питання.

Значною подією в історії мов програмування стало створення в 1971 році мови Паскаль. Його автор – швейцарський учений Ніклаус Вірт. Вірт назвав його на честь великого французького математика і релігійного філософа XVII століття Блеза Паскаля, який винайшов перше підсумкове пристрій, саме тому новій мові було присвоєно його ім’я. Цю мову спочатку розроблявся як навчальний мова структурного програмування, і, дійсно, зараз він є одним з основних мов навчання програмуванню в школах і вузах.

У 1975 році дві події стали віхами в історії програмування – Білл Гейтс і Пол Аллен заявили про себе, розробивши свою версію Бейсика, а Вірт і Йенсен випустили класичне опис мови «Pascal User Manual and Report».

Не менш вражаючою, в тому числі і фінансової, успіху домігся Філіп Кан, француз, який розробив в 1983 році систему Турбо-Паскаль. Суть його ідеї полягала в об’єднанні послідовних етапів обробки програми – компіляції, редагування зв’язків, налагодження і діагностики помилок – в єдиному інтерфейсі. Турбо-Паскаль – це не тільки мова і транслятор з нього, але ще й операційна оболонка, що дозволяє користувачеві було зручно працювати на Паскалі. Ця мова вийшов за рамки навчального призначення і став мовою професійного програмування з універсальними можливостями. У силу названих достоїнств Паскаль став джерелом багатьох сучасних мов програмування. З тих пір з’явилося декілька версій Турбо-Паскаля, остання – сьома.

Фірма Borland/Inprise завершила лінію продуктів Турбо-Паскаль і перейшла до випуску системи візуальної розробки для Windows – Delphi.

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

Період з кінця 60-х до початку 80-х років характеризується бурхливим зростанням кількості різних мов програмування, які супроводжують кризу програмного забезпечення. У січні 1975 року Пентагон вирішив навести порядок в хаосі трансляторів і заснував комітет, якому було наказано розробити один універсальний мову. У травні 1979 року був оголошений переможець – група вчених на чолі з Жаном Ихбиа. Переміг мова охрестили Пекла, в честь Огасты Ади Левлейс. Ця мова призначена для створення і тривалого (багаторічного) супроводження великих програмних систем, допускає можливість паралельної обробки, керування процесами в реальному часі.

протягом багатьох років програмне забезпечення будувалося на основі операційних і процедурних мов, таких як Фортран, Бейсік, Паскаль, Ада, Сі. По мірі еволюції мов програмування отримали широке поширення і інші, принципово інші підходи до створення програм.

Існує велика кількість класифікацій мов програмування за різними ознаками. Найбільш поширеними є наступні класифікації:

? мови програмування високого (Паскаль, Бейсік) і низького рівня (Асемблер);

? строго типізовані (Паскаль) і нестрого типізовані (Бейсік);

? з підтримкою об’єктно-орієнтованого програмування (Сі++) і без і т. д.

Розглянемо іншу класифікацію. Мови програмування поділяються на:

1) Машинно-орієнтовані мови:

? машинні мови;

? мови символічного кодування;

? автокоды;

? макрос.

2) Машинно-незалежні мови:

? проблемно-орієнтовані мови;

? універсальні мови;

? діалогові мови;

? непроцедурних мов.

Машинно-орієнтовані мови

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

? висока якість створюваних програм (компактність і швидкість виконання);

? можливість використання конкретних апаратних ресурсів;

? передбачуваність об’єктного коду і замовлень пам’яті;

? для складання ефективних програм необхідно знати систему команд і особливості функціонування даного ПК;

? трудомісткість процесу складання програм (особливо на машинних мовах і ЯСК), погано захищений від появи помилок;

? низька швидкість програмування;

? неможливість безпосереднього використання програм, складених на цих мовах, на ЕОМ інших типів.

Машинно-орієнтовані мови за ступенем автоматичного програмування поділяються на класи.

Машинний мова

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

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

Мови Символічного Кодування

Мови Символічного Кодування (далі ЯСК), так само, як і МА, є командними. Однак коди операцій і адреси в машинних командах, що представляють собою послідовність двійкових (у внутрішньому коді) або вісімкових (часто використовуваних при написанні програм) цифр, ЯСК замінені на символи (ідентифікатори), форма написання яких допомагає програмісту легше запам’ятовувати смисловий зміст операції. Це забезпечує суттєве зменшення кількості помилок при складанні програм.

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

Автокоды

Існують мови, які включають в себе всі можливості ЯСК, за допомогою розширеного введення макрокоманд — вони називаються автокоды.

У різних програмах зустрічаються деякі досить часто використовуються командні послідовності, які відповідають певним процедурам перетворення інформації. Ефективна реалізація таких процедур забезпечується оформленням їх у вигляді спеціальних дій і включенням останніх в мову програмування, доступний програмістові. Дії переводяться в машинні команди двома шляхами – розстановкою і генеруванням. В постановочної системі містяться «остови» — серії команд, що реалізують необхідну функцію, позначену дією. Макроси забезпечують передачу фактичних параметрів, які в процесі трансляції вставляються в «кістяк» програми, перетворюючи її в реальну машинну програму.

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

Обидві зазначених системи використовують транслятори з ЯСК і набір макрокоманд, які також є операторами автокода.

Розвинені автокоды отримали назву ассемблеры. Сервісні програми та ін., як правило, складені на мовах типу асемблер.

Макрос

Мова, що є засобом для заміни послідовності символів описують виконання необхідних дій ЕОМ на більш стислу форму називається макрос засіб заміни).

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

Макрос однаково може працювати, як з програмами, так і з даними.

Машинно-незалежні мови

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

Подібні мови отримали назву високорівневих мов програмування. Програми, що складаються на таких мовах, являють собою послідовності операторів, структуровані згідно з правилами розглядання мови (завдання, сегменти, блоки і т. д.). Оператори мови описують дії, які повинна виконувати система після трансляції програми на МА.

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

Проблемно-орієнтовані мови

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

Проблемних мов дуже багато, наприклад:

— Фортран, Алгол – мови, створені для рішення математичних завдань;

— Simula, Сленг — для моделювання;

— Лисп, Снобол – для роботи зі списочної структурами.

Універсальні мови

Універсальні мови були створені для широкого кола завдань: комерційних, наукових, моделювання і т. д. Перший універсальний мову був розроблений фірмою IBM, що став в послідовності мов PL/1. Другий за потужністю універсальна мова називається Алгол-68.

Діалогові мови

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

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

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

Одним з прикладів діалогових мов є Бейсік.

Непроцедурних мови

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

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

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

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

Історія створення мови програмування Basic і Visual Basic

Мова програмування Basic був створений в 1964 році двома професорами з Dartmouth College — Джоном Кенеми і Томасом Куртцом для навчання студентів навичкам програмування. Мова вийшов настільки простим і зрозумілим, що через деякий час його почали застосовувати і в інших навчальних закладах. У 1975 році, з приходом перших мікрокомп’ютерів, естафету Basic взяли Білл Гейтс і Пол Аллен, засновники Microsoft. Саме вони створили нову версію Basic для перших комп’ютерів «Альтаїр» (MITS Altairs), здатну працювати в 4КБ оперативної пам’яті. З часом саме ця версія і перетворилася в один з найбільш популярних мов програмування у світі. На шляху до вершини слави у Basic було безліч труднощів, які він завжди з честю долав, і коли з’явилися перші персональні комп’ютери IBM PC, саме він став стандартом в програмуванні, але вже у вигляді GW-Basic. Потім був Turbo Basic, QuickBasic, Basic PDS, але завжди при розробці нової версії мови зберігалася сумісність з попередніми версіями і програма, написана для практично першого Basic, цілком (з незначними змінами) могла б працювати і в наступних версіях цієї мови. Але настали нові часи, і на початку 90-х з’являється операційна система Microsoft Windows з новим графічним інтерфейсом користувача (GUI).

Життя програмістів перетворилася на пекло. Щоб створити просту програму, доводилося писати кілька сторінок коду: створювати меню та вікна, змінювати шрифти, очищати пам’ять, «малювати» кнопки і т. д. Однак переваги нового інтерфейсу були настільки незаперечні, що вже третя версія цієї операційної системи стала фактичним стандартом для персонального комп’ютера. В цей час в надрах Microsoft велося кілька паралельних проектів по створенню нової мови програмування для Windows. І в 1991 році під гаслом «тепер і початківці програмісти можуть легко створювати додатки для Windows» з’явилася перша версія нового інструментального засобу Microsoft Visual Basic. В той момент Microsoft досить скромно оцінював можливості цієї системи, орієнтуючи її, насамперед, на категорію початківців і непрофесійних програмістів. Основним завданням тоді було випустити на ринок простий і зручний інструмент розробки в тоді ще досить новою середовищі Windows, програмування в якої являло проблему і для досвідчених фахівців. Система програмування, створена розробниками Visual Basic, дозволяла «відсторонитися» від складної внутрішньої структури Windows і створювати програми з «кубиків», як у дитячому конструкторі. Меню, вікна, списки, кнопки, поля введення тексту та інші елементи інтерфейсу Windows додавалися в програму за допомогою найпростіших операцій drag&drop.

Свою першу програму VB-програмісти створювали вже через кілька хвилин після початку вивчення цієї мови! Більш того, Visual Basic дозволяв розробникам створювати нові об’єкти-«кубики», які також могли використовуватися в програмах нарівні зі стандартними. І хоча багато хто З-програмісти тихо сміялися над спробами Microsoft зробити простий і зрозумілий інструмент розробки Windows-програм, Visual Basic почав свій переможний хід по світу, і ніщо не могло зупинити цей процес. Останні бар’єри впали в 1994 році з випуском Visual Basic for Applications. Саме в цей час, після включення VBA до складу Microsoft Office Basic починає перетворюватися на один з основних стандартів програмування для Windows. Для фірми Microsoft мову Basic має особливе значення, у свій час розробка варіанта Basic для комп’ютера Altair 8800 поклала початок трудовим программистскому шляхи її засновників, Білла Гейтса і Пола Аллена. Тому у свій час — в 1989 році, коли прийшла пора розподілити основні напрямки створення середовищ розробки на різних мовах програмування між різними фірмами, Microsoft залишила за собою QuickBasic — середовище розробки програм на Basic’е, відмовившись, наприклад, від подальшої роботи над мовою програмування Pascal, залишивши його фірми Borland, яка, в свою чергу, зупинила роботи над своєю версією Basic’а (згодом Pascal стала мовою Delphi).

Спочатку замислювався як іграшка, Visual Basic від Microsoft неймовірно швидко завоював программистский світ. Його популярність обумовлена двома причинами: відносною простотою і продуктивністю. Програми на VB працюють повільніше своїх аналогів на C/C++, але все ж вони досить швидкі для багатьох ділових цілей і вимагають набагато менше часу на розробку. Форми були тієї самої зберігає зусилля абстракцією, яку запропонував VB програмістам Windows. IDE VB дозволила розробляти вікна графічно, перетягуючи елементи управління, такі як кнопки, списки, з панелі інструментів у форму. Отримавши задовільний зовнішній вигляд форми, можна було переходити до кодової частини і писати обробники подій для кожного елемента керування форми.

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

Можливо, найважливішим було те, що були відсутні покажчики — вимога Білла Гейтса, починаючи з перших версій Microsoft BASIC. Хоча покажчики корисні, оскільки дозволяють прямий доступ до пам’яті за будь-якою адресою, їх використання пов’язане з помилками в тому випадку, якщо вони застосовуються неакуратно. Вимога граматичної простоти BASIC сходить до того факту, що спочатку він був створений як мову для навчання: «Beginner’s All-purpose Symbolic Instructional Code» (Багатоцільовий символьний командний код для початківців). VB версії 6 — це вже потужний мову, який можна використовувати для створення розподілених додатків із застосуванням компонентів СОМ і Microsoft Transaction Server. Microsoft запропонувала трирівневий підхід для архітектур «клієнт-сервер», у якому «тонкі» інтерфейси взаємодії з віддаленими компонентами VB для отримання даних з бази даних або з іншої машини.

За допомогою VBScript і VBA (VB для додатків) можна писати сценарії для web-браузерів і автоматизувати додатка Microsoft Office. Більш того, VB6 можна використовувати для створення елементів керування Active-X, що працюють разом з Internet Explorer, хоча це робиться вкрай рідко, оскільки потрібно, щоб на машині клієнта, що працює в Інтернеті, була встановлена бібліотека часу виконання DLL VB. Починаючи з VB5, програми VB компілювати в машинний код, але вони були засновані на застосуванні DLL, надає повсюдно використовувані функції і реалізує об’єктні можливості VB. Цікаво те, що компілятор VB для трансляції використовує багатопрохідний режим, а в кінцевому рахунку покладається на компілятор Microsoft C++ для отримання вихідного машинного коду після компіляції проміжний мова. У цьому властивості VB — використання бібліотеки часу виконання і внутрішнього інтерфейсу C++ — видно зародки .NET.

Історія створення мови програмування C#

Мова C# з’явився на світ в червні 2000 р. в результаті кропіткої роботи великої групи розробників компанії Microsoft, очолюваної Андерсом Хейлсбергом (Anders Hejlsberg). Ця людина відома як автор одного з перших компилируемых мов програмування для персональних комп’ютерів IBM — Turbo Pascal. Напевно, на території колишнього Радянського Союзу багато розробники зі стажем, так і просто люди, котрі навчалися в тій чи іншій формі програмування у вузах, випробували на собі чарівність і зручність використання цього продукту. Крім того, під час роботи в корпорації Borland Андерс Хейлсберг прославився створенням інтегрованого середовища Delphi (він керував цим проектом аж до виходу версії 4.0).

Поява мови C# та ініціативи .NET аж ніяк не випадково довелося на початок літа 2000 р. Саме до цього моменту компанія Microsoft підготувала промислові версії нових компонентних технологій і рішень в області обміну повідомленнями і даними, а також створення Internet-додатків (COM+, ASP+, ADO+, SOAP, Biztalk Framework). Безсумнівно, найкращим способом просування цих новинок є створення інструментарію для розробників з їх повноцінною підтримкою. В цьому і полягає одна з головних завдань нової мови C#. Крім того, Microsoft не могла більше розширювати всі ті ж інструменти і мови розробки, роблячи їх все більш і більш складними для задоволення конфліктуючих між собою вимог підтримки сучасного обладнання і забезпечення зворотної сумісності з тими продуктами, які були створені на початку 1990-х рр. під час першої появи Windows. Настає момент, коли необхідно почати з чистого аркуша для того, щоб створити простий, але має складну структуру набір мов, середовищ і засобів розробки, які дозволять розробникам легко створювати сучасні програмні продукти.

З# і .NET є тією самою відправною точкою. Якщо говорити спрощено, то .NET являє собою нову платформу, новий API для програмування Windows, а З# е новий мовами, створений з нуля, для роботи з цією платформою, а також для вилучення всіх вигод з прогресу середовищ розробки і нашого розуміння принципів об’єктно-орієнтованого програмування протягом останніх 20 років.

Необхідно відзначити, що зворотна сумісність не втрачена. Існуючі програми будуть виконуватися, а платформа .NET була спроектована таким чином, щоб вона могла працювати з наявним програмним забезпеченням. Зв’язок між компонентами Windows зараз майже повністю здійснюється за допомогою СОМ. З урахуванням цього .NET володіє здатністю (а) створювати оболонки (wrappers) навколо існуючих компонентів СОМ, так що компоненти .NET можуть спілкуватися з ними, і (б) створювати оболонки навколо компонентів .NET, що дозволяє їм виглядати як звичайні СОМ-компоненти.

Автори C# прагнули створити мову, що поєднує простоту і виразність сучасних об’єктно-орієнтованих мов (на зразок Java) з багатством можливостей і міццю C++. За словами Андерса Хейлсберга, C# запозичив більшість своїх синтаксичних конструкцій з C++. Зокрема, в ньому присутні такі зручні типи даних, як структури та перерахування (інший нащадок C++ — Java — позбавлений цих елементів, що створює певні незручності при програмуванні). Синтаксичні конструкції З# успадковані не тільки від C++, але і від Visual Basic. Наприклад, в С#, як і в Visual Basic, використовуються властивості класів. Як C++, С# дозволяє виробляти перевантаження операторів для створених вами типів Java не підтримує ні ту, ні іншу можливість). С# — це фактично гібрид різних мов. При цьому З# синтаксично не менш (якщо не більш) чистий, ніж Java, так само простий, як Visual Basic, і володіє практично тією ж потужністю і гнучкістю, що і C++.

Особливо#:

— Повний і добре певний набір основних типів.

— Вбудована підтримка автоматичної генерації XML документації. Автоматичне звільнення динамічно розподіленої пам’яті.

— Можливість позначки класів і методів атрибутами, що визначаються користувачем. Це може бути корисно при документуванні і здатне впливати на процес компіляції (наприклад, можна позначити методи, які повинні компілюватися тільки в налагоджувальному режимі).

— Повний доступ до бібліотеки базових класів .NET, а також легкий доступ до Windows API (якщо це дійсно необхідно).

— Покажчики і прямий доступ до пам’яті, якщо вони необхідні. Однак мова розроблений таким чином, що практично у всіх випадках можна обійтися і без цього.

— Підтримка властивостей і подій в стилі VB.

— Просте зміна ключів компіляції. Дозволяє отримувати виконувані файли або бібліотеки компонентів .NET, які можуть бути викликані іншим кодом так само, як елементи керування ActiveX компоненти СОМ).

— Можливість використання З# для написання динамічних web-сторінок ASP.NET.

Однією з областей, для яких призначений цей мову, є критичні за часом і високопродуктивні програми, коли має значення, займати виконання циклу 1000 1050 машинних циклів, і звільняти ресурси потрібно негайно. C++ залишається в цій області найкращим з мов низького рівня. В С# відсутні деякі ключові моменти, необхідні для створення високопродуктивних додатків, зокрема підставляються функції і деструктори, виконання яких гарантується в певних точках коду. Також ця мова активно використовується для створення сучасних відеоігор, наприклад гра Battlefield 3 частково написана на C#, і повністю на технології .NET

Короткий опис статті: мова програмування Дослідження: Історія створення мов програмування Історія створення мов програмування, Статті, Дослідження, наука, Науковий підхід

Джерело: Історія створення мов програмування — Дослідження — Наука — Статті — Науковий підхід

Також ви можете прочитати