22336

Язык Си: историческая справка, общая характеристика, основные достоинства. Подготовка к выполнению и выполнение программ в операционной среде MS DOS. Элементы языка Си: множество символов, ключевые слова, константы и переменные, операции и операторы

Лекция

Информатика, кибернетика и программирование

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

Русский

2013-08-04

35.5 KB

1 чел.

ЛЕКЦИЯ 1

Язык Си: историческая справка, общая характеристика,  основные достоинства. Подготовка к выполнению и выполнение программ в операционной среде  MS DOS. Элементы языка Си:  множество  символов, ключевые слова, константы и переменные, операции и операторы,  управляющие  конструкции. Примеры простейших программ: разбор элементов языка.

$ 1. ЯЗЫК СИ: ОБЩАЯ ХАРАКТЕРИСТИКА, ИСТОРИЧЕСКАЯ СПРАВКА

И ОСНОВНЫЕ ДОСТОИНСТВА

Язык Си является языком программирования общего назначения. Появление его тесно связано с созданием операционной системы UNIX, ибо  он  разрабатывался  специально  для  этой  системы и на нем написана  большая часть системного программного обеспечения UNIXа. Однако язык  Си не ориентирован на работу только лишь в одной операционной системе или на какой-либо конкретной машине. Он представляет  собой  универсальный, машиннонезависимый, легко переносимый язык программирования, в равной степени подходящий как для системного программирования, так  и  для  решения  задач вычислительной математики, технических и коммерческих приложений.  Язык Си - это алгоритмический язык "не очень высокого  уровня". Приведенная  характеристика означает, что он дает возможность работы  с такими типами объектов и позволяет выполнять такие операции, которые традиционно  относят  к  машинноориентированным  языкам  "низкого  уровня", подобным языку ассемблера. Примером упомянутых объектов могут служить символы, числа (со знаком и без), адреса оперативной памяти  и указатели, битовые цепочки и т.д., над которыми можно проделывать арифметические, логические и поразрядные операции.  В  то  же   время, Си не обеспечивает возможности работы со строками, множествами, массивами или списками как с единым целым.  В  языке  Си  имеется большой набор управляющих конструкций для  реализации циклических  и  разветвленных  алгоритмов,  средства  для  блочного  и модульного программирования, а также возможность гибкого  управления процессом выполнения программы. Все это позволяет охарактеризовать Си как язык структурного программирования. Однако сам по себе язык Си не обеспечивает возможности управления вводом/ выводом и в нем нет операторов, подобных операторам READ  и WRITE в FORTRANе. Все же действие по обмену информацией с  периферийными устройствами выполняются при помощи явным образом вызываемых  внешних функций, входящих в состав стандартных библиотек.          Появление Си принято связывать с именем Мартина Ритчи, подготовившего  в 1972 году первую версию этого языка в ходе работ над операционной системой UNIX для ЭВМ семейства  PDP.  Однако  исторически   его  возникновение  следует  связывать с, во многом машиннозависимым,   языком B, созданным Кеном Томпсоном на основе языка BCPL. В  настоящее  время  из 13000 строк системного кода UNIXа лишь 800 строк,

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

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

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

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

         - наличие средств для  конструирование  новых  агрегатированных  типов данных;

         - возможность  непосредственной работы с машинными адресами через аппарат указателей;

         - наличие препроцессора, позволяющего вносить изменение в текст  программы непосредственно перед ее компиляцией;

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

$ 2. ПОДГОТОВКА К ВЫПОЛНЕНИЮ И ВЫПОЛНЕНИЕ ПРОГРАММ

В ОПЕРАЦИОННОЙ СИСТЕМЕ MS DOS

Язык Си относится к числу компилируемых  языков  программирования. Это означает, что подготовка к выполнению Си-программы включает  в себя следующие этапы:

         - ввод исходного текста программы в файл при помощи какого-либо   редактора текстов (имя файла, как правило, имеет стандартное  расширение "C");

         - компиляция  программы,  т.е.  преобразование  ее  описания на  входном языке в семантический эквивалент на машинном языке, называемый объектным модулем (имя файла, в  который  помещается  результат   компиляции, обычно имеет расширение "OBJ");

построение  готового  к  выполнению  загрузочного  модуля  из  объектных модулей, включая модули из внешних библиотек (файл, содержащий готовую программу, имеет имя с расширением "EXE").   В  процессе компиляции программы создается листинг ее исходного  текста, содержащий, возможно, сообщения об обнаруженных ошибках.

Наличие листинга существенно упрощает поиск и устранение ошибок, допущенных при подготовке программы, и сокращает время, затрачиваемое на  ее отладку. Имя файла, в который записывается листинг исходной программы, снабжается обычно расширением "LST".  На этапе построения загрузочного модуля также возможно создание  файла-листинга, включающего в себя информацию о размещении  собираемых  объектных модулей в памяти ЭВМ. Однако его анализ и использование требует более глубоких знаний основных принципов работы  машины,  нежели разбор листинга исходной программы.  Для  запуска в работу готовой к выполнению программы в операционной среде MS DOS достаточно набрать имя содержащего  ее  файла  на  клавиатуре консольного  терминала,  закончив  ввод нажатием клавиши  Enter.

$ 3. ЭЛЕМЕНТЫ ЯЗЫКА СИ

В этом параграфе в сжатой форме приводятся основные сведения  о  структурных элементах языка Си и обсуждаются общие вопросы организации программы.

3.1. Алфавит

3.1.1. Буквы и цифры

- большие буквы латинского алфавита

A B C D E F G H I J K L M

 N O P Q R S T U V W X Y Z

- малые буквы латинского алфавита

a b c d e f g h i j k l m

                        n o p q r s t u v w x y z

- десятичные цифры

0 1 2 3 4 5 6 7 8 9

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

пробел  !  "  #  %  &  '  (  )  *  +  ,  -  .

/  :  ;  <  =  >  ?  [  \  ]  ^  _  {  |  }  ~

3.2. Имена объектов программы (идентификаторы)

Идентификаторами  в языке Си являются последовательности букв и  цифр, начинающиеся с буквы, причем символ подчеркивания (_) рассматривается компилятором как буква. Большие и малые буквы латинского  алфавита  считаются  различными.  Длина идентификатора формально может  быть произвольной, однако только лишь первые 31 символ являются значимыми для компилятора IBM C/2. В программах на языке Си идентификаторы служат именами переменных, символических констант, функций, типов данных и меток. Общепринято  для  именования констант использовать большие буквы латинского  алфавита, сохраняя малые буквы для обозначения переменных и функций.

Замечание. Не рекомендуется в прикладных  программах  использовать  идентификаторы,  начинающиеся с подчеркивания, ибо в среде IBM C/2 это может привести к конфликту с именами создаваемых  компилятором служебных переменных или констант.

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

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

- типы данных

               char       float     short      typedef      void

               double     int       signed     union

               enum       long      struct     unsigned

- классы памяти

              auto     extern     register     static

- операторы

               break        default     for      return    while

               case         do          goto     sizeof

               continue     else        if       switch

- специальные

              const     far         huge     pascal

              cdecl     fortran     near     volatile

3.4. Комментарии

Под комментариями понимаются последовательности символов, игнорируемые компилятором. Комментарии имеют следующую форму:

                             /* Characters */

где  Characters есть произвольная комбинация любых печатаемых символов ASCII.

3.5. Константы

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

3.6. Операции и выражения

Под  операциями следует понимать действия, выполняемые программой над определенными в ней объектами. Для обозначения операций  используются  некоторые стандартные комбинации специальных символов из  алфавита языка. Объекты программы, участвующие в операции, называются операндами. Всякая комбинация одного или большего числа операндов и символов операций, дающая единственное значение, образует  выражение.  Любое  выражение,  заканчивающееся  точкой с запятой, является   оператором (см. п. 3.7.).   Множество всех операций языка Си  удобно  разделить  на  восемь  следующих групп:

- арифметические операции

+  -  *  /  %  ++  --

- операции отношения

==  !=  <  >  <=  >=

- логические операции

!  ||  &&

- побитовые операции

~  <<  >>  &  |  ^

- операции присваивания

=  +=  -=  *=  /=  %=  <<=  >>=  &=  ^=  |=

- операции над массивами

 []

- операции над структурами и объединениями

->

- другие операции

  ? :  ,  syzeof  (type specifier)  ()

3.7. Операторы

Простейшим оператором языка Си является всякое  выражение,  заканчивающееся  точкой с запятой (см. п. 3.6.). В частности, отдельно  стоящая точка с запятой интерпретируется компилятором как  нуль-оператор. Наиболее  значительную  группу  операторов  образуют инструкции  (операторы) управления процессом выполнения программы. К  ним  относятся:

- операторы цикла

for (<init-expression>; <cond-expression>;

                                                      <loop-expression>)

statement

while (expression)

                 statement

              do

                 statement

              while (expression);

- условный оператор и переключатель

              if (expression)

                 statement1

              <else

                 statement2>

              switch (expression)

              { <case  const-expression: <statements>>

                 .                                 .

                 .                                 .

                 .                                 .

                <default: <statements>>

                 .                                 .

                 .                                 .

                 .                                 .

                <case  const-expression: <statements>> }

- операторы передачи управления

              goto     break     continue     return

Здесь  expression  есть произвольное правильное выражение языка  Си (см. Лекцию 2), а через statement обозначен простой или составной     (см. ниже) оператор, каковым, в частности, может быть и любой оператор управления. Последнее означает, что допустимым является вложение  операторов управления друг в друга. Элементы конструкций языка, заключенные в угловые скобки (<>), не являются  обязательными  и  могут  быть опущены. Один  или  несколько операторов, заключенных в фигурные скобки,  образуют составной оператор или блок. Точка с запятой после закрывающей скобки при этом не ставится.

3.8. Описания

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

3.9. Общая структура программы

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

main().


 

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

7134. Логика и теория аргументации 4.26 MB
  Логика и теория аргументации Введение Трудно переоценить значение логики и теории аргументации не только в развитии научного знания, но и в обыденной жизни. Для науки существенным моментом являются эффективные способы обработки информации и методы и...
7135. Бухгалтерский учет на малых предприятиях 186.5 KB
  Введение Предприятия малого бизнеса являются важнейшей составной частью обширного комплекса всех предприятий Российской Федерации. С принятием Гражданского кодекса Российской Федерации, законов о земле, о предприятиях с разной формой собственности п...
7136. Логический синтез цифровых устройств 905.5 KB
  Курсовая работа Логический синтез цифровых устройств Описание работы проектируемого устройства. Объект представляет собой техническое устройство, в которое поступают различные детали. Имеется 5 датчиков, которые определяют соответствие д...
7137. Важность мотивации для успешного развития компании 191 KB
  Введение. Основы мотивационной деятельности. Основы и сущность мотивации и стимулирование трудовой деятельности персонала. Смысл и эволюция мотивации. Содержательные теории мотивации. Мотивация персонала в организациях ...
7138. Понятие вины в уголовном праве 198.5 KB
  Понятие вины в уголовном праве Введение Состав преступления характеризуется совокупностью четырех элементов: объект, объективная сторона, субъект, субъективная сторона. Каждый из этих элементов является для любого состава обязательным. Отсутствие лю...
7139. Курортное оздоровление детей и подростков на российских и зарубежных курортах 218 KB
  Курортное оздоровление детей и подростков на российских и зарубежных курортах Введение Здоровье населения - один из важнейших элементов социального, культурного и экономического развития нашей страны. Именно поэтому Правительство Российской Федераци...
7141. Математическое описание двигателя постоянного тока независимого возбуждения 4.27 MB
  Содержание Математическое описание двигателя постоянного тока независимого возбуждения. Расчет параметров двигателя. Расчет контура тока. Расчет контура скорости...
7142. Экономическая эффективность использования основных производственных фондов 607.8 KB
  Экономическая эффективность использования основныхпроизводственных фондов Введение Животноводство является важной отраслью сельского хозяйства,дающей более половины его валовой продукции.Значение этой отрасли определяется не только...