Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Начальные сведения о языке.doc
Скачиваний:
8
Добавлен:
14.11.2019
Размер:
560.64 Кб
Скачать

9 Начальные сведения о языке

В энциклопедическом словаре по поводу того, что такое ЯЗЫК, приводится следующее:

  • ЯЗЫК - естественный язык, важнейшее средство человеческого общения.

  • ЯЗЫК неразрывно связан с мышлением; является социальным средством хранения и передачи информации, одним из средств управления человеческим поведением. ….

C++ также является языком. Это формальный язык.

Несмотря на огромную разницу между естественными и формальными языками, у них есть много общего.

Например, изучение естественного языка является сложным процессом, включающим как обретение элементарных автоматических навыков, так и восприятие сложных абстрактных понятий. При этом возможность относительно свободного использования языка как средства общения появляется уже на ранних стадиях этого процесса, когда вообще ещё не имеет смысла говорить о знании языка.

Практически все мы свободно владеем разговорным языком, а вернее, навыками разговорной речи. При этом лишь незначительная часть жителей действительно глубоко знает этот язык.

Аналогичная ситуация наблюдается и с языками программирования. Первые опыты программирования, подобно использованию навыков разговорной речи, не требуют особых познаний в области формальных языков. Для составления работающих программ достаточно иметь интуитивные представления об алгоритмах и устройстве компьютера. Часто бывает достаточно ознакомиться с несколькими работающими программами или даже с фрагментами таких программ, чтобы, в буквальном смысле используя образцы, успешно описывать собственные алгоритмы.

Формальный язык является объединением нескольких множеств:

  • множества исходных символов, называемых литерами (алфавит),

  • множества правил, которые позволяют строить из букв алфавита новые слова (правила порождения слов или идентификаторов),

  • множества предопределённых идентификаторов или словаря ключевых слов (прочие идентификаторы называются именами),

  • множества правил, которые позволяют собирать из имён и ключевых слов выражения, на основе которых строятся простые и сложные предложения (правила порождения операторов или предложений).

Множество правил порождения слов, выражений и предложений называют грамматикой формального языка или формальной грамматикой.

Характеристика языков С и 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.

В целом надо сказать, что язык С++ в настоящее время является одним из наиболее распространенных языков программирования в мире.