Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теор. мат. к 1 практ.р._Си.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
193.02 Кб
Скачать

11

Язык с.

Деннис Ритчи создал язык С в 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 — два различных имени. Первым символом идентификатора может быть буква или знак подчеркивания, но не цифра. Пробелы внутри имен не допускаются.

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

При выборе идентификатора необходимо иметь в виду следующее:

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

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

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