40128

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

Доклад

Менеджмент, консалтинг и предпринимательство

При первом способе его началом является пара символов а окончанием последний символ строки: Это комментарий При втором способе его началом является пара символов а окончанием пара символов: Еще один пример комментария В C различают три группы типов данных: фундаментальные типы встроенные типы и типы определяемые пользователем. Фундаментальные типы делятся на...

Русский

2015-01-17

66 KB

0 чел.

Языки программирования делятся на 3 группы:

  1.  Машинные языки – исходный текст программы состоит из машинных кодов, которые непосредственно могут исполнятся на ЭВМ.
  2.  Машинно-ориентированные языки – исходный текст программы состоит из условных обозначений команд микропроцессора.
  3.  Алгоритмические языки (языки высокого уровня) – исходный текст программы состоит из инструкций, удобных для восприятия человеком и при этом четко формализованных.

Для записи текста программы на C++ используется алфавит языка. Алфавит состоит из следующих символов:

1.   Буквы:

_  а...z A...Z

2.   Цифры:

0...9

3.   Специальные символы:

‘ “ + - * / \ % = > < # | & ^ ~ ! ? . , : ; () [] {}

4.   Пробел, символ табуляции, перевод строки (переход на новую строку).

Заглавные и строчные буквы в C++ различаются.

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

Минимальной единицей языка, обладающей определенным смыслом, является лексема.

Лексема - это последовательность из одного или нескольких символов. Лексемы делятся на следующие группы: идентификаторы, литералы, операторы, разделители, ключевые слова, комментарии и директивы препроцессора.

Идентификатор (или просто имя) - это имя переменной, константы, функции, типа, синоним типа, имя метки или имя константы типа перечисления (enum).

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

Эта часть называется областью видимости идентификатора.

Некоторые правила именования идентификаторов:

1.   Идентификатор начинается с буквы и может содержать буквы и цифры (знак подчеркивания считается буквой).

2.   Ограничения на длину имени не накладываются, но конкретная реализация может различать лишь конечное число его начальных символов (в Visual C++ компилятор различает только первые 31 символ).

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

4.   Идентификаторы с малой областью видимости должны быть короткими, а с большой - по возможности подробными. Для разделения слов в имени удобно пользоваться знаком подчеркивания.

5.   Стилистическое соглашение между программистами: в начале имени добавляется сокращенное обозначение типа данных (i - int, d - double, p - указатель, sz -С-строка и т.д.).

6.   В именах макросов лучше использовать только заглавные буквы.

Примеры идентификаторов:

hello DEFINED varO long name bAr BAR class MyVariable foO

Примеры лексем, которые нельзя использовать в качестве идентификаторов:

012 $sys if .name pay.due

n+m A1&A2 Not_Done!

Некоторые идентификаторы являются стандартными, например, имя главной функции программы (main).

Литерал - это изображение конкретного значения одного из арифметических типов, либо типа С-строки.

Различают литералы: логические, символьные, целые, с плавающей точкой и строковые.

Примеры литералов:

true

а

12345

543.21

"Простая  строка   на   C++!"

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

Операторы бывают унарные и бинарные. Унарные операторы бывают префиксные и постфиксные (суффиксные).

Важные особенности C++, позволяющие строить гибкие и эффективные выражения:

1.   Поддерживается очень много различных операторов.

2.   Действие присваивания реализовано в виде оператора =.

3.   Для пользовательских типов данных возможно определение своих операций.

Примеры выражений на C++:

а += 5 + (b = с % 2)

а = ((b < с) ? (d = е) : (f = g))

р = &(х++)

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

Прежде всего, к разделителям относятся: пробел, символ табуляции и перевод строки.

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

Символ «точка с запятой» (;) является специальным разделителем в инструкциях (он часто неофициально называется пустой инструкцией или пустым оператором - это неверно).

При описании конкретных конструкций языка указано, какие в них используются разделители и в каких местах.

Комментарий - это произвольный текст, поясняющий работу участков программы и не влияющий на ее выполнение.

В C++ комментарий включается в программу двумя способами.

При первом способе его началом является пара символов «//», а окончанием последний символ строки:

// Это комментарий!

При втором способе его началом является пара символов «/*», а окончанием - пара символов «*/»:

/*  Еще один пример

комментария!      */

В C++ различают три группы типов данных: фундаментальные типы, встроенные типы и типы, определяемые пользователем.

Фундаментальные типы делятся на:

1. Логический тип (bool).

2. Символьные типы (char, wchar_t).

3. Целочисленные (целые) типы (например, тип int).

4. Типы с плавающей точкой (например, double).

5. Тип void - используется для указания на отсутствие информации.

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

Интегральные типы вместе с вещественными типами с плавающей точкой называются арифметическими, и к ним применимы все арифметические операции и обычные (непобитовые) логические операции (операции сравнения, операции: «И», «ИЛИ», «НЕ»).

Встроенные типы делятся на:

1. Типы указателей (например, int *).

2. Типы ссылок (например, double &).

3. Типы массивов (используются квадратные скобки: []).

4. Типы функций (используются круглые скобки: ()).

Типы, определяемые пользователем, делятся на:

1. Типы перечислений (enum) - используются для представления значений из конкретного множества.

2. Типы структур и классы (struct, union, class).

Класс можно называть обобщением типа структуры.

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

Размер результата вычисления выражения или размер объекта определенного типа в байтах можно получить при помощи оператора sizeof следующим образом: sizeof expr. Здесь expr- выражение.

Размер самого типа можно получить при помощи оператора sizeof следующим образом: sizeof (type). Здесь type - имя типа или то же, что и expr.

Характеристики типов, зависящие от реализации можно также получить, используя заголовочный файл <limits>.

В C++ крайне важно различать понятия «объявление» и «определение». Прежде чем использовать идентификатор в программе, его следует объявить. Объявить - означает: связать имя с некоторым типом. Примеры объявлений:

// Объявления, являющиеся определениями.

char sym;

const double pi = 3.1415926535897932385;

const char *season[] = {"весна", "лето", "осень", "зима"};

struct Date {int d, m, y;};

int day(Date *p) { return p->d; }

typedef complex<short> Point;

enum Beer {Carlsberg, Tuborg, Thor};

namespace NS { int a; } // Определение пространства имен.

// Чистые объявления - не являются определениями,

double sqrt(double);

extern int error_number;

Из примеров видно, что объявления могут делать нечто большее, чем просто связывание имени с типом. Большинство объявлений являются одновременно и определениями, т. е. они определяют некоторую сущность, которая соответствует имени.

Например, для sym - это выделение областей памяти определенных размеров, для pi - это размещение в памяти определенного константного значения, для Date - это определение нового типа, для day - это определение тела функции и т. д.

Из приведенных объявлений определениями не являются: sqrt и error_number. Эти объявления являются чистыми объявлениями (другие названия - прототипы, сигнатуры, интерфейсы).

Сущности, на которые ссылаются данные имена, должны быть определены где-то в другом месте. Тело функции sqrt должно быть задано каким-то другим объявлением, и память для целой переменной error_number должна быть выделена некоторым другим объявлением.

Например:

double sqrt(double d) { /* Тело функции */ };

int error_number = 1;


 

А также другие работы, которые могут Вас заинтересовать

25804. Характеристика проводникового и коркового отделов слухового анализатора. Их значение 14.92 KB
  Проводниковый отдел слуховой сенсорной системы состоит из 4 нейронов: 1ый нейрон расположен в спиральном узле улитки. Аксоны центральные отростки образуют слуховой нерв. Слуховой путь как и зрительный является частичноперекрещенным. При поражении слуховой коры с одной стороны снижение слуха наблюдается с двух сторон причём с большим поражением противоположного уха.
25805. Заболевания глотки. Аномалии развития 16.05 KB
  Аномалии развития. Аномалии развития глотки встречаются в виде расщепления укорочения или отсутствия мягкого неба и язычка; эти дефекты нередко сочетаются с врожденными расщелинами твердого неба. Аномалии глотки могут возникать по различным причинам: в результате наследственных факторов эндогенного влияния на эмбрион заболеваний родителей алкоголизм сифилис туберкулез малярия краснуха отравления эмриотоксическими элементами олово свинец мышьяк ртуть и др. Классификация аномалий глотки Атрезия и стенозы носоглотки Недоразвитие...
25806. Рубцовые деформации глотки 13.87 KB
  Рубцовые деформации глотки. Рубцовые деформации глотки. При некоторых тяжелых инфекционных заболеваниях скарлатина дифтерия наблюдаются глубокие поражения слизистой оболочки глотки с омертвением отдельных ее участков и последующим развитием рубцовой ткани. В других случаях рубцы притягивают остатки мягкого неба и дужек к задней стенке глотки; происходит полное или частичное сращение мягкого неба с задней стенкой глотки в результате чего полость рта и ротоглотка полностью или почти полностью разобщаются с носоглоткой.
25807. Ангина и хронический тонзиллит 15.22 KB
  Ангина и хронический тонзиллит. Различают острый тонзиллит ангина и хронический. Ангина остро возникающее патологическое состояние для которого характерно воспаление лимфоидных образований окологлоточного кольца ПироговаВальдейра чаще всего нёбных миндалин. Катаральная ангина имеет острое начало.
25808. Гипертрофия глоточной и небных миндалин. Аденоиды. Нарушение голоса и речи при аденоидах 16.81 KB
  Нарушение голоса и речи при аденоидах. Основными признаками аденоидов являются: нарушение носового дыхания постоянные серозные выделения из носа нарушение функции слуховых труб частые воспаления как в носоглотке так и в полости носа.
25809. Фиброма носоглотки. Паралич мягкого неба 14.89 KB
  Паралич мягкого неба. Паралич мягкого неба. У детей нередко наблюдается паралич мягкого неба. Чаще всего такой паралич возникает при дифтерии.
25810. Заболевания гортани. Аномалии развития. Инородные тела гортани 16.5 KB
  Заболевания гортани. Инородные тела гортани. В некоторых случаях наблюдается врожденная диафрагма гортани тонкая перепонка между истинными голосовыми связками или под ними оставляющая небольшой просвет через который проходит воздух. Острое воспаление слизистой оболочки гортани острый ларингит развивается чаще всего как часть разлитого поражения слизистой верхних дыхательных путей при гриппе или сезонном катаре верхних дыхательных путей.
25811. Острый и хронический ларингит 15.39 KB
  Острый и хронический ларингит Острый ларингит. Острое воспаление слизистой оболочки гортани или острый ларингит развивается чаще всего как часть разлитого поражения слизистой оболочки дыхательных путей при гриппе и так называемом сезонном катаре верхних дыхательных путей. Острый ларингит длится недолго и при правильном лечении проходит в течение 7 10 суток. При остром ларингите нередко возникает припухание слизистой оболочки гортани под истинными голосовыми связками подсвязочный ларингит.
25812. Узелки голосовых складок 13.99 KB
  Узелки голосовых складок Узелки голосовых складок связок доброкачественные разрастания образующиеся вследствие постоянной перегрузки голосовых складок. Отмечено что чаще всего узелки голосовых складок появляются у женщин в возрасте 20 50 лет. Перегрузка голосовых складок приводит к формированию на них небольших уплотнений. Обычно узелки на голосовых складках расположены симметрично.