Файл: История возникновения и развития языка программирования Си (С++) и Java (Структура, эффективность).pdf
Добавлен: 31.03.2023
Просмотров: 281
Скачиваний: 1
является языком общего назначения и при этом он был задуман, чтобы программисты получали удовольствие от программирования. Если исключить второстепенные детали, то он содержит язык как подмножество. При этом язык расширился посредством введения эффективных и гибких средств, которые предназначены для того, чтобы строить новые типы.
Программисты структурируют свои задачи, определяя новые типы, точно соответствующие понятиям предметной области задачи. Данный метод в построении программы носит название абстракция данных. Информацию о типах содержат некоторые объекты типов, которые определяются пользователем.
С данными видами объектов возможно работать просто и надежно даже тогда, когда этот тип невозможно установить во время стадии трансляции[18]. Программирование при использовании таких объектов носит название объектно-ориентированное. Данный метод применяется правильно, то тогда становятся понятнее и короче программы, а также их сопровождение значительно упрощается [19].
Ключевое понятие – это класс. Классом называется тип, определяемый пользователем. Посредством классов происходит упрятывание данных, их инициализацию, динамическое задание типов, неявное преобразование пользовательских типов, контролируемое пользователем управление памятью и средства для того, чтобы перегрузить операции. В языке концепции контроля типов и модульного построения программ реализуются более полноценно нежели в .[20] Помимо этого содержит усовершенствования, которые напрямую с классами не связаны: функции-подстановки, перегрузка имен функций, символические константы, стандартные значения параметров функций, операции управления свободной памятью и ссылочный тип. В сохраняются все возможности , которые обеспечивают эффективную работу с основными объектами и при этом отражают аппаратную «реальность» (байты, слова, разряды, адреса и т.д.). Что помогает очень эффективно реализовать пользовательские типы.[21]
Объектно-ориентированным программированием является метод программирования, способ написания «хороших» программ для многих задач. Данный термин носит какой-то смысл, то он должен подразумевать: такой язык программирования, предоставляющий хорошие возможности для того, чтобы был возможен объектно-ориентированный стиль в программировании.
Нет понятия, что один из языков лучше, чем другой лишь потому, что в нем присутствуют возможности, которые отсутствуют в другом. Порой бывает всё наоборот. Наиболее важным является не то, какие возможности присущи языку, а то, насколько возможности, которые имеются в нем, поддерживают выбранный стиль программирования для определённых задач.
Данный язык был спроектирован как «лучший », тот который поддерживает абстракцию данных и объектно-ориентированное программирование. Но он при этом должен являться пригодным для множества основных задач в системном программировании.[22]
- Основной трудностью для языка, который создан для расчета на методы упрятывания данных, абстракции данных и объектно-ориентированного программирования, является то, что данный язык должен:
- Идти на традиционных машинах;
- Сосуществовать с традиционными операционными системами и языками;
- Соперничать с традиционными языками программирования в эффективности;
- Выполнения программы;
- Быть пригодным для всех основных областях приложения.
Это означает, что должна быть возможность для того, чтобы производились эффективные числовые операции и средства с таким доступом к памяти, позволяющий на этом языке написать драйверы для устройств. [23]Помимо этого, необходимо уметь написать вызовы функций в довольно непривычной записи, которая принята для того, чтобы происходили обращения в традиционных операционных системах. И естественно, должна быть возможность из языка, который поддерживает объектно-ориентированное программирование, вызвать функции, которые были написаны на других языках, а также вызывать функцию из других языков на этом языке, который поддерживает объектно-ориентированное программирование.[24]
Что важно, не стоит рассчитывать на широкое использование искомого языка программирования, как языка, имеющего общее назначение, если его реализация полностью полагается на возможности, отсутствующие в машинах, у которых традиционная архитектура.
Если не вводится в язык возможность низкого уровня, то поэтому придется для основных задач из большинства областей приложения использовать некоторые языки низкого уровня, к примеру или ассемблер. Но был спроектирован на расчет, что в нём возможно все сделать, что допустимо на , при этом не увеличивая время на его выполнения. Вообще, был спроектирован, исходя из принципа, что не должны возникать никакие дополнительные затраты памяти и времени.[25]
Язык проектировался исходя из расчета на современные методы трансляции, обеспечивающие проверку согласованности программы, насколько она эффективна и компактна в представлении. Основное средство борьбы со сложностью программ – это инкапсуляция и строгий контроль типов. В особенности это касаемо больших программ, которые создают многие люди. Пользователь может быть не одним из создателей такого рода программ, и при этом вообще не являться программистом. Так как никакую настоящую программу невозможно написать, не поддерживая библиотеки, которые создаются другими программистами[26].
был спроектирован для того, чтобы поддерживать тот принцип, что любая программа – это модель некоторых понятий, которые существуют в реальности, а класс – это конкретное представление понятия, которое взято из приложения. Таким образом классы пронизывают всю программу на , и применяются жесткие требования на гибкость в понятии класс, компактность объектов в классе и их эффективное использование. Если работа с классами является неудобной или слишком накладной, то классы просто не используют, и программы будут являться программами на «лучшем ». То приходим к выводу, что пользователь не сможет насладиться теми возможностями, ради которых был создан язык.[27]
Развивается язык на базе языка , и, при этом есть исключение, сохранен, как подмножеств . Базовый язык спроектирован так, что есть очень тесная связь между операциями, типами, объектами и операторами, с которыми и работает машина, то есть символами, числами и адресами. За исключением операций , и , а также проверяемого блока для того, чтобы выполнить операторы и выражения не требуется скрытая динамическая аппаратная или программная поддержка.[28]
Изначально язык был задуман, как конкурент ассемблера, который способен вытеснять его из основных задач в системном программировании. В проекте принимались меры для того, чтобы успехи в данной области не были под угрозой. Между двумя языками различие состоит прежде всего в степени внимания, которое уделяется структурам и типам. Язык является более выразительным, но такая выразительность может быть лишь тогда, когда уделяют большое внимание типам. Когда известны типы объектов, то транслятором правильно распознаются такие выражения, иначе в них программисту нужно было бы записывать операции с подробностями.[29]
Помимо этого, знание типов помогает транслятору в обнаружении таких ошибок, которые были бы выявлены лишь во время тестирования. Само по себе использование строгой типизации языка для того, чтобы контролировать параметры функции, защиту данных от несанкционированного доступа, определения новых операций и типов за собой не влечет дополнительные расходы памяти и увеличения времени по выполнению программы[30].
Выводы по первой главе: В данной главе были рассмотрены языки С( С++): история возникновения, развитие, структура. Существует много реализаций языка , являющиеся как бесплатные, так и коммерческие и для разных платформ. Язык стал стремительным и мощным рывком при развитии программирования. и сейчас занимает немаловажное значение среди языков программирования в мире. Очевидно, этот язык будет сохранять свое положение ещё не один год, при этом также развиваясь и совершенствуясь.
2. История возникновения и развития языка программирования Java
2.1.Возникновение и эволюция языка Java
Java является языком программирования, который был разработан компанией Sun Microsystems. Обычно приложения Java компилируются в специальный байт-код, таким образом они могут выполнять свою работу на любой из виртуальных Java-машин (JVM) независимо от того какова компьютерная архитектура. Датой официального выпуска является 23 мая 1995 года.[31] На сегодняшний день технология Java – это средства для того, чтобы превратить статические Web-страницы в интерактивные динамические документы и для того, чтобы создать распределенные приложения, при этом не зависящие от платформы.
«Для группы была поставлена задача создать распределенную систему, которая могла бы быть, как современная программная технология и при этом продаваемая производителям бытовой электроники» – вспоминает Гослинг.
Гослингу, которому на данный момент 65 лет, перешел из исследовательского отдела IBM в Sun в 1984 г. Его первой работой является технически интересный, но при этом не имеющий коммерческого успеха оконный интерфейс NeWS. Им также была написана GOSMACS – первая реализация текстового редактора EMACS на языке С[32].
Данная деятельность в области бытовой электроники (в последующем называемая проект «Green») показала Гослингу с его коллегами, насколько для потребителя являются важными такие показатели, как стоимость, соответствие стандартам, надежность и простота. Если для пользователей рабочих станций проявляется интерес в большой мощности, и они являются терпимы к высоким ценам, длительному обучению и наличию разного рода ошибок, то рядовые потребители хотят дешевых, относительно простых и надежных устройств.[33]
Для успешной конкуренции на рынке бытовой электроники, компаниями процессоры должны быть рассмотрены как обычный товар, который в любое время возможно было бы заменить на более дешевый, а также обеспечить обратную совместимость, при этом соблюдая стандарты, которые устанавливаются на устройства при длительном пользовании типа телевизоров и тостеров.[34]
Относительно произношения на русском языке, как и в некоторых других, были образованы две разные нормы — заимствованная англоязычная джава») и традиционно-национальная «ява», которая соответствует традиционному произношению названия острова Ява. Компания Sun придерживается англоязычного произношения во всех странах мира. Порой в обиходе используется жаргонное слово «Жаба» (к примеру, изображена жаба на календарях группы российских пользователей Java (Java Users Group)[35].
Java называется не только сам язык, но и платформа на которой создаются и исполняются приложения, основываясь на данном языке.
Сначала назывался язык Oak («дуб») и был разработан Джеймсом Гослингом для того, чтобы программировались бытовые электронные устройства. После его переименовали в Java и стали использовать для того, чтобы написать клиентские приложения и серверное программное обеспечение. Его назвали в честь марки кофе Java, который является любимым некоторыми из программистов, поэтому на официальной эмблеме языка изображается чашка с дымящимся кофе. Имеет место быть, и другая версия того как происходит название Java, а именно, Java это сленговое обозначение кофе с аллюзией на кофе-машину, что является примером бытового устройства, для которых язык программирования изначально был создан[36].
Для того, чтобы разработка не была связана с конкретной платформой, Гослингом было принято решение начать с расширения компилятора . Но со временем, он понял, что один , каким бы образом его ни расширяли, им не получится удовлетворить все из потребностей. Поэтому с середины 1991 года была задумка языка Oak ( что впоследствии во время поиска торговой марки было названо, как Java). «То есть, язык является средством, а не самоцелью, как поясняет Гослинг. Мы не хотели зацикливаться на , а хотели разработать систему, позволяющую создавать большую и распределенную, при этом разнородную сеть из бытовых электронных устройств, которые способны между собой взаимодействовать».
К концу 1992 года, предпринимая, по мнению тогда еще инженера проекта Патрика Нотона, «огромные усилия на то, чтобы доработать Oak и другие компоненты», коллективом проекта «Green» было выпущено «*7» - устройство типа PDA, которое названо Гослингом, как «ручной пульт дистанционного управления».[37]
«На протяжении полутора лет мы смогли сделать столько же, сколько многие большие коллективы в Sun делали три года, - отметил с гордостью Нотон. - Операционная система GreenOS, инструментарий, язык, пользовательский интерфейс, новая аппаратня платформа, три заказных микросхемы... и каждый из этапов связан с риском, так как нами были использованы абсолютно новые технологии».