Читайте также:
|
|
В энциклопедическом словаре по поводу того, что такое ЯЗЫК, приводится следующее:
q ЯЗЫК - естественный язык, важнейшее средство человеческого общения.
q ЯЗЫК неразрывно связан с мышлением; является социальным средством хранения и передачи информации, одним из средств управления человеческим поведением. ….
C++ также является языком. Это формальный язык.
Несмотря на огромную разницу между естественными и формальными языками, у них есть много общего.
Например, изучение естественного языка является сложным процессом, включающим как обретение элементарных автоматических навыков, так и восприятие сложных абстрактных понятий. При этом возможность относительно свободного использования языка как средства общения появляется уже на ранних стадиях этого процесса, когда вообще ещё не имеет смысла говорить о знании языка.
Практически все мы свободно владеем разговорным языком, а вернее, навыками разговорной речи. При этом лишь незначительная часть жителей действительно глубоко знает этот язык.
Аналогичная ситуация наблюдается и с языками программирования. Первые опыты программирования, подобно использованию навыков разговорной речи, не требуют особых познаний в области формальных языков. Для составления работающих программ достаточно иметь интуитивные представления об алгоритмах и устройстве компьютера. Часто бывает достаточно ознакомиться с несколькими работающими программами или даже с фрагментами таких программ, чтобы, в буквальном смысле используя образцы, успешно описывать собственные алгоритмы.
Формальный язык является объединением нескольких множеств:
q множества исходных символов, называемых литерами (алфавит),
q множества правил, которые позволяют строить из букв алфавита новые слова (правила порождения слов или идентификаторов),
q множества предопределённых идентификаторов или словаря ключевых слов (прочие идентификаторы называются именами),
q множества правил, которые позволяют собирать из имён и ключевых слов выражения, на основе которых строятся простые и сложные предложения (правила порождения операторов или предложений).
Множество правил порождения слов, выражений и предложений называют грамматикой формального языка или формальной грамматикой.
Характеристика языков С и C++
C++ — это объектно-ориентированный язык программирования, фундаментом которого является С.
C++ - это наиболее полный и совершенный продукт разработки программного обеспечения на сегодня. Он обеспечивает беспрецедентный уровень скорости и удобства программирования, в то же время он предлагает широкий набор разнообразных форм проектирования, удобный практически для любого стиля программирования.
С++ является расширением популярного и широко распространенного языка программирования С. В языке С++ сохранены все достоинства С, включая его мощные и гибкие средства для работы с аппаратурой. Одной из ключевых задач при создании С++ было обеспечение совместимости с языком С. Имелось желание сохранить в целости миллионы ранее написанных и отлаженных строк программ языка С, многие существующие библиотеки С и полезные инструментальные средства, написанные ранее на С. Поскольку эта задача была в значительной мере успешно решена, многие программисты считают переход с С на С++ гораздо более легким, чем с других языков.
Язык программирования служит двум взаимосвязанным целям: он предоставляет программисту инструмент для описания подлежащих выполнению действий и набор концепций, которыми оперирует программист, обдумывая, что можно сделать. Первая цель в идеале требует языка, близкого к компьютеру, чтобы все важные элементы компьютера управлялись просто и эффективно способом, достаточно очевидным для программиста. Язык С создавался, отталкиваясь именно от этой идеи. Вторая цель в идеале требует языка, близкого к решаемой задаче, чтобы концепции решения могли быть выражены понятно и непосредственно. Эта идея привела к пополнению С свойствами, превратившими его в С++.
Самое существенное улучшение по сравнению с языком С касается концепции объектно-ориентированного программирования. Класс в С++ - это тип. Он описывает поведение объектов этого класса: как они создаются, управляется и уничтожается. Ключом к проектированию хороших программ является выделение классов, каждый из которых ясно описывает отдельное понятие. Одним из мощнейших интеллектуальных инструментов преодоления сложности является иерархическое упорядочивание понятий. В С++ для представления такой иерархической структуры используются производные классы. Т.е. при проектировании программист определяет ряд базовых классов, каждый из которых имеет набор производных классов. Для определения операций с наиболее общими понятиями (операций базовых классов) можно воспользоваться виртуальными функциями. Затем в конкретных случаях интерпретация операций может быть переопределена в производных классах.
Другая форма общности может быть выражена при помощи шаблонов. Шаблон класса определяет целое семейство классов. Шаблон – это механизм создания типа, которому другой тип передается в качестве аргумента. Наиболее распространенными шаблонами являются классы контейнеров и основные алгоритмы, использующие эти контейнеры.
.
Краткая история развития языков С и С++
Язык С был изобретен и реализован Деннисом Ритчи (Dennis Ritchie) для компьютера DEC PDP-11 в операционной системе Unix. Этот язык был разработан на основе "более старого" языка BCPL, созданного в свое время Мартином Ричардсом (Martin Richards). BCPL оказал определенное влияние на язык В, разработанный Кеном Томпсоном (Ken Thompson). В свою очередь развитие язык В привело к созданию в 1970 году языка С.
На протяжении многих лет стандартом С была фактически версия, поставляемая вместе с операционной системой Unix. Эта версия впервые была описана Брайаном Керниганом (Brian Kernighan) и Деннисом Ритчи в книге The С Programming Language (Englewood Cliffs, N.J.: Prentice-Hall, 1978). Летом 1983 года был образован комитет по созданию для языка С стандарта ANSI (American National Standards Institute — Национальный институт стандартизации США}. Надо отметить, что процесс стандартизации занял весьма немалый срок — шесть лет.
Стандарт ANSI был окончательно принят в декабре 1989 года и впервые опубликован в начале 1990 года. Этот стандарт был также принят организацией ISO (International Standards Organisation — Международная организация по стандартизации),. поэтому он называется стандартом ANSI/ISO языка С.
В 1995 году была принята 1-я Поправка к стандарту С, согласно которой, среди прочего, было добавлено несколько библиотечных функций. В 1989 году стандарт С вместе с 1-й Поправкой стал базовым документом Стандарта C++, определяющего С как подмножество C++. Версию С, определенную стандартом 1989 года, обычно называют С89.
На протяжении 90-х годов внимание программистов было приковано главным образом к развитию стандарта C++. Тем временем разработка С также продолжалась, приведя в 1999 году к появлению стандарта С, который принято называть С99. В целом С99 сохранил все основные черты С89, т.е., можно сказать, что язык С остался самим собой!
Хотя язык С был одним из наиболее распространённых и любимх профессиональных языков программирования, его мощности уже не хватало для решения основной проблемы – возрастающей сложности программ. Механизмы языка С не позволяют работать с программой как с единым целым, если её размер колеблется в пределах от 25000 до 10000 строк кода. Одной из главных целей С++ было преодоление этого препятствия. Язык С++ позволил программистам прекрасно справляться с более крупными и сложными программами.
Разработчиком языка С++ является Бьерн Страуструп (Bjarne Stroustrup). В своей работе он опирался на опыт создателей языков Симула, Модула 2, абстрактных типов данных. Основные работы велись в исследовательском центре компании Bell Laboratories роде Мюррей-Хилл (штат Нью-Джерси). Непосредственный предшественник С++ — язык «С с классами» — появился в 1979 году, однако в 1983 г. его название было изменено на С++.
Большинство усовершенствований, внесённых Страуструпом в язык С, касалось поддержки объекетно-ориентированного программирования (ООП).
В 1997 году был принят международный стандарт С++, который фактически подвел итоги его 20-летнего развития. Принятие стандарта обеспечило единообразие всех реализации языка С++. Не менее важным результатом стандартизации стало то, что в процессе выработки и утверждения стандарта язык был уточнен и дополнен рядом существенных возможностей.
Язык С++ является универсальным языком программирования, в дополнение к которому разработан набор разнообразных библиотек. Поэтому, строго говоря, он позволяет решить практически любую задачу программирования.
С++ как преемник языка С широко используется в системном программировании. На нем можно писать высокоэффективные программы, в том числе операционные системы, драйверы и т.п. Язык С++ — один из основных языков разработки трансляторов.
Поскольку системное программное обеспечение часто бывает написано на языке С или С++, то и программные интерфейсы к подсистемам ОС тоже часто пишут на С++. Соответственно, те программы, даже и прикладные, которые взаимодействуют с операционными системами, написаны на языке С++.
Распределенные системы, функционирующие на разных компьютерах, также разрабатываются на языке С++. Этому способствует то, что у широко распространенных компонентах моделей CORBA и СОМ есть удобные интерфейсы на языке С++.
Обработка сложных структур данных — текста, бизнес-информации, Internet-страниц и т.п. — одна из наиболее распространенных возможностей применения языка. В прикладном программировании, наверное, проще назвать те области, где язык С++ применяется мало.
Разработка графического пользовательского интерфейса на языке С++ выполняется, в основном, тогда, когда необходимо разрабатывать сложные, нестандартные интерфейсы. Простые программы чаще пишутся на языках Visual Basic, Java и т.п.
Программирование для Internet в основном производится на языках Java, VBScript, Peri.
В целом надо сказать, что язык С++ в настоящее время является одним из наиболее распространенных языков программирования в мире.
Дата добавления: 2015-08-13; просмотров: 114 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Бить, рассекать, резать – небо | | | Компиляторы и интерпретаторы |