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

Цели и задачи

Цель работы состоит в изучении истории возникновения и развития языков программирования Си (C++) и Java.

Введение и актуальность


Одно из начальных предназначений C – это использование его вместо программирования на ассемблере в насущных задачах системного программирования. При проектировании С++, принимались меры, чтобы успехи в этой области не попадали под угрозу. Отличие между C и С++ в первую очередь состоит в степени внимания, которое уделяется типам и структурам. C снисходителен и выразителен. С++ еще более выразителен, но, чтобы добиться этой выразительности, программисту необходимо уделить особое внимание типам объектов. Когда типы объектов известны, компилятор может верно обрабатывать выражения, однако в противном случае программисту нужно было бы задавать действия с мельчайшими подробностями. Знание типов объектов также дает возможность компилятору выявить ошибки, которые могли остаться до тестирования в противном случае. Нужно отметить, что применение системы типов для получения проверки параметров функций, защиты данных от случайного искажения, задания новых операций и т.д., само по себе не вызывает рост расходов по времени выполнения и памяти.
Особенное внимание, уделенное структуре в ходе разработки С++, отражается на росте масштаба программ, которые были написаны со времени разработки C. Небольшую программу (меньше 1000 строк) можно заставить работать при помощи грубой силы, даже обходя все правила хорошего стиля. Но это не совсем так для программ больших размеров. Если программа в 10 000 строк обладает плохой структурой, то можно заметить, что новые ошибки возникают так же быстро, как старые удаляются. С++ был разработан так, чтобы позволить структурировать большие программы разумным образом так, чтобы для одного человека не было невозможным справляться с программами в 25 000 строк. Существуют и программы куда больших размеров, однако работающие, в общем, как правило, состоят из большого количества практически независимых частей, размер каждой из них намного ниже определенных пределов. Как правило, сложность написания и поддержки программы также зависит и от сложности разработки, а не только от количества строк текста программы.
Однако, не каждая часть программы может быть верно структурирована, независима от аппаратного обеспечения, легко читаема и пр. С++ имеет возможности, предназначенные для непосредственной и эффективной работы с аппаратными средствами, не беспокоясь о безопасности либо простоте понимания. Также он обладает возможностями, позволяющими скрывать такие программы за надежными, но элегантными интерфейсами.
Может сложится мнение, что спецификация программы при помощи более подробной системы типов приведет к увеличению размеров исходных текстов программы. В С++ это не так. С++ программа, которая описывает типы параметров функций, использует классы и т.д., как правило, немного короче эквивалентной C программы, в которой данные средства не применяются.

Заключение и вывод


С++ был развит на базе языка программирования C и сохраняет C как подмножество за очень немногими исключениями. Базовый язык, C подмножество С++, спроектирован таким образом, что сохраняется очень близкое соответствие между его типами, операторами и операциями, и компьютерными объектами, с которыми приходится иметь дело: символами, числами и адресами. Исключением выступают операции свободной памяти new и delete, отдельные операторы и выражения С++ как правило не нуждаются в скрытой поддержке во время выполнения или подпрограммах.
В С++ применяются такие же последовательности возврата и вызова из функций, как и в C. В случаях, когда даже приведенный достаточно эффективный механизм становится слишком дорогим, С++ функция может быть подставлена inline, таким образом, удовлетворяя соглашению о записи функций без дополнительных расходов времени выполнения.
Java создавался как универсальный язык, который предназначался для прикладного программирования в неоднородных компьютерных сетях и со стороны клиентского компьютера, и со стороны сервера. В том числе – для применения на тонких аппаратных клиентах (устройствах малой вычислительной мощности с крайне ограниченными ресурсами). При этом скомпилированные программы Java работают лишь под управлением виртуальной Java-машины, именно поэтому они называются приложениями Java. Синтаксис операторов Java почти полностью идентичен синтаксису языка C, но, Java не является расширением C, в отличие от C++, – это совершенно независимый язык, со своими собственными синтаксическими правилами.
Идеология Java подразумевает работу в компьютерных сетях и возможность подгрузки в нужный момент посредством сети требуемых классов и ресурсов, необходимых программе, и тех, что не были загружены до того. Для обеспечения такой работы приложения Java разрабатываются и распространяются, как большое число независимых классов. Тем не менее данный способ разработки ведет к очень высокой фрагментации программы. Даже небольшие учебные проекты как правило состоят из десятков классов, в то время как реальные проекты – из сотен. В то же время каждому общедоступному (public) классу соответствует свой файл, носящий такое же имя. Для того чтобы справиться с данным количесвом файлов, Java предусматривает специальное средство группировки классов, которое называется пакетом (package). Пакеты обеспечивают независимые пространства имен (namespaces), а также ограничение доступа к классам.

Нужна похожая работа?

Оставь заявку на бесплатный расчёт

Смотреть все Еще 421 дипломных работ