Правила записи программы на языке Си 5 Правила формального описания синтаксиса языка программирования 6

Вид материалаЛекции

Содержание


1.Правила записи программы на языке Си
2.Правила формального описания синтаксиса языка программирования
3.Идентификаторы языка Си
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   28

1.Правила записи программы на языке Си


Как указывалось выше, программа перед обработкой компьютером должна быть помещена в файл на диске. Обычно этот файл имеет расширение <.c>.

Рассмотрим типичную структуру файла с программой на языке Си и правила его оформления на следующем простом примере:


/* Включить описания функций стандартного ввода-вывода */

#include


/* Включить описания математических функций */

#include


/* Другие включаемые файлы */

.

.

.

/* Собственно текст программы */


void main( void ) /* <-- заголовок главной функции */

{

float num; /* <-- описание типов данных */

/* Исполняемые операторы -* */

num = 2.345; /* Присвоим переменной num

значение 2.345 */

printf( " sin(%f) = %f\n", num, sin(num) ); /* Вывод на экран */

}


Любой файл начинается с директив #include, вставляющих в текст программы так называемые заголовочные файлы, которые содержат описания функций, используемых в этом файле. В нашем примере это описания стандартных функций ввода-вывода и математических функций .

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

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

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

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


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

// Это тоже комментарии.


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

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

2.Правила формального описания синтаксиса языка программирования


Под синтаксисом языка программирования понимают правила построения корректных конструкций данного языка. Синтаксис языка можно описать формально. Для этого удобно использовать расширенную форму Бэкуса-Наура (БНФ), которая состоит из ряда следующих обозначений и правил:
  • символы в кавычках переносятся в конструкцию языка так, как они записаны. Кавычки при этом отбрасываются. Например, "while" означает, что в конструкции языка присутствует while;
  • имена, записанные слитно русскими и латинскими буквами, обозначают различные конструкции языка. Например, оператор_цикла;
  • квадратные скобки охватывают элементы языка, которые могут повторяться 0 или 1 раз. Например, "AB"["C"] означает, что в конструкции языка может присутствовать или AB или ABC;
  • фигурные скобки охватывают элементы языка, которые могут повторяться 0 или много раз. Например, "AB" { "C" } означает, что в конструкции языка может присутствовать или AB, или ABC, или ABCC и т.д.;
  • символ | обозначает или, то есть используется для задания альтернативных значений, из списка элементов, разделенных знаком |. Например, "AB"|"C"|"ff" означает, что в конструкции языка может присутствовать или AB или C или ff;
  • круглые скобки используются для группировки. Например, "A"("B"|"C")"D" означает, что в конструкции языка может присутствовать или ABD или ACD;
  • многоточие используется для обозначения очевидных пропущенных значений в перечислении;
  • символ = обозначает - слово есть. Например, буква = "A"|"B"|"C".

В дальнейшем, синтаксис языка Си будет описываться либо с помощью примеров, либо с помощью расширенной формы Бэкуса-Наура. В последнем случае это будет помечаться аббревиатурой БНФ.

3.Идентификаторы языка Си


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

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

БНФ:

имя = ( буква | "_" ) { буква | цифра | "_" }


буква = |"A"|"B"|...|"Y"|"Z"|"a"|"b"|...|"y"|"z"

цифра = "0"|"1"|...|"9"


При этом прописные и строчные буквы считаются разными.

Длина имени в ANSI стандарте языка Си не ограничена. В Турбо Си имя не может быть длиннее 32 символов. Например: a, a1, _a, a_b.

Выбор имен должен производиться так, чтобы имя как можно точнее соответствовало смыслу объекта или действия, которое оно обозначает. Например: speed_of_body, SpeedOfBody, BodySpeed.

Экономия на длине имен - плохой стиль программирования.