МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"
Інститут комп’ютерних наук та інформаційних технологій
Кафедра програмного забезпечення
ЗВІТ
До лабораторної роботи № 1
На тему: “ ЗАСОБИ СТВОРЕННЯ C#-ПРОГРАМ ”
З дисципліни : "Програмне забезпечення мережевих технологій "
Лектор:
Проф. каф. ПЗ
Мельник Р.А.
Львів – 2009
Тема: ЗАСОБИ СТВОРЕННЯ C#-ПРОГРАМ
Мета: навчитись користуватись середовищами розробки програм мовою C#, а також засвоїти склад пакетів бібліотеки різних інструментальних засобів
Завдання
Оцінити можливості кожного з середовищ.
Виконати порівняльний аналіз відомих засобів.
Теоретичні відомості
Java — об'єктно-орієнтована мова програмування, випущена компанією Sun Microsystems у 1995 році як основний компонент платформи Java. Синтаксис мови багато в чому походить від C та C++. У офіційній реалізації, Java програми компілюються у байткод, який при виконанні інтерпретується віртуальною машиною для конкретної платформи.
Мета створення С#.
1. Перша компонентно-орієнтовна мова в сімействі С/С++ - розвинена система діагностики та підвищений рівень безпеки;
2. Створити альтернативу Java - зменшити відрив між простими типами та класами; - можливість створювати структурні типи, об'єктам яких не потрібно виділяти пам'ять у кучі;
3. Збільшити надійність програм та їх стійкість до помилок - автоматична сборка сміття
Спільне у C#, С++ та Java.
C#, C++ та Java є мовами об’єктно-орієнтованого програмування.
Відмінне у C#, С++ та Java.
С++ підтримує процедурну парадигму, в той час як у C# та Java немає глобальних функцій чи констант, все належить класам.
Особливості реалізації
Відмінне у C#, С++ та Java.
Спільне C# та Java:
немає файлів заголовків, весь код вкладений в пакети чи сборки, не виникає проблем з циклічними залежностями при об'явленні одного класу перед іншим.
немає глобальних функцій чи констант, все належить класам.
Автоматичне керування пам'яттю.
Спільне у C# та Java:
автоматична збірка сміття разом із знищенням вказівників.
Арифметичні типи даних: операції, вирази, зведення типів у виразах.
Більшість мов має базові типи (int, long), і вищий рівень типів, що в кінці-кінців складається з базових типів. Часто буває корисним мати можливість розглядати базові типи і вищий рівень типів однаковим чином. Наприклад, корисно мати колекції, які можуть бути як цілими, так і рядками. Smalltalk досяг цього пожертвуванням деякої ефективності та розгляданням цілих та довгих як типів типу String чи Form. Java намагається уникнути зменшення ефективності, і розглядає базові (примітивні) типи, як в C чи C++, але забезпечує подібні з виду класи для кожного примітивного - цілий упаковується Integer, double упаковується Double. Шаблони у C++ дозволяють писати код, що використовує будь-який тип, наскільки це дозволяють операції, що можна виконувати над типом.
Відмінне у C#, С++ та Java
Спільне у C# та Java:
Всі класи породжуються від object та повинні розташовуватись в кучі з новим ідентифікатором
Бульовий тип - окремий тип, що не перетинається з арифметичним (як в С++). Це може породжувати деякі незручності при використанні, але сприяє виявленню помилок.
Перевага С# - 12-байтні "десяткові" числа з плаваючою точкою
Область видимості і права доступу.
У C# можна помістити компоненти вихідного коду (класи, структури, делегати і т. ін.) у файли, простори імен та сборки.
Мова значно запозичила синтаксис із C і C++. Зокрема, взято за основу об'єктну модель С++, проте її модифіковано. Усунуто можливість появи деяких конфліктних ситуацій, що могли виникнути через помилки програміста та полегшено сам процес розробки об'єктно-орієнтованих програм. Ряд дій, які в С/C++ повинні здійснювати програмісти покладено на віртуальну машину. Java, передусім, розроблялась як платформо-незалежна мова, тому, вона має менше низькорівневих можливостей для роботи з апаратним забезпеченням. В разі необхідності таких дій, java дозволяє викликати підпрограми написані на інших мовах програмування.
На противагу C++, Java більш об'єктно-орієнтована. Всі дані і дії групуються в класи об'єктів. Виключенням з повної об'єктності (як скажімо в Smalltalk) є примітивні типи (int, float тощо). Це було свідомим рішення проектувальників мови задля збільшення швидкості. Через це, Java не вважається повністю об'єктно-орієнтовною мовою.
У Java всі об'єкти є похідними від головного об'єкту (він називається просто Object), з якого вони успадковують базову поведінку і властивості.
Хоча у C++ вперше стало доступне багаторазове успадкування, але у Java можливе тільки одинарне успадкування, завдяки чому виключається можливість конфліктів між властивостями, які передаються через базові класи.
Зважаючи на дуже зручний об'єктно-орієнтований дизайн, C# є гарним вибором для швидкого конструювання різних компонентів - від високорівневої бізнес логіки до системних додатків, що використовують низькорівневий код. Також слід зазначити, що C# є і Web орієнтованим - використовуючи прості вбудовані конструкції мови ваші компоненти можуть бути легко перетворені на Web сервіси, до яких можна буде звертатися з Internet за допомогою будь-якої мови на будь-якій операційній системі. Додаткові можливості і переваги перед іншими мовами приносить в C# використання передових Web технологій, таких як: XML (Extensible Markup Language) і SOAP (Simple Object Access Protocol).
Середовище розробки Web сервісів дозволяє програмісту дивитися на існуючі сьогодні Web додатки, як на рідні C# об'єкти, що дає можливість розробникам співвіднести Web сервіси, що є, з їх пізнаннями в об'єктно-орієнтованому програмуванні.
Висновок:
На цій лабораторній роботі я ознайомився з середовищем Visual Studio 2008 . Провів порівняльну характеристику таких провідних мов програмування як С/С++, Java i C#. Я описав їх основні відмінності і функціональні можливості