Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

История возникновения и развития языка программирования Си(С++) и Java (Языки программирования)

Содержание:

ВВЕДЕНИЕ

Курсовая работа начинается с изложения истории появления и развития языков программирования и языка Java. Это позволит лучше понять особенности платформы, а так же спектр существующих продуктов и технологий. Создание Java является интересным примером истории одного из популярных проектов в компьютерном мире. Так же излагаются основные концепции, необходимые для освоения объектно-ориентированного языка программирования Java. Казалось бы, на сегодняшний день изобретены уже все языки программирования, какие только возможно придумать. Но появился еще один, под названием Java. Этот язык сумел получить весьма заметную известность за последние несколько лет, так как он ориентирован на самую популярную компьютерную среду - сеть Internet и серверы Web.

Перемены в составе используемого программного обеспечения И повышение производительности компьютеров делают роль языков описания сценариев в создании приложении будущего все более и более важной. Эти языки отличаются от языков программирования системного уровня тем, что их основное назначение – связывать различные компоненты и приложения друг с другом. Бестиповые подходы в них находят применение к описанию данных, что позволяет вывести программирование на более высокий уровень и ускорить процесс разработки по сравнению с языками системного уровня.

В методологии за прошедшие 15 лет написания программ для компьютеров произошла большая перемена. Перемена состоит в том, что разработчики перешли от языков программирования системного уровня, таких как С и С++, к языкам описания сценариев, примерами которых могут служить Perl Tcl. В эту перемену оказалось вовлеченным огромное количество людей, но лишь немногие из них осознают, что происходит на самом деле, и еще меньше найдется таких людей, которые смогли бы объяснить причины происходящего.

Языки программирования создавались для многих целей, что обусловило множество различий между ними. Языки системные разрабатывались для построения структур данных и алгоритмов “с нуля”, начиная от примитивных элементов, таких как слово памяти компьютера. Языки описания сценариев, в отличии от системного, создавались для связывания готовых программ. Применение их подразумевает наличие достаточного ассортимента мощных компонентов, которые требуется только объединить друг с другом. Языки системного уровня используют строгий контроль типов, которые помогают разработчикам приложения справляться со сложными задачами. Языки описания сценариев не используют это понятие, это упрощает установление связей между компонентами и тем самым ускоряет разработку прикладных систем.

Системные языки и языки описания сценариев является взаимодополняющими, и большинство компьютерных платформ еще с середины 60-х годов оснащаются одними, и другими. В компонентных инфраструктурах они применяются, как правило, совместно. На языках программирования системного уровня, создаются компоненты, а языки описания сценариев используют для их связи между собой. Развитие тенденции продолжатся так же в следующем десятилетии, вследствие чего все больше приложений будет создаваться целиком и полностью на языках описания сценариев, а роль языков программирования системного уровня сведется почти исключительно к созданию компонентов. Однако ряд современных тенденции, включая появление наиболее быстрых машин и наиболее совершенных языков описания сценариев, повышение значимости графического интерфейса пользователя и компонентных архитектур, а также рост популярности Internet, очень сильно расширили сферу применимости языков описания сценариев.

  1. ИСТОРИЯ СОЗДАНИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

    1. Языки программирования

Язык программирования - это специальный язык, для управления компьютером на котором пишут команды. Языки программирования созданы для того, чтобы было проще читать и писать на компьютере, но языки затем должны транслироваться (транслятором или интерпретатором) в машинный код. Только этот код может выполняться компьютером. Языки программирования делятся на языки высокого уровня и языки низкого уровня.

Язык низкого уровня - это язык программирования, который необходим для определенного типа компьютера и отражающий его внутренний машинный код; языки низкого уровня часто называют машинно-ориентированными языками. Их сложно конвертировать для использования на компьютерах с разными центральными процессорами, а также довольно сложно изучать, т.к. для этого требуется очень хорошо знать принципы внутренней работы компьютера.

Язык высокого уровня - это язык программирования, необходимый для удовлетворения требований программиста. Этот язык не зависит от внутренних машинных кодов компьютера любого типа. Языки высокого уровня используют для решения различных проблем и поэтому их часто называют проблемно-ориентированными языками. Каждая команда языка высокого уровня равнозначна нескольким командам в машинных кодах, по этой причине программы, написанные на языках высокого уровня, более сжаты, чем аналогичные программы в машинных кодах.

Программы для первых электронно-вычислительных машин программисты писали на языках машинных команд. Это очень затратный и длительный процесс. Проходило много времени между началом составления программы и началом ее использования. Разрешить эту проблему возможно было лишь созданием средства автоматизации программирования. Первыми "инструментами", которые являлись экономией труда программистов, стали подпрограммы. В августе 1944 года для релейной машины "Марк-I" под руководством Грейс Хоппер (женщина-программист, морской офицер ВМФ США) была написана первая подпрограмма для вычисления sinx. Не одну Грейс Хоппер волновала проблема облегчения труда программистов. В 1949 году Джон Моучли (один из создателей ЭВМ ENIAC) разработал систему Short Code, которую можно считать предшественницей языков программирования высокого уровня. Программист записывал решаемую задачу в виде математических формул, преобразовывал формулы в двухбуквенные коды. В дальнейшем специальная программа переводила эти коды в двоичный машинный код. Таким образом, Дж. Моучли разработал один из первых примитивных интерпретаторов. А в 1951 году Г. Хоппер создала первый компилятор А-0. Ею же впервые был введен этот термин.

В 50-е годы прошлого века группа под руководством Г. Хоппер приступила к разработке новейшего языка и компилятора В-0. Новый язык позволил бы программировать на языке, близком к обычному английскому. Разработчики языка выбирали около 30 английских слов. Для того, чтобы распознать эти слова Г. Хоппер был придуман способ, сохранившийся в операторах будущих языков программирования: каждое слово из которых содержит неповторимую комбинацию из первой и третьей букв. И благодаря этому компилятору при создании машинного кода программы возможно игнорировать все остальные буквы в слове. Необходимость появления вышеупомянутой системы, язык которой приближен к разговорному, Г. Хоппер связывала с тем, что область применения электронно-вычислительных машин будет расширяться, как следствие будет расти и круг пользователей. Так же по словам Г. Хоппер, следует оставить попытки "превратить их всех в математиков". В 1958 году система В-0 получила название FLOW-MATIC и была ориентирована на обработку коммерческих данных. В 1959 году был разработан язык COBOL (Common Business Oriented Language) (Кобол)- машинно-независимый язык программирования высокого уровня для решения задач бизнеса. Одна и та же программа, написанная на машинно-независимом языке, может быть выполнена на электронно-вычислительных машинах разных типов, которые оснащены соответствующим транслятором с этого языка. Консультантом при создании языка COBOL вновь выступила Г. Хоппер. В 1954 году было опубликовано сообщение о создании языка FORTRAN (FORmula TRANslation) (Фортран). Местом рождения языка стала штаб-квартира фирмы IBM в Нью-Йорке. Одним из главных разработчиков был Джон Бэкус. Он же стал автором нормальной формы Бэкуса, которая используется для описания синтаксиса многих языков программирования. В тот же период в европейских странах и в СССР популярным стал язык ALGOL. Как и FORTRAN, он был направлен на математические задачи. В нем была реализована передовая для того времени технология программирования - структурное программирование. Наибольшее количество новых языков стало появляться в 60-е, 70-е годы прошлого столетия, но не все из них прошли испытание временем. К языкам-долгожителям относится язык BASIC, который разработан в Дартмутском университете в 1964 году под руководством Джона Кемени и Томаса Курца. По замыслу авторов, это простой язык, который был легко изучаемый, предназначенный для программирования не очень сложных расчетных задач. Большое распространение BASIC получил на микроэлектронно-вычислительных машинах и персональных компьютерах. Но все-таки первоначально этот язык был неструктурным и поэтому с этой точки зрения плохо подходил для обучения качественному программированию. В 1985 году была создана еще одна версия языка True BASIC, которая по мнению разработчиков была наиболее совершенна, чем PASCAL. А в 1991 году появилась первая версия языка VISUAL BASIC.

1.2 Языки процедурного программирования

Для первых языков программирования характерной чертой была предметная ориентация. Это означает, что каждый язык предназначается для решения какого-то определенного класса задач. COBOL был ориентирован на решение задач бизнеса, FORTRAN - на проведение инженерных и научных расчетов. В эпоху электронно-вычислительных машин третьего поколения большое распространение получил язык Program Language/1, который был разработан фирмой IBM. Это был первый язык, претендовавший на универсальность, т. е. на возможность решать любые задачи: вычислительные, обработки текстов, накопления и поиска информации. PL/1 оказался слишком сложным языком. Транслятор его недостаточно оптимальный, который содержит ряд не выявленных ошибок. По этой причине этот язык не получил развития. Но линия на универсализацию языков была продолжена. Старые языки были модернизированы в универсальные варианты. Примером тому стал FORTRAN 77. Значительным событием в истории языков программирования стало создание в 1971 году языка PASCAL. Его автором является Никлаус Вирт, профессор из Швейцарии. Вирт назвал этот язык в честь французского математика и физика Блэза Паскаля, который в 1642 году сконструировал вычислительный механизм. Первоначально PASCAL был создан как язык для обучения. В нем ярко выражена структурная линия программирования. Широкое практическое применение язык получил с появлением персональных компьютеров в версии Turbo PASCAL. Язык программирования С ("Си") был задуман как инструментальный язык для разработки операционных систем. Он создавался одновременно с операционной системой UNIX. Авторами этого языка и ОС UNIX были американские программисты Деннис Ричи и Кеннет Томпсон. Первоначально К. Томпсон начал писать ОС UNIX на языке FORTRAN. В дальнейшем был создан язык С, и в 1973 году ядро операционной системы вместе с программами-утилитами было переписано на С. Этот язык является структурным языком высокого уровня. В настоящее время он применяется для разработки не только операционных систем, но и трансляторов, системных и прикладных программ.

  1. ЯЗЫК ПРОГРАММИРОВАНИЯ C

    1. Создание языка С

Язык программирования Си был разработан в лабораториях BellLabs в период с 1969 по 1973 годы. Согласно Ритчи, самый активный период творчества пришёлся на 1972 год. Язык назвали «Си» (C -- третья буква латинского алфавита), потому что многие его особенности берут начало от старого языка «Би» (B -- вторая буква латинского алфавита). Существует несколько различных версий происхождения названия языка Би. Кен Томпсон указывает на язык программирования BCPL, однако существует ещё и язык Bon, также созданный им, и названный так в честь его жены Бонни. Существует несколько легенд, касающихся причин разработки Си и его отношения к операционной системе UNIX, включая следующие: разработка Си стала результатом того, что его будущие авторы любили компьютерную игру, подобную популярной игре Asteroids (Астероиды). Они уже давно играли в неё на главном сервере компании, который был недостаточно мощным и должен был обслуживать около ста пользователей. Томпсон и Ритчи посчитали, что им не хватает контроля над космическим кораблём для того, чтобы избегать столкновений с некоторыми камнями. Поэтому они решили перенести игру на свободный PDP-7, стоящий в офисе. Однако этот компьютер не имел операционной системы, что заставило их её написать. В конце концов, они решили перенести эту операционную систему ещё и на офисный PDP-11, что было очень тяжело, потому что её код был целиком написан на ассемблере. Было вынесено предложение использовать какой-нибудь высокоуровневый портируемый язык, чтобы можно было легко переносить ОС с одного компьютера на другой. Язык Би, который они хотели сначала задействовать для этого, оказался лишён функциональности, способной использовать новые возможности PDP-11. Поэтому они и остановились на разработке языка Си. Самый первый компьютер, для которого была первоначально написана UNIX, предназначался для создания системы автоматического заполнения документов. Первая версия UNIX была написана на ассемблере. Позднее для того, чтобы переписать эту операционную систему, был разработан язык Си. К 1973 году язык Си стал достаточно силён, и большая часть ядра UNIX, первоначально написанная на ассемблере PDP-11/20, была переписана на Си. Это было одно из самых первых ядер операционных систем, написанное на языке, отличном от ассемблера; более ранними были лишь системы Multics (написана на ПЛ/1) и TRIPOS (написана на BCPL).

В 1978 году Брайан Керниган и Деннис Ритчи опубликовали первую редакцию книги «Язык программирования Си». Эта , известная среди программистов как «K&R», книга служила многие годы неформальной спецификацией языка. Версию языка Си, описанную в ней, часто называют «K&R C». Вторая редакция этой книги посвящена более позднему стандарту ANSI C, описанному ниже.

2.1 Особенности языка С

K&R ввёл следующие особенности языка:

· структуры (тип данных struct);

· длинное целое (тип данных longint);

· целое без знака (тип данных unsignedint);

· оператор += и подобные ему (старые операторы =+) вводили анализатор лексики компилятора Си в заблуждение, например, при сравнении выражений i =+ 10 и i = +10).

K&R C часто считают самой главной частью языка, которую должен поддерживать компилятор Си. Многие годы даже после выхода ANSI C, он считался минимальным уровнем, которого следовало придерживаться программистам, желающим добиться от своих программ максимальной переносимости, потому что не все компиляторы тогда поддерживали ANSI C, а хороший код на K&R C был верен и для ANSI C. После публикации K&R C в язык было добавлено несколько возможностей, поддерживаемый компиляторами AT&T и некоторых других производителей:

· функции, не возвращающие значение (с типом void) и указатели, не имеющие типа (с типом void *);

· функции, возвращающие объединения и структуры;

· имена полей данных структур в разных пространствах имён для каждой структуры;

· присваивания структур;

· спецификатор констант (const);

· стандартная библиотека, реализующая большую часть функций, введённых различными производителями;

· перечислимый тип (enum);

· дробное число одинарной точности (float).

2.3 Развитие языка С

В конце 1970-х годов Си начал вытеснять Бейсик с позиции ведущего языка для программирования микрокомпьютеров. В 1980-х годах он был адаптирован для использования в IBM PC, что привело к резкому росту его популярности. В то же время Бьёрн Страуструп и другие в лабораториях BellLabs начали работу по добавлению в Си возможностей объектно-ориентированного программирования. Язык, который они в итоге сделали, C++, оказал большое влияние на разработку ПО, но так и не смог сравняться по популярности с Си, особенно в UNIX-подобных системах. В 1983 году Американский национальный институт стандартов (ANSI) сформировал комитет для разработки стандартной спецификации Си. По окончании этого долгого и сложного процесса в 1989 году он был наконец утверждён как «Язык программирования Си» ANSI X3.159-1989. Эту версию языка принято называть ANSI C или C89. В 1990 году стандарт ANSI C был принят с небольшими изменениями Международной организацией по стандартизации (ISO) как ISO/IEC 9899:1990. Одной из целей этого стандарта была разработка надмножества K&R C, включающего многие особенности языка, созданные позднее. Однако комитет по стандартизации также включил в него и несколько новых возможностей, таких как прототипы функций (заимствованные из C++) и более сложный препроцессор. ANSI C сейчас поддерживают почти все существующие компиляторы. Почти весь код Си, написанный в последнее время, соответствует ANSI C. Любая программа, написанная только на стандартном Си, гарантированно будет правильно выполняться на любой платформе, имеющей соответствующую реализацию Си. Однако большинство программ написаны так, что они будут компилироваться и исполняться только на определённой платформе, потому, что:

1. они используют нестандартные библиотеки, например, для графических дисплеев;

2. они используют специфические платформо-зависимые средства;

3. они рассчитаны на определённое значение размера некоторых типов данных или на определённый способ хранения этих данных в памяти для конкретной платформы.

После стандартизации в ANSI спецификация языка Си оставалась относительно неизменной в течение долгого времени, в то время как C++ продолжал развиваться (в 1995 году в стандарт Си была внесена Первая нормативная поправка, но её почти никто не признавал). Однако в конце 1990-х годов стандарт подвергся пересмотру, что привело к публикации ISO 9899:1999 в 1999 году. Этот стандарт обычно называют «C99». В марте 2000 года он был принят и адаптирован ANSI.

Некоторые новые особенности C99:

· подставляемые функции (inline);

· объявление локальных переменных в любом операторе программного текста (как в C++);

· новые типы данных, такие как longlongint (для облегчения перехода от 32- к 64-битным числам), явный булевый тип данных _Bool и тип complex для представления комплексных чисел;

· массивы переменной длины;

· поддержка ограниченных указателей (restrict);

· именованная инициализация структур: struct{ int x, y, z; } point = { .y=10, .z=20, .x=30 };

· поддержка однострочных комментариев, начинающихся на //, заимствованных из C++ (многие компиляторы Си поддерживали их и ранее в качестве дополнения);

· несколько новых библиотечных функций, таких как snprintf;

· несколько новых заголовочных файлов, таких как stdint.h.

Интерес к поддержке новых особенностей C99 в настоящее время смешан. В то время как GCC, компилятор Си от SunMicrosystems и некоторые другие компиляторы в настоящее время поддерживают большую часть новых особенностей C99, компиляторы компаний Borland и Microsoft не делают этого, причём, похоже, что две эти компании и не думают их добавлять. 8 декабря 2011 опубликован новый стандарт для языка Си (ISO/IEC 9899:2011). Некоторые возможности нового стандарта уже поддерживаются компиляторами GCC и Clang. Основные изменения:

· поддержка многопоточности;

· улучшенная поддержка юникода;

· обобщенные макросы (type-genericexpressions, позволяют статичную перегрузку);

· анонимные структуры и объединения (упрощают обращение ко вложенным конструкциям);

· управление выравниванием объектов;

· статичные утверждения (staticassertions);

· удаление опасной функции gets (в пользу безопасной gets_s);

· функция quick_exit;

· спецификатор функции _Noreturn;

· новый режим эксклюзивного открытия файла.

  1. ЯЗЫК ПРОГРАММИРОВАНИЯ С++

Период 80-х годов особо ничего не принес в развитие языков программирования, если говорить о применяемых языках сегодня, разве что было внесено много доработок в созданные раннее языки программирования, такие как C, Basic и Pascal, однако, самой интересной доработкой для нас является модификация C в C++. Язык возник в начале 1980-х годов, когда сотрудник фирмы BellLabs Бьёрн Страуструп придумал ряд усовершенствований к языку C под собственные нужды. Когда в конце 1970-х годов Страуструп начал работать в BellLabs над задачами теории очередей (в приложении к моделированию телефонных вызовов), он обнаружил, что попытки применения существующих в то время языков моделирования оказываются неэффективными, а применение высокоэффективных машинных языков слишком сложно из-за их ограниченной выразительности. Так, язык Симула имеет такие возможности, которые были бы очень полезны для разработки большого программного обеспечения, но работает слишком медленно, а язык BCPL достаточно быстр, но слишком близок к языкам низкого уровня и не подходит для разработки большого программного обеспечения. Вспомнив опыт своей диссертации, Страуструп решил дополнить язык C (преемник BCPL) возможностями, имеющимися в языке Симула. Язык C, будучи базовым языком системы UNIX, на которой работали компьютеры Bell, является быстрым, многофункциональным и переносимым. Страуструп добавил к нему возможность работы с классами и объектами. В результате практические задачи моделирования оказались доступными для решения как с точки зрения времени разработки (благодаря использованию Симула-подобных классов), так и с точки зрения времени вычислений (благодаря быстродействию C). В первую очередь в C были добавлены классы (с инкапсуляцией), наследование классов, строгая проверка типов, inline-функции и аргументы по умолчанию. Ранние версии языка, первоначально именовавшегося «C withclasses» («Си с классами»), стали доступны с 1980 года.

Разрабатывая C с классами, Страуструп написал программу cfront[en] -- транслятор, перерабатывающий исходный код C с классами в исходный код простого C. Это позволило работать над новым языком и использовать его на практике, применяя уже имеющуюся в UNIX инфраструктуру для разработки на C. Новый язык, неожиданно для автора, приобрёл большую популярность среди коллег и вскоре Страуструп уже не мог лично поддерживать его, отвечая на тысячи вопросов. При создании C++ Бьёрн Страуструп хотел:

· Получить универсальный язык со статическими типами данных, эффективностью и переносимостью языка C.

· Непосредственно и всесторонне поддерживать множество стилей программирования, в том числе процедурное программирование, абстракцию данных, объектно-ориентированное программирование и обобщённое программирование.

· Дать программисту свободу выбора, даже если это даст ему возможность выбирать неправильно.

· Максимально сохранить совместимость с C, тем самым делая возможным лёгкий переход от программирования на C.

· Избежать разночтений между C и C++: любая конструкция, допустимая в обоих языках, должна в каждом из них обозначать одно и то же и приводить к одному и тому же поведению программы.

· Избегать особенностей, которые зависят от платформы или не являются универсальными.

· «Не платить за то, что не используется» -- никакое языковое средство не должно приводить к снижению производительности программ, не использующих его.

· Не требовать слишком усложнённой среды программирования.

Несмотря на ряд известных недостатков языка C, Страуструп пошёл на его использование в качестве основы, так как «в C есть свои проблемы, но их имел бы и разработанный с нуля язык, а проблемы C нам известны». Кроме того, это позволило быстро получить прототип компилятора (cfront), который лишь выполнял трансляцию добавленных синтаксических элементов в оригинальный язык C. По мере разработки C++ в него были включены другие средства, которые перекрывали возможности конструкций C, в связи с чем неоднократно поднимался вопрос об отказе от совместимости языков путём удаления устаревших конструкций. Тем не менее, совместимость была сохранена из следующих соображений:

· сохранение действующего кода, написанного изначально на C и прямо перенесённого в C++;

· исключение необходимости переучивания программистов, ранее изучавших C (им требуется только изучить новые средства C++);

· исключение путаницы между языками при их совместном использовании («если два языка используются совместно, их различия должны быть или минимальными, или настолько большими, чтобы языки было невозможно перепутать»).

К 1983 году в язык были добавлены новые возможности, такие как виртуальные функции, перегрузка функций и операторов, ссылки, константы, пользовательский контроль над управлением свободной памятью, улучшенная проверка типов и новый стиль комментариев (//). Получившийся язык уже перестал быть просто дополненной версией классического C и был переименован из C с классами в «C++». Его первый коммерческий выпуск состоялся в октябре 1985 года. Имя языка, получившееся в итоге, происходит от оператора унарного постфиксного инкремента C ++ (увеличение значения переменной на единицу). До начала официальной стандартизации язык развивался в основном силами Страуструпа в ответ на запросы программистского сообщества. Функцию стандартных описаний языка выполняли написанные Страуструпом печатные работы по C++ (описание языка, справочное руководство и так далее). Стандарт C++ на 2003 год состоит из двух основных частей: описание ядра языка и описание стандартной библиотеки. Кроме того, существует огромное количество библиотек C++, не входящих в стандарт. В программах на C++ можно использовать многие библиотеки C. Стандартизация определила язык программирования C++, однако за этим названием могут скрываться также неполные, ограниченные, варианты языка.

Первое время язык развивался вне формальных рамок, спонтанно, по мере встававших перед ним задач. Развитию языка сопутствовало развитие кросс-компилятора cfront. Новшества в языке отражались в изменении номера версии кросс-компилятора. Эти номера версий кросс-компилятора распространялись и на сам язык, но применительно к настоящему времени речь о версиях языка C++ не ведут

  1. JAVA

В начале 1996 года появился новый язык программирования Java. На домашней странице WWW Consortium Java была внесена в список так называемых Мобильных Кодов - одного из перспективных направлений развития технологии World Wide Web. И вот в конце 1996 года на Западе начался бум Java, который к моменту проведения выставки Unix-Expo`96 докатился и до нашей страны. Согласно истории технология Java (Кофе) родилась из проекта Oak (Дуб), основной целью которого была разработка объектно-ориентированных средств описания и коммуникации различного рода электронных устройств. Из-за неудачи этого проекта 1994 году опыт, накопленный в рамках его реализации, было решено применить к продуктам ориентированным на применение в Internet. С апреля 1995 года по сети свободно распространяется HotJava - интерфейс просмотра страниц World Wide Web для платформ Sun. Буквально через месяц Netscape Communication - законодатель моды в разработке программ-интерфейсов Internet, покупает лицензию на Java, В настоящее время HotJava реализована не только для SunOS и Solaris, но и для многих других Unix-платформ и Windows NT. Кроме HotJava мобильный код Java может интерпретироваться и второй версией программы Netscape Navigator для всех систем кроме Windows 3.x. Система программирования на Java позволяет компилировать программы для компьютерной платформы, на которой она стоит в том же ключе как и любая другая, например, С или С++. В этом случае главными отличиями Java-программ, которые называются Java-applications, является использование библиотеки Java-классов, которые обеспечивают разработку безопасных, распределенных систем. При этом утверждается, что язык позволяет делать гораздо меньше ошибок при разработке программ. Главным при этом является тот факт, что в Java напрочь отсутствует адресная арифметика.

Кто-нибудь думал, что язык Java, первоначально предназначенный для устройств бытовой электроники, станет использоваться во многих других областях? Расширение влияния Java, как ни странно, началось с разработки браузеров. Главный разработчик Java Джеймс Гослинг перешел в Sun в 1984 году из исследовательского отдела IBM. До Java Гослинг разработал не имевший коммерческого успеха оконный интерфейс NeWS и GOSMACS — первую реализацию текстового редактора EMACS на языке С. После этого Гослинг и его коллеги начали изучать перспективы на рынке электроники и бытовой техники. «Группе была поставлена задача создать распределенную систему, которую можно было бы в качестве современной программной технологии продавать производителям бытовой электроники», вспоминает Гослинг. В декабре 1990 года компания Sun создала рабочую группу для разработки новой технологии, куда вошел Патрик Нотон. Однако ему показалось, что возможностей C++ и С API не хватит для выполнения этой задачи. Поэтому Патрик Нотон начал проект под названием Stealth Project, чтобы найти решение проблемы. Позже к нему присоединились Джеймс Гослинг и Майк Шеридан, и проект получил название Green Project. Когда стало понятно, что у проекта – большие перспективы, они пригласили еще 10 человек и начали работать в офисе на Сэнд Хилл Роуд (Калифорния). Компания Sun поддержала начинание, предположив, что оно ознаменует «новую волну» в ИТ-отрасли. Команда вскоре задумалась о том, чтобы усовершенствовать язык С++. Однако он оказался избыточным и слишком ресурсоемким, чтобы на его базе создать язык, удовлетворяющий поставленным требованиям:

1. Поддержка объектно-ориентированной парадигмы;

2. Возможность запуска одной и той же программы на разных операционных системах;

3. Встроенные механизмы для работы компьютерных сетей;

4. Обеспечение безопасности удаленного исполнения программ;

5. Использование преимуществ других объектно-ориентированных языков программирования.

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

1. Разработка приложений (application)

Язык Java используется для разработки обычных прикладных программ, которые запускаются пользователем и имеют доступ ко всем ресурсам компьютера наравне с любыми другими программами. Для запуска Java-приложений в операционной системе должна быть установлена среда исполнения Java (JRE).

2. Разработка мидлетов (midlet)

Язык Java используется для разработки специализированных программ, предназначенных для использования на мобильных устройствах. Структура и возможности мидлетов обусловлены техническими особенностями мобильных устройств. Для запуска мидлетов мобильное устройство должно поддерживать соответствующую возможность.

3. Разработка апплетов (applet)

Язык Java используется для разработки специализированных программ, обычно небольшого размера, запускаемых браузером внутри web-документа для вывода динамического содержимого и/или интерактивного взаимодействия с пользователем. Для запуска апплетов браузер должен содержать соответствующий модуль (plug-in).

4. Разработка JSP-страниц (Java Server Pages)

JSP-страницы представляют собой HTML-документы со вставками на языке Java, которые используются для анализа пользовательских запросов и динамического формирования web-документов на основе результатов обработки этих запросов. Для обработки JSP-страниц Web-сервер должен содержать соответствующий модуль.

5. Разработка сервлетов (servlet)

На языке Java разрабатываются специализированные программы-сервлеты, функционирующие в рамках Web-сервера и имеющие доступ к его ресурсам: файлам, базам данных и т.п. Для запуска сервлетов используется Web-сервер со специальным модулем (контейнером сервлетов) или специальный сервер приложений. В ноябре 2006 года Sun объявила часть кода виртуальной машины Java (JVM) свободном распространяемым и начала выпускать его под лицензией GNU General Public License (GPL). К маю 2007 года компания распространяла бесплатно почти весь код JVM, за исключением малой его части, на которую Sun не имеет прав. В 2009-10 годах корпорация Oracle поглотила компанию Sun Microsystems. В апреле 2010 Джеймс Гослинг, перешедший в Oracle после поглощения, покинул компанию. Задачами курсовой работы является изучение объектно-ориентированного языка программирования Java

ЗАКЛЮЧЕНИЕ

Рассмотрены основные моменты, связанные с языком C, C++ и Java: история возникновения и развития, основные возможности языка, преимущества и недостатки. Изобретение языка программирования высшего уровня позволило нам общаться с машиной, понимать её. Проще говоря, мы в нашем развитии науки программирования пока что с ЭВМ на ВЫ. Посмотрите как развилась наука программирования с того времени, как появились языки программирования, а ведь язык программирования высшего уровня, судя по всему ещё младенец. Но если мы обратим внимание на темпы роста и развития новейших технологий в области программирования, то можно предположить, что в ближайшем будущем, человеческие познания в этой сфере, помогут произвести на свет языки, умеющие принимать, обрабатывать и передавать информации в виде мысли, слова, звука или жеста. Размышляя над этим, хочется верить в прогресс науки и техники, в высоко - компьютеризированное будущее человечества, как единственного существа на планете, пусть и не использующего один, определенный разговорный язык, но способного так быстро прогрессировать и развивать свой интеллект, что и перехода от многоязыковой системы к всеобщему пониманию долго ждать не придется.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Добудько Т.В., Первин Ю.А., Пугач В.И. Элементы проектирования программных средств учебного назначения для начальной школы в открытых программно - методических комплексах. Учеб. пособие для студентов пед. ин-тов./ Самарский гос.пед.ин-т. Самара, 1993.

2. Зарецкий Д.В., Зарецкая З.А., Первин Ю.А. Педагогические и технологические основы создания открытых программно - методических систем: Информатика и образование, 1998.

4. Кречман Д., Пушков Ф. Мультимедиа своими руками. СПб.:БХВ, 1999.

5. Макарова Н.В. Информатика. Санкт-Петербург, 2000.

6. Методические указания по использованию вычислительной техники в учебном процессе./ Сост. Зеленин В.М. ЛГПИ им. А.И.Герцена. Ленинград, 1988.

7. Пугач В.И., Добудько Т.В. Методика преподавания информатики: Учебное пособие для студентов пед. ин-тов / Самарский пед. ин-т, 1993.

8. Тэй Воген. Мультимедиа. Практическое руководство. Минск, 1997.

9. Фролов А.В., Фролов Г.В. Мультимедиа для WINDOWS: Руководство для программиста / “Диалог-МИФИ”, М.,1994.

10. Лесневский А.С., Объектно-ориентированное программирование для начинающих. Москва, Бином,2005г.-233стр.

11. Величкович В., Цветкова М., Программирование для начинающих. Москва, Бином, 2007г.-288стр.

12. Частиков А.П., Архитектура компьютерного мира: история и эволюция компьютерного мира. Санкт-Петербург, БХВ-Петербург, 2002г.-383стр.

13. Н.А. Вязовик. Программирование на Java. Курс лекций, Интернет-университет информационных технологий, 2003 г., 592 стр.

14. Герберт Шилдт, Джеймс Холмс, Искусство программирования на Java, 2005 г., 336 стр.

15. http://ru.wikipedia.org/wiki/Тетрис

16. Хабибуллин И.Ш. Самоучитель Java 2. СПб.: БХВ-Петербург, 2007. - 720 с.: Ил.

17. Эккель Б. Философия Java. Библиотека программиста. СПб.: Питер, 2001.