Реферат на тему «мови програмування»

06.08.2015

Реферат на тему «мови програмування»

Михайло Осипов, 10 4 клас.

21.02.12.

Зміст:

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

Ада Лавлейс

Почнемо з мови Ada. Ця мова був створений в 1979-1980 роках в результаті проекту, започаткованого Міністерством оборони США з метою розробити єдиний мову програмування для вбудованих систем (тобто систем керування автоматизованими комплексами, що функціонують у реальному часі). Малися на увазі, насамперед, бортові системи управління військовими об’єктами (кораблями, літаками, танками, ракетами, снарядами тощо). Перед розробниками не стояло завдання створити універсальну мову, тому рішення, прийняті авторами Ади, треба сприймати в контексті особливостей обраної предметної області. Мова названий на честь Ади Лавлейс. Також ця мова має масу особливостей, серед них:

З моменту появи Пекла піддалася критиці деяких визнаних авторитетів в області розробки мов програмування, в першу чергу — за складність синтаксису і великий обсяг. Зокрема, мова критикували Чарльз Хоар і Ніклаус Вірт (брали участь зі своїм проектом в даному конкурсі, але вибули після першого етапу), а також Эдсгер Дейкстра.

Пекла — потужний об’єктно–орієнтована мова загального призначення, орієнтований на розробку надійного програмного забезпечення. У мову включені механізми підтримки паралельного виконання, обробки винятків, що настроюються модулів, підтримки розподілених обчислень, стандартні інтерфейси до інших мов та бібліотек. Ада має компілятори під практично будь-яку операційну систему плюс Java і .NET байткод.

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

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

Мова Ада використовується в США і Європі при розробці складних великих проектів, головним чином, вбудованих систем, причому далеко не тільки у військових програмах.

Тепер я б хотів поговорити про Basic. Він був розроблений в 1963 році професорами Дартмутського коледжу Томасом Курцем і Джоном Кемені.

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

При проектуванні мови використовувалися такі вісім принципів. Новий мову повинен:

1.Бути простим у використанні для початківців

2.Бути мовою програмування загального призначення

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

4.Бути інтерактивним

5.Надавати ясні повідомлення про помилки

6.Швидко працювати на невеликих програмах

7.Не вимагати розуміння роботи апаратного забезпечення

8.Захищати користувача від операційної системи

Мова був заснований частково на Фортран II і частково на Алгол-60, з додаваннями, що роблять його зручним для роботи в режимі поділу часу і, пізніше, обробки тексту і матричної арифметики. Спочатку Бейсік був реалізований на мейнфрейме GE-265 з підтримкою безлічі терміналів. Всупереч розповсюдженому переконанню, у момент своєї появи це був компільований мову.

Синтаксис мови нагадує Fortran, і багато елементи — явні запозичення з нього. Мова замислювався для навчання, тому його конструкції максимально прості. Як і в інших мовах програмування, ключові слова, взяті з англійської мови. Основних типів даних два рядки і числа. З появою версії Visual Basic, а також різних його модифікацій (таких як VBA), в мові з’явилися багато інші типи даних і доповнення, типові для сучасних мов програмування (наприклад, такі, як об’єктна модель). Оголошення змінних не вимагає спеціальної секції (на відміну, наприклад, від Паскаля). Оголошення змінної — це перше її використання.

Ранні версії Бейсика (такі як BASICA, GW-BASIC) істотно відрізняються від сучасних діалектів і сьогодні практично не використовуються.

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

Однією з «візитних карток» Эдсгера Дейкстри став вислів: «Студентів, раніше вивчали Бейсік, практично неможливо навчити доброго програмування. Як потенційні програмісти вони зазнали незворотної розумової деградації». Однак, це висловлювання цитується поза контекстом, в якому Дейкстра покритикував і багато інші популярні в той час мови.

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

C# (вимовляється сі шарп) — об’єктно-орієнтована мова програмування. Розроблений в 1998-2001 роках групою інженерів під керівництвом Андерса Хейлсберга в компанії Microsoft як мова розробки додатків для платформи Microsoft .NET Framework і згодом був стандартизований як ECMA-334 та ISO/IEC 23270.

C# відноситься до сім’ї мов з C-подібним синтаксисом, з них синтаксис найбільш близький до C++ і Java. Мова має статичну типізацію, підтримує поліморфізм, перевантаження операторів (у тому числі операторів явного і неявного приведення типу), делегати, атрибути, події, властивості, узагальнені типи і методи, ітератори, анонімні функції з підтримкою замикань, LINQ, виключення, коментарі у форматі XML.

Перейнявши багато чого від своїх попередників — мов C++, Java, Delphi, Модула і Smalltalk — С#, спираючись на практику їх використання, виключає деякі моделі, що зарекомендували себе як проблематичні при розробці програмних систем, наприклад, C# не підтримує множинне успадкування класів (на відміну від C++).

C# розроблявся як мова програмування прикладного рівня для CLR і, як такий, залежить, насамперед, від можливостей самої CLR. Це стосується, перш за все, системи типів C#, яка відображає BCL. Присутність або відсутність тих або інших виразних особливостей мови диктується тим, чи може конкретна мовна особливість бути транслирована у відповідні конструкції CLR. Так, з розвитком CLR від версії 1.1 до 2.0 значно збагатився і сам C#; подібної взаємодії слід чекати і надалі. (Проте ця закономірність була порушена з виходом C# 3.0, що представляє собою розширення мови, не спираються на розширення платформи .NET.) CLR надає C#, як і всім іншим .NET-орієнтованим мовам, багато можливостей, яких позбавлені «класичні» мови програмування. Наприклад, збірка сміття не реалізована в самому C#, а виробляється CLR для програм, написаних на C# точно так само, як це робиться для програм на VB.NET, J# і ін

І останній мову програмування, який мене зацікавив – Java. Java — об’єктно-орієнтована мова програмування, розроблена компанією Sun Microsystems (в подальшому, придбаної компанією Oracle). Програми Java зазвичай компілюються у спеціальний байт-код, тому вони можуть працювати на будь-якій віртуальній Java-машині (JVM) незалежно від комп’ютерної архітектури. Дата офіційного випуску — 23 травня 1995 року.

Програми на Java транслюються в байт-код, що виконується віртуальною машиною Java (JVM) — програмою, оброблювальною байтовий код і передає інструкції устаткуванню як інтерпретатор.

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

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

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

широке використання платформно-орієнтованого коду (native-код) в стандартних бібліотеках,

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

За даними сайту shootout.alioth.debian.org для семи різних завдань час виконання на Java становить в середньому в півтора-два рази більше, ніж для C/C++, в деяких випадках Java швидше, а в окремих випадках у 7 разів повільніше. З іншого боку, для більшості з них споживання пам’яті Java-машиною було в 10-30 разів більше, ніж програмою на C/C++. Також примітно дослідження, проведене компанією Google, згідно з яким відзначається істотно більш низька продуктивність та бо?льшее споживання пам’яті в тестових прикладах на Java в порівнянні з аналогічними програмами на C++.

Ідеї, закладені в концепцію і різні середовища реалізації віртуальної машини Java, надихнули безліч ентузіастів на розширення переліку мов, які могли б бути використані для створення програм, що виконуються на віртуальній машині.Ці ідеї знайшли також вираз у специфікації загальномовної інфраструктури CLI, закладеної в основу платформи .NET компанією Microsoft.

Класифікація платформ Java

Всередині Java існують кілька основних сімейств технологій:

  1. Java SE — Java Standard Edition, основне видання Java, містить компілятори, API, Java Runtime Environment; підходить для створення користувацьких додатків, в першу чергу — для настільних систем.
  2. Java EE — Java Enterprise Edition являє собою набір специфікацій для створення програмного забезпечення рівня підприємства.
  3. Java ME — Java Micro Edition, створена для використання в пристроях, обмежених за обчислювальної потужності, наприклад, у мобільних телефонах, КПК, вбудованих системах;
  4. JavaFX — технологія, яка є наступним кроком в еволюції Java як Rich Client Platform; призначена для створення графічних інтерфейсів корпоративних додатків і бізнесу.
  5. Java Card — технологія надає безпечне середовище для додатків, що працюють на смарт-картах і ??інших пристроях із дуже обмеженим обсягом пам’яті і можливостями обробки.

Застосування платформи Java

Такі успішні проекти реалізовані із залученням Java (J2EE) технологій: RuneScape, Amazon, eBay, Yandex (неоднозначна інформація щодо Java), LinkedIn, Yahoo!.

Наступні компанії в основному фокусуються на Java (J2EE) технологіях: SAP, IBM, Oracle. Зокрема, СУБД Oracle включає JVM як свою складову частину, що забезпечує можливість безпосереднього програмування СУБД на мові Java, включаючи, наприклад, збережені процедури.

Продуктивність

Програми, написані на Java, мають репутацію більш повільних і займають більше оперативної пам’яті, ніж написані на мові Сі. Тим не менш, швидкість виконання програм, написаних на мові Java, була суттєво покращена з випуском в 1997-1998 роках так званого JIT-компілятора у версії 1.1 в доповнення до інших особливостей мови для підтримки кращого аналізу коду (такі як внутрішні класи, клас StringBuffer, спрощені логічні обчислення і т. д.). Крім того була проведена оптимізація віртуальної машини Java — з 2000 року для цього використовується віртуальна машина HotSpot. В даний час[уточнити], код Java 2.0 приблизно лише в 2 рази повільніше коду, написаного на мові Сі.

Деякі платформи пропонують апаратну підтримку виконання для Java. Приміром, мікроконтролери виконують код Java на апаратному забезпеченні замість програмної JVM, а також засновані на ARM процесори, які підтримують виконання байткода Java через опцію Jazelle.

Основні можливості:

  1. автоматичне керування пам’яттю;
  2. розширені можливості обробки виняткових ситуацій;
  3. багатий набір засобів фільтрації введення/виводу;
  4. набір стандартних колекцій, таких як масив, список, стек і т. п.;
  5. наявність простих засобів створення мережевих додатків (у тому числі з використанням протоколу RMI);
  6. вбудовані в мову засоби створення багатопоточних додатків;
  7. паралельне виконання програм.

Таким чином, у наш час існує безліч мов, і у кожного з них свої особливості. Але з усіх мені найбільше сподобався C#, по продуктивності він випереджає Java, по зручності – Basic. У наш час кожен програміст може знайти для себе той, з яким йому буде зручно працювати.

Короткий опис статті: мова програмування с++

Джерело: Реферат на тему «мови програмування»

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