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().


 

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

57608. Возникновение Запорожской Сечи 120 KB
  Уметь доказать что казачество явление мировой истории. Воспитать в себе чувство гордости за свой народ породивший такую силу как казачество. Казачество как явление мировой истории. Домашнее задание: Подобрать материал доказывающий что казачество мировое явление.
57609. Передумови та початок національно-визвольної війни українського народу в середині XVII ст 288 KB
  Мета: з’ясувати передумови причини та характер війни; розкрити роль Богдана Хмельницького в підготовці та початку національновизвольної війни; розвивати вміння учнів аналізувати історичні джерела працювати над вивченням історичних подій за алгоритмом працювати самостійно з довідковою літературою...
57610. Війна радянської Росії з УНР і проголошення незалежності Української Народної Республіки 40 KB
  Очикувані результати: після уроку учні аналізуватимуть події кінця 1917 – початку 1918 рр.; дізнаються про плани більшовиків щодо долі України; за допомогою історичної карти зможуть відтворити хід першої ра дянсько–української війни...
57611. Історія як навчальний предмет і наука 569 KB
  Мета: створити початкове уявлення про історію як навчальний предмет і науку; зацікавити новим навчальним предметом; ознайомити школярів з видатними вченимиісторіками України...
57612. Україна в роки правління гетьмана Івана Виговського 76 KB
  Хмельницького визначити основні засади внутрішньої і зовнішньої політики гетьмана Івана Виговського; розвивати в учнів уміння працювати з картою аналізувати текстові та візуальні історичні джерела і на основі їх робити певні висновки...
57613. Велика Вітчизняна війна (1941-1945 рр.) – складова Другої світової війни 54.5 KB
  Мета: познайомити учнів з подіями Великої Вітчизняної війни політикою загарбників на окупованих українських територіях діяльністю руху Опору на території України; вдосконалювати навички роботи з картою...
57614. ВЕРБАЛІЗАЦІЯ СТРАХУ В СУЧАСНІЙ АНГЛІЙСЬКІЙ МОВІ 322.5 KB
  Мовні засоби вираження емоції страху, а також об’єкти, які викликають у людини цю емоцію. Новизна та вибір предмета дослідження обумовлюються відсутністю детального аналізу мовних засобів, які використовуються автором у художньому тексті для вираження мовлення персонажів, які перебувають у стані страху.
57615. КИРИЛЛО – МЕФОДИЕВСКОЕ БРАТСТВО 80.5 KB
  Цели урока: ознакомить учащихся с деятельностью первой украинской политической нелегальной организацией - Кирилло-Мефодиевским братством; провести исследование программных документов и общественно-политической деятельности Кирилло-Мефодиевского братства...