Файл: История возникновения и развития языка программирования Си (С++) и Java (Понятие языков программирования C и C++).pdf
Добавлен: 01.04.2023
Просмотров: 195
Скачиваний: 1
1. Целые константы Правила языка допускают использование трёх видов целых констант: десятичных, шестнадцатеричных и восьмеричных. Основание определяется префиксом в записи константы. Для десятичных констант префикс не нужен.
Десятичное целое – это последовательность десятичных цифр, начинающаяся не с нуля (если это не число нуль), например:
- 100 25 0 2007
Восьмеричное целое – это последовательность цифр, начинающаяся с 0 и не содержащая десятичных цифр старше 7, например:
- 015 – восьмеричное представление десятичного целого 13;
- 025 – восьмеричное представление десятичного целого 21.
Шестнадцатеричное целое – это последовательность шестнадцатеричных цифр (0, 1,…, 9, А, B, С, D, Е, F), перед которой записаны символы 0х или 0Х, например:
- 0х25 – шестнадцатеричное представление десятичного целого 37;
- 0ХFF – шестнадцатеричное представление десятичного целого 255.
2. Вещественные константы. Для представления вещественных (нецелых) чисел используются константы, представляемые в памяти компьютера в форме с плавающей точкой. Каждая вещественная константа состоит из следующих частей:
- целая часть (десятичная целая константа);
- десятичная точка;
- дробная часть (десятичная целая константа);
- признак показателя "е" или "Е"; показатель десятичной степени (десятичная целая константа, возможно, со знаком).
При записи констант с плавающей точкой могут опускаться целая или дробная часть (но не одновременно). Десятичная точка или символ экспоненты с показателем степени (но не одновременно). Примеры констант с плавающей точкой:
125. 3.14159265 1.0е-5 .314159Е25 0.0
3. Символы, или символьные константы. Для изображения отдельных знаков, имеющих индивидуальные внутренние коды, используются символьные константы. Каждая символьная константа – это лексема, которая состоит из изображения символа и ограничивающих апострофов. Например: 'A', 'a', '5', '?', и так далее [8].
Внутри апострофов можно записать любой символ, изображаемый на дисплее или принтере в текстовом режиме. Однако в компьютере используются и коды, не имеющие графического представления на экране дисплея, клавиатуре или принтере. Примерами таких кодов служит код перехода курсора дисплея на новую строку или код возврата каретки (возврат курсора к началу текущей строки). Для изображения в программе соответствующих символьных констант используются комбинации из нескольких символов, имеющих графическое представление. Каждая такая комбинация начинается с символа '\' (обратная косая черта - Backslash). Такие наборы литер, начинающиеся с символа '\', в литературе по языкам Cи и С++ называют управляющими последовательностями.
Ниже приведен их список:
- '\n' – перевод строки;
- '\t' – горизонтальная табуляция;
- '\r' – возврат каретки (курсора) к началу строки;
- '\\' – обратная косая черта \;
- '\'' – апостроф (одиночная кавычка);
- '\"' – кавычка (символ двойной кавычки);
- '\0' – нулевой символ;
- '\a' – сигнал-звонок;
- '\b' – возврат на одну позицию (на один символ);
- '\f' – перевод страницы;
- '\v' – вертикальная табуляция;
- '\?' – знак вопроса.
Нужно обратить внимание на то, что перечисленные константы изображаются двумя или более литерами, а обозначают они одну символьную константу, имеющую индивидуальный двоичный код. Управляющие последовательности являются частным случаем Escape – последовательностей (ESCAPE-sequence), к которым также относятся лексемы вида '\ddd' либо'\xhh' или '\Xhh', где '\ddd' – восьмеричное представление любой символьной константы. Здесь d – восьмеричная цифра (от 0 до 7). Например, '\017' или '\233' а '\xhh' или '\Xhh' – шестнадцатеричное представление любой символьной константы. Здесь h – шестнадцатеричная цифра (от 0 до F). Например, '\x0b', '\x1A', и так далее [1].
Символьная константа (символ) имеет целый тип, то есть символы можно использовать в качестве целочисленных операндов в выражениях.
4. Строки, или строковые константы. Строки вообще-то не относятся к константам языка С++, а представляют собой отдельный тип его лексем. Для них в литературе используется еще одно название: «строковые литералы». Строковая константа определяется как последовательность символов заключенная в двойные кавычки (не в апострофы) например: "Это строка"
Среди символов строки могут быть Escape - последовательности, то есть сочетания знаков, соответствующие не изображаемым символам, или символам, задаваемым их внутренними кодами.
В этом случае, как и в представлениях отдельных символьных констант, их изображения начинаются с обратной косой черты '\' например: "\n Текст \n разместится \n на 3-х строках"
Представления строковых констант в памяти компьютера подчиняются следующим правилам. Все символы строки размещаются подряд, и каждый символ (в том числе представленный Escape – последовательностью) занимает ровно 1 байт. В конце записи строковой константы компилятор помещает символ '\0'.
Таким образом, количество байтов, выделяемое в памяти компьютера для представления значения строки, на единицу больше, чем число символов в записи этой строковой константы [4].
При работе с символьной информацией важно помнить, что длина символьной константы, например, 'A' равна 1 байту, а длина строки "A" равна 2 байтам, так как строка заканчивается нуль-символом ('\0').
5. Булевы константы. Имеется всего два значения: true – истина и false – ложь.
6. Комментарии, комментарий – это последовательность любых знаков (символов), которая используется в тексте программы для её пояснения. Обычно в тексте программы делают вводный комментарий к программе в целом (автор, название программы, дата и так далее). Дают комментарии к отдельным фрагментам текста программы, смысл которых не является очевидным. Важно дать объяснение не только того, что делается, а с какой целью это делается. Комментарии важны всегда будь то создание программа для себя, или для работы других программистов [2].
Комментарии игнорируются компилятором языка программирования, они имеют значение только для пользователя. В языке С++ имеется два вида комментариев: однострочные и многострочные.
Однострочный комментарий – начинается с символов // (две косые черты). Всё, что записано после этих символов и до конца строки, считается комментарием. Например:
// Это текст комментария – Hello, world!
Многострочный комментарий – начинается парой символов /* (косая черта и звёздочка) и заканчивается символами */ (звёздочка и косая черта). Текст такого комментария может занимать одну или несколько строк. Всё, что находится между знаками /* и */, считается комментарием. Например:
/* Это мой большой
многострочный комментарий – Hello, world! */
В языке С++ определен ряд заголовков (header), которые обычно содержат информацию, необходимую для программы. Который представляет собой внешний исходный файл, помещаемый компилятором в начало программы с помощью директивы #include[2].
Пространства имен – относительно недавнее дополнение к языку С++. Приведем пример: using namespace std.
Прocтранство имен (namespace) создает декларативную область, в которой могут размещаться различные элементы программы. Пространство имен позволяет хранить одно множество имен отдельно от дрyгoго. С помощью этого средства можно упростить организацию больших программ. Ключевое слово using информирует компилятор об использовании заявленного пространства имен (в данном случае std). Именно в пространстве имен std объявлена вся библиотека стандарта С++. Таким образом, используя пространство имен std, мы упрощаем доступ к стандартной библиотеке языка. Поскольку пространства имен – относительно новое средство, старые компиляторы могут его не поддерживать [2].
Благодаря языкам Си и C++ произошел стремительный прорыв в развитии всего программирования. С++ и сегодня занимает доминирующее положение среди всех зыков программирования в мире. Благодаря ему множество программистов разрабатывает огромное число различных проектов. И в будущем этот язык программирования сохранит свои позиции, совершенствуясь изо дня в день.
Глава II Программирование Java
-
- Понятие языка программирования Java
Главными причинами, побуждающими к созданию нового языка программирования, служат совершенствование искусства программирования и изменения в вычислительной среде. И Java не является исключением из этого правила. Опираясь на богатое наследие Си и С++, этот язык программирования расширен и дополнен средствами, отражающими текущее положение дел в программировании. Отвечая потребностям возникшей интерактивной среды, Java предоставляет средства, упрощающие создание прикладных программ с распределенной архитектурой [5].
Java – язык программирования, который был разработан в компании SunMicrosystems Джеймсом Гослингом, Патриком Нотоном, Крисом Уортом, Эдом Фрэнком и Майком Шериданом. Первоначально он назывался Oak («дуб»), но в 1995 году, когда за его продвижение на рынке взялись маркетологи, и он был переименован в Java [5].
Приложения Java обычно компилируются в специальный байт-код, вследствие чего они имеют возможность работать на любой виртуальной Java-машине (JVM) независимо от самой компьютерной архитектуры. Дата официального выпуска языка 23 мая 1995 года. Сегодня технология Java предоставляет средства для превращения статических Web-страниц в интерактивные динамические документы, а также возможности создания распределенных (не зависящих от платформы) приложений.
Язык Java очень похож на языки Си и С++. От С язык Java унаследовал синтаксис, а от С++ – объектную модель. Сходство Java с языками Си и С++ играет важную роль. Во-первых, многие программисты знакомы с синтаксисом Си и С++, что упрощает изучение языка Java. Те же, кто освоил Java, могут без труда изучить Си и С++. Во-вторых, тем, кто программирует на Java, не приходится изобретать колесо. Они могут успешно применять уже известные и хорошо зарекомендовавшие себя подходы. Современная эпоха в программировании, по существу, началась с языка Си. Затем появился язык С++, а после него – Java. Имея такое богатое наследство, Java предоставляет программистам производительную и логически согласованную среду, в которой были реализованы лучшие из уже известных решений и добавлены новые средства, необходимые для интерактивной среды. Очень важно отметить тот факт, что вследствие своей схожести языки Си, С++ и Java сформировали концептуальную основу для профессионального программирования. При переходе от одного языка к другому программистам не приходится преодолевать глубокие "пропасти" принципиального характера. Один из принципов проектирования, заложенных в основу Си и С++, заключается в предоставлении программисту широчайших полномочий. Разработчики Java также следовали этому принципу. Если не учитывать ограничения, накладываемые средой Интернета, то следует признать, что Java предоставляет программисту полный контроль над кодом. Если вы умеете грамотно программировать, это будет видно по вашим программам. Недостаток опыта также отразится на ваших программах. Одним словом, Java – язык не для дилетантов, а для профессионалов [5].
Гослинг, в возрасте 40 с небольшим лет перешел в компанию Sun в 1984 г. из исследовательского отдела IBM. Первая его задача, проект, – интересный с технической точки зрения, но не имевший коммерческого успеха оконный интерфейс NeWS. Он также написал GOSMACS – первую реализацию текстового редактора EMACS на языке Си.
Беря во внимание произношение в русском языке, мы видим, что образовались две разные нормы данного языка – заимствованная англоязычная «Джава» и традиционно-национальная «Ява», которая соответствует принятому произношению названия острова Ява. Компания Sun придерживается первого варианта – англоязычного произношения везде. Иногда в обычной жизни применяют и жаргонное слово «Жаба» (например, изображение жабы есть на календариках группы российских пользователей Java (JavaUsersGroup) [7].
Java – это название не только самого языка, но и платформы для создания и исполнения приложений на основе данного языка [5].
Название было дано в честь марки кофе Java, который так любили некоторые программисты, поэтому на официальной эмблеме языка и изображена чашка с дымящимся кофе. Существует, конечно, и другая версия происхождения названия Java, а именно – Java – это сленговое обозначение кофе (по имени одноименного острова, где производится популярный кофе) с аллюзией на кофе-машину, как пример бытового устройства, для программирования чего и изначально язык создавался.
Гослинг не хотел связывать разработку с определенной платформой, поэтому он начал с расширения компилятора С++. Со временем пришло понимание, что как ни расширяй С++, все равно он не сможет никогда удовлетворить один все существующие потребности. Результатом этого понимания явилось создания языка Oak (в 1995 году, за его продвижение на рынке взялись маркетологи, и он был переименован в Java). В конце концов, язык – это средство, а не самоцель, – поясняет Гослинг. Мы не собирались зацикливаться на С++, а хотели разработать систему, которая позволяла бы создавать большую распределенную разнородную сеть из бытовых электронных устройств, способных взаимодействовать между собой [5].
Как это ни удивительно, на первых порах сами разработчики языка не ставили перед собой задач разработки интернет-приложений. Их целью было создание платформенно-независимого языка, на котором можно было бы писать встраиваемое программное обеспечение для различной бытовой аппаратуры с микропроцессорным управлением, в том числе тостеров, микроволновых печей и пультов дистанционного управления. Как правило, в устройствах подобного типа применялись контроллеры на базе микропроцессоров различной архитектуры, а исполняемый код, генерируемый компиляторами большинства существовавших в то время языков программирования, был ориентирован на определенные типы процессоров. Характерным тому примером может служить язык С++. Несмотря на то, что программу, написанную на С++, можно выполнить на процессоре практически любого типа, сделать это можно, лишь скомпилировав ее в исполняемый код команд конкретного процессора. Создание компиляторов – длительный и трудоемкий процесс, поэтому в поисках оптимального решения Гослинг и другие члены рабочей группы остановились на межплатформенном языке, для которого компилятор генерировал бы код, способный выполняться на разных процессорах в различных вычислительных средах. В конце концов их усилия увенчались созданием языка, известного теперь под названием Java. В то время как разработчики Java уточняли детали создаваемого ими языка, началось бурное развитие "Всемирной паутины", во многом определившей будущее Java. Если бы не формирование веб-сообщества, язык Java, вероятно, нашел бы лишь ограниченное применение, главным образом в разработке программ, встраиваемых в специализированные контроллеры. Но как только широкодоступный Интернет стал реальностью, появилась острая потребность в переносимых программах, что и послужило причиной для выдвижения Java на передний план в качестве основного языка разработки подобных программ [5].