Применения платформы 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 раза медленнее кода, написанного на языке Cи.
Некоторые платформы предлагают аппаратную поддержку выполнения для Java. К примеру, микроконтроллеры выполняющие код Java на аппаратном обеспечении вместо программной JVM, а также основанные на ARM процессоры, которые поддерживают выполнение байткода Java через опцию Jazelle.
Pascal
Язык Паскаль был создан Никлаусом Виртом в 1968—1969 годах после его участия в работе комитета разработки стандарта языка Алгол-68. Язык назван в честь французского математика, физика, литератора и философа Блеза Паскаля, который создал первую в мире механическую машину, складывающую два числа. Первая публикация Вирта о языке датирована 1970 годом; представляя язык, автор в качестве цели его создания указывал построение небольшого и эффективного языка, способствующего хорошему стилю программирования, использующемуструктурное программирование и структурированные данные.
Последующая работа Вирта была направлена на создание на основе Паскаля языка системного программирования, с сохранением возможности вести на его базе систематический, целостный курс обучения профессиональному программированию[6]. Результат этой работы — язык Модула-2.
В 1978 году в Калифорнийском университете в Сан-Диего была разработана система UCSD p-System, включавшаяпорт компилятора Вирта с языка Паскаль в переносимый p-код, редактор исходных кодов, файловую систему и прочее[7], а также реализовывавшая значительное число расширений языка Паскаль, такие как модули, строки символов переменной длины, директивы трансляции, обработка ошибок ввода-вывода, обращение к файлам по именам и другое. Впоследствии основные реализации языка Паскаль основывались на этом диалекте.
В 1983 году появилась первая версия интегрированной среды разработки Turbo Pascal фирмы Borland, основывавшаяся на одноимённой реализации Паскаля.
В 1989 году объектное расширение языка было добавлено в Turbo Pascal версии 5.5.
Последняя версия (7.0) была переименована в Borland Pascal.
Объектные средства были позаимствованы из Object Pascal от Apple, языковые различия между объектным Turbo Pascal 5.5 и Object Pascal от Apple крайне незначительны.
Почти в то же самое время, что и Borland, Microsoft выпустил свою версию объектно-ориентированного языка Паскаль.[8][9] Эта версия Паскаля не получила широкого распространения.
Дальнейшее развитие реализации Паскаля от Borland породило вариант Object Pascal от Borland, впоследствии, в ходе развития среды программирования Delphi, получивший одноимённое название.
Си++
Безусловно, Си++ восходит, главным образом, к Cи. Cи сохранен как подмножество,
поэтому сделанного в Cи акцента на средствахнизкого уровня достаточно, чтобы
справляться с самыми насущными задачами системного программирования. Cи, в свою
очередь, многим обязан своемупредшественнику BCPL.
Название Си++ - изобретение лета 1983-его. Более ранние версии языка
использовались начиная с 1980-ого и были известны как "Cи сКлассами".
Первоначально язык был придуман потому, что автор хотел написать событийно
управляемые модели для чего был бы идеален Simula67,если не принимать во
внимание эффективность. "Cи с Классами" использовался для крупных проектов
моделирования, в которых строготестировались возможности написания программ,
требующих (только) минимального пространства памяти и времени на выполнение. В
"Cи с Классами"не хватало перегрузки операций, ссылок, виртуальных функций и
многих деталей. Си++ был впервые введен за пределами исследовательской группы
автора в июле1983-го. Однако тогда многие особенности Си++ были еще не
придуманы.
Название Си++ выдумал Рик Масситти. Название указывает на эволюционную природу
перехода к нему от Cи. "++" - этооперация приращения в Cи. Чуть более короткое
имя Cи+ является синтаксической ошибкой, кроме того, оно уже было использовано
как имя совсемдругого языка. Знатоки семантики Cи находят, что Си++ хуже, чем Cи
++. Названия D язык не получил, поскольку он является расширением Cии в нем не
делается попыток исцелиться от проблем путем выбрасывания различных
особенностей.
Си++ - это универсальный язык программирования, задуманный так, чтобы
сделатьпрограммирование более приятным для серьезного программиста. За
исключением второстепенных деталей Си++ является надмножеством
языкапрограммирования Cи. Помимо возможностей, которые дает Cи, Си++
предоставляет гибкие и эффективные средства определения новых типов.Используя
определения новых типов, точно отвечающих концепциям приложения, программист
может разделять разрабатываемую программу на легко поддающиесяконтролю части.
Такой метод построения программ часто называют абстракцией данных. Информация о
типах содержится в некоторых объектах типов, определенныхпользователем. Такие
объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя
установить на стадии компиляции. Программирование сприменением таких объектов
часто называют объектно-ориентированным. При правильном использовании этот метод
дает более короткие, проще понимаемые илегче контролируемые программы.
Изначально Си++ был разработан, чтобы автору и его друзьям не приходилось
программировать на ассемблере, Cи или других современныхязыках высокого уровня.
Основным его предназначением было сделать написание хороших программ более
простым и приятным для отдельного программиста. Планаразработки Си++ на бумаге
никогда не было. Проект, документация и реализация двигались одновременно.
Разумеется, внешний интерфейс Си++ былнаписан на Си++. Никогда не существовало
"Проекта Си++" и "Комитета по разработке Си++". Поэтому Си++ развивалсяи
продолжает развиваться во всех направлениях, чтобы справляться со сложностями, с
которыми сталкиваются пользователи, а также в процессе дискуссийавтора с его
друзьями и коллегами.
В качестве базового языка для Си++ был выбран Cи, потому что он:
многоцелевой, лаконичный и относительно низкого уровня:
отвечает большинству задач системного программирования:
идет везде и на всем:
пригоден в среде программирования UNIX.
В Cи есть свои сложности, но в наспех спроектированном языке тоже были бы свои,
а сложности Cи нам известны. Самое главное, работа с Cипозволила "Cи с Классами"
быть полезным (правда, неудобным) инструментом в ходе первых месяцев раздумий о
добавлении к Cи Simula-подобных классов.
Си++ стал использоваться шире, и по мере того, как возможности, предоставляемые
им помимо возможностей Cи,становились все более существенными, вновь и вновь
поднимался вопрос о том, сохранять ли совместимость с Cи. Ясно, что отказавшись
от определеннойчасти наследия Cи можно было бы избежать ряда проблем. Это не
было сделано, потому что:
есть миллионы строк на Cи, которые могли бы принести пользу в Си++ приусловии,
что их не нужно было бы полностью переписывать с Cи на Си++;
есть сотни тысяч строк библиотечных функций и сервисных программ, написанных
на Cикоторые можно было бы использовать из или на Си++ при условии, что Си++
полностью совместим с Cи по загрузке и синтаксически очень похож на Cи;
есть десятки тысяч программистов, которые знают Cи, и которым, поэтому,
нужнотолько научиться использовать новые особенности Си++, а не заново изучать
его основы;
поскольку Си++ и Cи будут использоваться на одних и тех же системах однимии
теми же людьми, отличия должны быть либо очень большими, либо очень
маленькими, чтобы свести к минимуму ошибки и недоразумения.
Позднее была проведена проверка определения Си++, чтобы удостовериться в том,
что любая конструкция, допустимая и в Cи, и в Си++,действительно означает в
обоих языках одно и то же.
Си++ был развит из языка программирования Cи и за очень немногими исключениями
сохраняет Cикак подмножество. Базовый язык, Cи подмножество Си++, спроектирован
так, что имеется очень близкое соответствие между его типами,операциями и
операторами и компьютерными объектами, с которыми непосредственно приходится
иметь дело: числами, символами и адресами. За исключением операцийсвободной
памяти new и delete, отдельные выражения и операторы Си++ обычно не нуждаются в
скрытой поддержке во время выполнения или подпрограммах.
Одним из первоначальных предназначений Cи было применение его вместо
программирования на ассемблере в самых насущных задачах
системногопрограммирования. Когда проектировался Си++, были приняты меры, чтобы
не ставить под угрозу успехи в этой области. Различие между Cи и Си++ состоитв
первую очередь в степени внимания, уделяемого типам и структурам. Cи выразителен
и снисходителен. Си++ еще более выразителен, но чтобыдостичь этой
выразительности, программист должен уделить больше внимания типам объектов.
Когда известны типы объектов, компилятор может правильно обрабатыватьвыражения,
тогда как в противном случае программисту пришлось бы задавать действия с
мучительными подробностями. Знание типов объектов также позволяеткомпилятору
обнаруживать ошибки, которые в противном случае остались бы до тестирования.
Заметьте, что использование системы типов для того, чтобыполучить проверку
параметров функций, защитить данные от случайного искажения, задать новые
операции и т.д., само по себе не увеличивает расходов по временивыполнения и
памяти.
Особое внимание, уделенное при разработке Си++ структуре, отразилось на
возрастании масштаба программ, написанных со времени разработки Cи.Маленькую
программу (меньше 1000 строк) вы можете заставить работать с помощью грубой
силы, даже нарушая все правила хорошего стиля. Для программ большихразмеров это
не совсем так. Если программа в 10 000 строк имеет плохую структуру, то вы
обнаружите, что новые ошибки появляются так же быстро, какудаляются старые. Си++
был разработан так, чтобы дать возможность разумным образом структурировать
большие программы таким образом, чтобы дляодного человека не было непомерным
справляться с программами в 25 000 строк. Существуют программы гораздо больших
размеров, однако те, которые работают, вцелом, как оказывается, состоят из
большого числа почти независимых частей, размер каждой из которых намного ниже
указанных пределов.
Естественно, сложность написания и поддержки программы зависит от сложности
разработки, а не просто от числа строк текста программы, так чтоточные цифры, с
помощью которых были выражены предыдущие соображения, не следует воспринимать
слишком серьезно.
3.9.1.Замечание по проекту языка Си++
Существенным критерием при разработке языка была простота. Там, где возникал
выбор между упрощением руководства по языку и другой документации иупрощением
компилятора, выбиралось первое. Огромное значение также предавалось
совместимости с Cи, это помешало удалить синтаксис Cи.
В Си++ нет типов данных высокого уровня и нет первичных операций высокого
уровня. В нем нет, например, матричного типас операцией обращения или типа
строка с операцией конкатенации. Если пользователю понадобятся подобные типы, их
можно определить в самом языке. Посути дела, основное, чем занимается
программирование на Си++ - это определение универсальных и специально-прикладных
типов. Хорошо разработанныйтип, определяемый пользователем, отличается от
встроенного типа только способом определения, но не способом использования.
Исключались те черты, которые могли бы повлечь дополнительные расходы памяти или
времени выполнения. Например, мысли о том, чтобы сделать необходимымхранение в
каждом объекте ”хозяйственной” информации, были отвергнуты. Если пользователь
описывает структуру, состоящую из двух 16-битовых величин, тоструктура
поместится в 32-битовый регистр.
Си++ проектировался для использования в довольно традиционной среде
компиляции и выполнения, средепрограммирования на Cи в системе UNIX. Средства
обработки особых ситуаций и параллельного программирования, требующие
нетривиальной загрузки иподдержки в процессе выполнения, не были включены в
Си++. Вследствие этого реализация Си++ очень легко переносима. Однако есть
полныеоснования использовать Си++ в среде, где имеется гораздо более
существенная поддержка. Такие средства, как динамическая загрузка, пошаговая
трансляцияи база данных определений типов могут с пользой применяться без
воздействия на язык.
4. ЗАКЛЮЧЕНИЕ.
Изобретение языка программирования высшего уровня позволило нам общаться с
машиной,понимать её (если конечно Вам знаком используемый язык), как понимает
американец немного знакомый с русским языком древнюю азбуку Кириллицы.
Прощеговоря, мы в нашем развитии науки программирования пока что с ЭВМ на ВЫ.
Поверьте мне это не сарказм вы толькопосмотрите как развилась наука
программирования с того времени, как появились языки программирования, а
ведьязык программирования высшего уровня, судя по всему ещё младенец. Но если мы
обратим внимание на темпы роста и развития новейших технологий в
областипрограммирования, то можно предположить, что в ближайшем будущем,
человеческие познания в этой сфере, помогут произвести на свет языки, умеющие
принимать,обрабатывать и передавать информации в виде мысли, слова, звука или
жеста. Так и хочется назвать это детище компьютеризированного будущего: «языки
программирования"высочайшего" уровня». Возможно, концепция решения этого вопроса
проста, а ближайшее будущее этого проекта уже не за горами, и в этот момент,где
нибудь в Запорожье, Амстердаме, Токио или Иерусалиме, перед стареньким 133MHz
горбится молодой, никем не признанный специалист и разрабатывает новейшуюсистему
искусственного интеллекта, которая наконец-то позволит человеку, с помощью
своих машинных языков, вестидиалог с машиной на ТЫ.
Размышляя над этим, хочется верить в прогресс науки и техники, в высоко -
компьютеризированное будущее человечества, как единственного существа напланете,
пусть и не использующего один, определенный разговорный язык, но способного так
быстро прогрессировать и развивать свой интеллект, что иперехода от
многоязыковой системы к всеобщему пониманию долго ждать не придется.
Завершить свой труд хорошо бы на такой оптимистичной ноте, но нет, напоследок
хочетсяпроцитировать человека, фрагменты работы которого, в виде информации о
языке Си, вам уже попадались на страницах этого текста:
Единственный способ изучать новый язык программирования – писать на нём
программы.
Источники:
http://www.5byte.ru/referat/0002.php
http://progopedia.ru/language/ada/
http://ru.wikipedia.org/wiki/Ada
http://www.ada-ru.org/arm83/ch01s03.html
http://www.visual.2000.ru/kolesov/nauka/basichis.htm
http://ru.wikipedia.org/wiki/C_Sharp
http://ru.wikipedia.org/wiki/Java