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


 

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

42987. Контроль технологических процессов при изготовлении интегральных схем 2.57 MB
  Интегральные микросхемы в настоящее время являются одними из самых массовых изделий современной микроэлектроники. Тестовые интегральные микросхемы. Удобство контроля достигается либо последовательным либо параллельным включением в электрическую цепь элементов микросхемы. Тестовые микросхемы состоят из набора нескольких сотен однотипных элементов – диодов транзисторов резисторов переходов со слоя на слой пересечений проводников и др.
42988. Разработка многоканального реоофтальмографа 1.85 MB
  Представленный в данном дипломе реоофтальмограф предназначен для диагностики состояния сосудов глаза. Реоофтальмография метод позволяющий количественно оценивать изменения объемной скорости крови в тканях глаза. Такие электроды отличаются малыми габаритными размерами и соответственно малым весом хорошо контактируют с глазным яблоком не оказывают на него давления не вызывают раздражения глаза ни во время исследования ни...
42989. Расчёт и исследование системы стабилизации скорости вращения электродвигателя постоянного тока 736.5 KB
  Принципы управления регулирования на основе которых строятся автоматические системы имеют универсальный характер. Аналогичные принципы например принцип обратной связи заложены в регуляционные системы живых организмов системы управления производством обществом и т.1 Составление по принципиальной схеме структурных схем в динамике и статике Запишем передаточные функции отдельных элементов системы: тиристорный возбудитель: генератор: датчик скорости состоящий из тахогенератора и потенциометра ...
42990. Этапы разработки автоматизированного технологического комплекса для сборки подпятника с шарошкой долота 501.5 KB
  Стандартизация и менеджмент качества продукции. СТАНДАРТИЗАЦИЯ И МЕНЕДЖМЕНТ КАЧЕСТВА ПРОДУКЦИИ Выбор системы менеджмента качества и ее описание. Первой задачей построения той или иной структуры системы менеджмента качества является разработка согласование и публикация соответствующих рабочих процедур координирующих различные виды деятельности влияющие на качество в том числе: проектирование материальнотехническое обеспечение производство продукции и ее сбыт. Для того чтобы система МК выполняла свои функции в отношении...
42991. Проектирование двухступенчатого цилиндрического редуктора для эскалатора 845.5 KB
  Расчет прямозубой передачи Расчет косозубой передачи Расчет валов. Ориентировочный расчет валов Проверочный расчет валов Расчет шпоночных соединений Выбор и расчет подшипников Расчет...
42992. Повышение надежности автогрейдера путем разгрузки шарнира поворота хребтовой балки относительно подмоторной рамы гидроцилиндрами поворота хребтовой балки относительно подмоторной рамы 1.02 MB
  Описание автогрейдера При отделке земляного полотна дороги требуется произвести вырезание кюветов и профилирование поверхности и боковых откосов насыпи и выемок для придания этим элементам дорожного полотна необходимых поперечных и продольных уклонов.
42993. Информационная система Склад 1.54 MB
  Диаграммы вариантов использования предназначены для упрощения взаимодействия с будущими пользователями системы с клиентами и особенно пригодятся для определения необходимых характеристик системы.
42994. Устройство плоскостного биполярного транзистора 1.86 MB
  Движение электронов и дырок в транзисторах типа npn и pnp Поэтому сопротивление эмиттерного перехода мало и для получения нормального тока в этом переходе достаточно напряжения E1 в десятые доли вольта. Вольтамперная характеристика эмиттерного перехода представляет собой характеристику полупроводникового диода при прямом токе см. участка база эмиттер U6э существенно влияет на токи эмиттера и коллектора: чем больше это напряжение тем больше токи эмиттера и коллектора. При этом изменения тока коллектора лишь...