. НОУ ИНТУИТ | Лекция | Состав языка и типы данных

НОУ ИНТУИТ | Лекция | Состав языка и типы данных

Единая точка входа в случайный, но релевантный информационный поток.

Состав языка и типы данных

Презентацию к данной лекции Вы можете скачать здесь.

Язык программирования можно уподобить примитивному иностранному языку с жесткими правилами без исключений. Изучение иностранного языка обычно начинают с алфавита, затем переходят к словам и законам построения фраз, и только в результате длительной практики и накопления словарного запаса появляется возможность свободно выражать на этом языке свои мысли. Примерно так же поступим и мы при изучении языка C#.

Алфавит и лексемы

Все тексты на языке пишутся с помощью его алфавита. В C# используется кодировка символов Unicode. Кодировкой, или кодовой таблицей (character set), называется соответствие между символами и кодирующими их числами. Кодировка Unicode позволяет представить символы всех существующих алфавитов одновременно. Каждому символу соответствует свой уникальный код.

Алфавит C# включает:

Из символов составляются более крупные строительные блоки: лексемы, директивы препроцессора и комментарии.

Лексема (token) — это минимальная единица языка, имеющая самостоятельный смысл. Существуют следующие виды лексем:

Лексемы языка программирования аналогичны словам естественного языка. Например, лексемами являются число 128 (но не его часть 12), имя Vasia , ключевое слово goto и знак операции сложения + . Далее мы рассмотрим лексемы подробнее.

Директивы препроцессора пришли в C# из его предшественника — языка С++. Препроцессором называется предварительная стадия компиляции, на которой формируется окончательный вид исходного текста программы. Например, с помощью директив (инструкций, команд) препроцессора можно включить или выключить из процесса компиляции фрагменты кода. Директивы препроцессора не играют в C# такой важной роли, как в С++.

Комментарии предназначены для записи пояснений к программе и формирования документации. Правила записи комментариев мы рассмотрим чуть позже.

Из лексем составляются выражения и операторы. Выражение задает правило вычисления некоторого значения. Например, выражение a + b задает правило вычисления суммы двух величин.

Оператор задает законченное описание некоторого действия, данных или элемента программы. Например:

Это — оператор описания целочисленной переменной a .

Идентификаторы

Имена, или идентификаторы, служат для того чтобы обращаться к программным объектам и различать их, то есть идентифицировать. В идентификаторе могут использоваться буквы, цифры и символ подчеркивания. Прописные и строчные буквы различаются, например, hacker , Hacker и hAcKeR — три разных имени.

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

В идентификаторах C# разрешается использовать, помимо латинских букв, буквы национальных алфавитов. Например, правильными являются идентификаторы Фёкла и calc . Более того, можно применять даже так называемые escape-последовательности Unicode, то есть представлять символ с помощью его кода в шестнадцатеричном виде с префиксом \u , например, \u00F2 .

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

Имена даются элементам программы, к которым требуется обращаться: переменным, типам, константам, методам, меткам и т. д. Идентификатор создается на этапе объявления переменной (метода, типа и т. п.), после этого его можно использовать в последующих операторах программы. При выборе идентификатора необходимо следить, чтобы он не совпадал с ключевыми словами.

Ключевые слова

Ключевые слова — это зарезервированные идентификаторы, которые имеют специальное значение для компилятора. Их можно использовать только в том смысле, в котором они определены. Список ключевых слов C# приведен в таблице 2.1. Как видите, их не так уж и много!

Таблица 2.1. Ключевые слова C# abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual void volatile while Знаки операций и разделители

Знак операции — это один или более символов, определяющих действие над операндами. Внутри знака операции пробелы не допускаются. Например, в выражении a += b знак += является знаком операции, а a и b — операндами. Символы, составляющие знак операций, могут быть специальными, например, + , && , | и < , и буквенными, такими как as или new .

Операции делятся на унарные, бинарные и тернарную по количеству участвующих в них операндов (один, два и три операнда соответственно). Один и тот же знак может интерпретироваться по-разному в зависимости от контекста.

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

Литералы (константы)

Литералами, или константами, называют неизменяемые величины. В C# есть логические, целые, вещественные, символьные и строковые константы, а также константа null . Компилятор, выделив константу в качестве лексемы, относит ее к одному из типов данных по ее внешнему виду. Программист может задать тип константы и самостоятельно.

Описание и примеры констант каждого типа приведены в таблице 2.2. Примеры, иллюстрирующие наиболее часто употребляемые формы констант, выделены полужирным шрифтом.

Логических литералов всего два: true и false . Они широко используются в качестве признаков наличия или отсутствия чего-либо.

Целые литералы могут быть представлены либо в десятичной, либо в шестнадцатеричной системе счисления, а вещественные — только в десятичной системе, но в двух формах: с фиксированной точкой и с порядком. Вещественная константа с порядком представляется в виде мантиссы и порядка. Мантисса записывается слева от знака экспоненты ( E или e ), порядок — справа от знака. Значение константы определяется как произведение мантиссы и возведенного в указанную в порядке степень числа 10 (например, 1.3e2 = 1,3 x 10 2 = 130). Пробелы внутри константы не допускаются.

Если требуется сформировать отрицательную целую или вещественную константу, то перед ней ставится знак унарной операции изменения знака ( – ), например, –218.

Символьная константа представляет собой любой символ в кодировке Unicode. Символьные константы записываются в одной из четырех форм:

Управляющей последовательностью, или простой escape-последовательностью, называют определенный символ, предваряемый обратной косой чертой. Управляющая последовательность интерпретируется как одиночный символ и используется для представления:

Допустимые значения последовательностей приведены в таблице 2.3.

Таблица 2.3. Управляющие последовательности в С# Вид Наименование \a Звуковой сигнал \b Возврат на шаг \f Перевод страницы (формата) \n Перевод строки \r Возврат каретки \t Горизонтальная табуляция \v Вертикальная табуляция \\ Обратная косая черта \' Апостроф \" Кавычка \0 Нуль-символ

Символ, представленный в виде шестнадцатеричного кода, начинается с префикса \x , за которым следует код символа. Числовое значение должно находиться в диапазоне от 0 до 2 16 – 1, иначе возникает ошибка компиляции.

Escape-последовательности Unicode служат для представления символа в кодировке Unicode с помощью его кода в шестнадцатеричном виде с префиксом \u или \U , например, \u00F2 , \U00010011 . Коды в диапазоне от \U10000 до \U10FFFF представляются в виде двух последовательных символов; коды, превышающие \U10FFFF , не поддерживаются.

Управляющие последовательности обоих видов могут использоваться и в строковых константах, называемых иначе строковыми литералами. Например, если требуется вывести несколько строк, можно объединить их в один литерал, отделив одну строку от другой символами \n :

Этот литерал при выводе будет выглядеть так:

В C# есть и второй вид литералов — дословные (verbatim strings). Эти литералы предваряются символом @ , который отключает обработку управляющих последовательностей и позволяет получать строки в том виде, в котором они записаны. Чаще всего дословные литералы применяются при задании полного пути файла. Посмотрите, насколько лучше воспринимается второй вариант записи одного и того же пути:

Строка может быть пустой (записывается парой смежных двойных кавычек "" ). Пустая символьная константа недопустима.

Константа null представляет собой значение, задаваемое по умолчанию для величин так называемых ссылочных типов, которые мы рассмотрим далее в этой лекции.

Комментарии

Комментарии предназначены для записи пояснений к программе и формирования документации. Компилятор комментарии игнорирует. Внутри комментария можно использовать любые символы. В C# есть два вида комментариев: однострочные и многострочные.

Однострочный комментарий начинается с двух символов прямой косой черты ( // ) и заканчивается символом перехода на новую строку, многострочный заключается между символами-скобками /* и */ и может занимать часть строки, целую строку или несколько строк. Комментарии не вкладываются друг в друга.

Кроме того, в языке есть еще одна разновидность комментариев, которые начинаются с трех подряд идущих символов косой черты ( /// ). Они предназначены для формирования документации к программе в формате XML. Компилятор извлекает эти комментарии из программы, проверяет их соответствие правилам и записывает их в отдельный файл.

📎📎📎📎📎📎📎📎📎📎

О платформе

Ресурс не связан с какой-либо тематикой. Он создан как автоматический инфо-агрегатор, собирающий данные из открытых источников. Мы не фильтруем, не правим и не проверяем публикации вручную.

Навигационные модули

Общее

Нейтральный контент, подходящий под разные запросы. Подборки без тематической привязки.

Разное

Неочевидные и случайные темы, собранные алгоритмом из публичных источников.

Региональные включения

Иногда контент касается локальных событий или упоминает регионы РФ и ближнего зарубежья.

Контакты

📍 г. Тверь, ул. Новая, д. 11, офис 405

☎ +7 (4822) 68-44-21

📧 info@site.ru

🕓 Время поддержки: с 10:00 до 20:00 без выходных

Условия использования

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

Мы не создаём контент, а только агрегируем из открытых публичных источников. Сайт не имеет статуса СМИ и не подлежит лицензированию.

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

Размер шрифта: