Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Языки программирования, их классификация и развитие

начально язык был придуман потому, что автор хотел написать событийно
управляемые модели для чего был бы идеален 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. Средства
обработки особых ситуаций и параллельного программирования, требующие
нетривиальной загрузки иподдержки в процессе выполнения, не были включены в
Си++. Вследствие этого реализация Си++ очень легко переносима. Однако есть
полныеоснования использовать Си++ в среде, где имеется гораздо более
существенная поддержка. Такие средст
12345След.
скачать работу

Языки программирования, их классификация и развитие

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ