Створення навчальної програми по вивченню іноземної мови

Загрузка...

главная страница Рефераты Курсовые работы текст файлы добавьте реферат (спасибо :)Продать работу

поиск рефератов

Диплом на тему Створення навчальної програми по вивченню іноземної мови

скачать
похожие рефераты
подобные качественные рефераты
 1 2 3 4 5 6 7 8 9 ... 27    

- мова програмування об'єктно-орієнтована, в той же час досить проста для освоєння;

- цикл розробки програм скорочений за рахунок того, що система побудована на основі інтерпретатора;

- додаток виходить автоматично переносимим між безліччю платформ і операційних систем;

- за рахунок вбудованої системи збірки сміття програміст звільняється від необхідності явного управління пам'яттю;

- в інтерактивній графічній програмі вдається досягти високої продуктивності (швидкого відгуку на введення користувача) за рахунок вбудованої в систему багатопотоковості;

- програма легко супроводжується і модифікується, оскільки модулі можуть бути завантажені з мережі;

- в програму вбудована система безпеки, що не допускає незаконного доступу і проникнення вірусів.

Метою проекту Java було створення невеликої, надійної, переносимої і розподіленої системи реального часу. На початку планувалося використання мови програмування С++, але поступово пов'язані з цим труднощі привели до необхідності створення нової мови.

Система повинна була увібрати в себе кращі риси з безлічі сучасних систем програмування: Eiffel, Smalltalk, Objective C, Cedar/Mesa і т.д..

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

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

Створена система розробки Java задовольняє всім цим вимогам:

- проста, тому може бути використана широким колом розробників;

- об'єктно орієнтована, що відповідає сучасному погляду на програмування;

- підтримує багатопотоковість, що дозволяє виконувати декілька завдань одночасно;

- інтерпретіруєма, що забезпечує переносимість і покращує динамічні властивості.

Розглянемо кожну з цих властивостей окремо.

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

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

Не дивлячись на те, що мова С++ була знехтувана, синтаксис мови Java максимально наближений до синтаксису С++. Це робить мову знайомою широкому колу програмістів. В той же час з мови було видалено багато властивостей, які роблять С++ зайве складною для користування, не будучи абсолютно необхідними. В результаті мова Java вийшла простішою і більш органічною, ніж С++.

Java істотно полегшує створення надійного програмного забезпечення. Окрім вичерпної перевірки на етапі компіляції, система передбачається аналіз на етапі виконання. Сама мова спроектована так, щоб виробляти у програміста звичку писати правильно.

Модель роботи з пам'яттю, в якій виключено використання покажчиків, робить неможливим цілий клас помилок, характерних для С і С++.

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

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

Наступний крок — “заморожування” стандарту на формат основних вбудованих типів даних. Програма, створена на одній платформі, працює на всіх інших.

Цей стандарт фіксований в документі, Java Virtual Machine. Стандарт може бути реалізований на будь-якій апаратно-програмній платформі, що підтримує багатопотоковість.

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

- аналіз кодів на дотримання правил безпеки проводиться один раз до запуску кодів на виконання, у момент виконання таких перевірок вже не потрібно, і коди виконуються максимально ефективно;

- робота з базовими типами максимально ефективна, для операцій з ними зарезервовані спеціальні байт-коди;

- методи в класах не обов'язково зв'язуються динамічно;

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

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

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

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

Багатопотоковість підтримується на рівні мови — частина примітивів синхронізації вбудована в систему реального часу, а бібліотека містить базовий клас Thread. До того ж системні бібліотеки написані thread-safe, тобто всі вони можуть бути використані в багатопотокових додатках.

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

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

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

Повна система Java включає готовий набір бібліотек, який можна розбити на наступні пакети:

java.lang — базовий набір типів, відображених в самій мові; цей пакет обов'язково входить до складу будь-якої програми; містить описи класів Object і Class, а також підтримку багатопотоковості, виняткових ситуацій, оболонку для базових типів, а також деякі фундаментальні класи;

java.io — потоки і файли довільного доступу; аналог бібліотеки стандартного введення-виведення системи UNIX; підтримка мережевого доступу (sockets, telnet, URL) міститься в пакеті java.net;

java.util — класи-контейнери (Dictionary, HashTable, Stack) і деякі інші утиліти; кодування і декодування. Класи Date і Time;

java.awt — Abstract Windowing Toolkit, незалежний віконний інтерфейс, що дозволяє запускати інтерактивні віконні Java-програми на будь-якій платформі; містить базові компоненти інтерфейсу, такі як події, кольори, шрифти, а також основні віконні елементи — кнопки, scrollbars і т.п..

Результат — новий підхід до розподілених обчислень.

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

На сьогоднішній день найбільш популярними мовами програмування є С і С++. З них двох лише С++ претендує на об'єктну орієнтацію. Характеристики цієї мови складалися в ході довгої історії її розвитку, причому досить хаотично, кожна нова властивість не відміняла всіх попередніх. Стандарт мови до цих пір не зафіксований, оскільки нові властивості продовжують з'являтися до цього дня.

В результаті С++ стала нескінченно складною і надмірною — одну і ту ж операцію можливо реалізувати на мові безліччю способів.

Java є новою точкою відліку в програмному забезпеченні. Розробники мови узяли за основу С++, потім методично видалили з нього риси, які:

- роблять неможливим контроль безпеки додатків;

- не є абсолютно необхідними, частіше заважають програмістові, чим полегшують його завдання;

- є джерелом складних і пізно розпізнаваних помилок.

В той же час в мові Java повністю збережений “дух” програмування на С++, досвідченим С++ - програмістам буде потрібно один-два тижні на освоєння самої мови, а величезний об'єм програмного забезпечення, вже створеного з використанням С++, може бути адаптований під нову мову відносно легко.

У мові Java, так само як і в С++, існує набір вбудованих типів даних, які (так само як і в С++) не є об'єктами. Набір їх також схожий з набором базових типів С++ за деякими виключеннями.

Numeric - характерною відмінністю від С++ є те, що бінарне представлення чисел відтепер фіксоване:

    продолжение
 1 2 3 4 5 6 7 8 9 ... 27    

Удобная ссылка:

Скачать дипломную работу бесплатно
подобрать список литературы


вверх страницы


© coolreferat.com | написать письмо | правообладателям | читателям
При копировании материалов укажите ссылку.