- •Язык с.
- •Идентификаторы
- •Ключевые слова
- •Список ключевых слов
- •Знаки операций
- •Приоритеты операций
- •Константы
- •Разделители
- •Структура программы на языке Си
- •Типы данных.
- •Арифметические выражения.
- •Математические функции (библиотека math.H)
- •Операторы
- •Оператор присваивания
- •Некоторые арифметические операции.
- •Явное преобразование типов
Язык с.
Деннис Ритчи создал язык С в 1972 году, когда он разрабатывал операционную систему Unix, в которой и для которой этот язык разрабатывался.
Язык С считается языком высокого уровня. Он используется как для создания системных программ (компиляторы, операционные системы, драйверы, микроконтроллеры), так и для прикладных программ в разных областях. Но при этом язык не привязан ни к одной определенной системе и аппаратной платформе.
В настоящее время известно множество реализаций языка С. Чтобы одна и та же программа могла работать на машинах различной аппаратной конфигурации, различные реализации должны соответствовать одному стандарту. Американский национальный институт стандартов (ANSI) разработал и в 1989 году принял стандарт ANSI С89, который поддерживается современными компиляторами.
Достоинства:
Конструкции языка подходят для нисходящего, структурного и модульного программирования.
Компактность программы (экономия памяти) и высокая скорость исполнения (использование команд ассемблера).
Переносимость на другие компьютеры различных архитектур, от 8-разрядных микропроцессоров до суперкомпьютеров
Недостатки:
Использование указателей может привести к трудноотыскиваемым ошибкам.
Запутанность кода из –за большого количества операций.
В 1994 году объединенный комитет ANSI/ ISO (международная организация по стандартизации– International Organization for Standardization ISO)
выпустил стандарт С99.
Цель:
Создание способов работы с наборами интернациональных символов.
Возможность переноса программ на 64-разрядные процессоры.
Повышение вычислительной полезности для научно-технических задач, как альтернатива языку Фортран.
Не все компиляторы реализуют данные изменения сейчас. Или необходимо изменить настройки компилятора.
В 2007 - С11.
Синтаксис и семантика языка программирования
Алгоритмический язык – формализованный язык для однозначной записи алгоритмов, состоящий из набора допустимых символов (алфавита), синтаксических правил и семантических определений.
Алфавит – совокупность допустимых символов, используемых в языке программирования:
прописные и строчные буквы латинского алфавита (A…Z, a…z);
цифры (0…9);
знаки арифметических операций +,-,*,/,%;
вспомогательные символы (), ., ,, ;.:,[], {}, <,>, =,_,$,&,….
Составные символы <=,>=,==,!=,\n,\t… &&.
Каждая программа определяется правилами ее представления (синтаксисом) и правилами интерпретации ее содержательного значения (семантикой
Синтаксис (от греческого – syntaxic – построение, порядок) – набор правил, по которым из алфавита строятся отдельные слова и предложения.
Семантика – правила интерпретации различных языковых конструкций.
Идентификаторы
Идентификатор — это имя программного объекта. В идентификаторе могут использоваться латинские буквы, цифры и знак подчеркивания. Прописные и строчные буквы различаются, например, s и S — два различных имени. Первым символом идентификатора может быть буква или знак подчеркивания, но не цифра. Пробелы внутри имен не допускаются.
Длина идентификатора по стандарту не ограничена, но некоторые компиляторы и компоновщики налагают на нее ограничения. Идентификатор создается на этапе объявления переменной, функции, типа и т. п., после этого его можно использовать в последующих операторах программы.
При выборе идентификатора необходимо иметь в виду следующее:
идентификатор не должен совпадать с ключевыми словами и именами используемых стандартных объектов языка;
не рекомендуется начинать идентификаторы с символа подчеркивания, поскольку они могут совпасть с именами системных функций или переменных, и, кроме того, это снижает мобильность программы;
на идентификаторы, используемые для определения внешних переменных, налагаются ограничения компоновщика (использование различных компоновщиков или версий компоновщика накладывает разные требования на имена внешних переменных).
