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


 

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

11223. Discuss different opinions of the threat of population growth on our planet 24 KB
  Discuss different opinions of the threat of population growth on our planet. From the very start I want to admit that population growth as well as other global problems in the world is an urgent one. For decades the population explosion has been giving people nightmares. The world’s population increases by 3 every second and by a billion – every decade. With figures such as these the gloom is understandable. There school of thought that the battle to feed all the humanity is over....
11224. Talk about the problems a newly-independent state is confronted with 23.5 KB
  Talk about the problems a newlyindependent state is confronted with. Chinese people say that the worst thing is to live in the time of changes. With the rich choice of possible way of further development comes a bunch of problems as well. It’s especially true for newlyindependent states. I’d like to illustrate this on the example of Samoa. For centuries time stood still in Samoa. The people worked at banana plantations and respected the customs that the family chiefs presented abso...
11225. Talk on how parents feel about their children travelling on their own for the first time 23.5 KB
  Talk on how parents feel about their children travelling on their own for the first time. It goes without saying that parents is always get worried when their children go abroad to visit new places and get to know other ways of living. Without any doubt traveling is necessary for all of us as it broadens our minds and horizons it’s kind of relaxation and a wonderful opportunity to get away from it all. When children go on a journey they relax their body refresh their spirits and renew ...
11226. Talk about stereotyped ideas that people may have about the way of life in oyher countries 24.5 KB
  Talk about stereotyped ideas that people may have about the way of life in oyher countries. Nobody wants to be average. So generalizations about nations aren’t usually welcomed though sometimes they are quiet accurate. The dangers may go even deeper when someone tries to generalize from his own limited experience. The Americans for instance are the nation about which numerous stereotyped ideas exist. They are created as a rule by the people who have never been to the USA but n...
11227. Talk about madame tussaud’s as one of london’s famous museums 24.5 KB
  Talk about madame tussaud’s as one of london’s famous museums. It often comes as a shock for Londoners that Madame Tussaud’s museum is one of the capital top tourist attractions. Many find it gruesome and frightening. Others maintain that its collection of wax statues has no artistic merit. Yes despite this criticism Madam Tussauds has become a world famous. Millions of tourists from overseas and from other parts of Britain wouldn’t consider their trip to the capital worthwhile with...
11228. TAIK ABOUT HOLYWOOD AND THE EPICS PRODUCED THERE IN THE 1930S AND 1940S 23.5 KB
  TAIK ABOUT HOLYWOOD AND THE EPICS PRODUCED THERE IN THE 1930S AND 1940S. Nowadays for million if people there’s nothing better than watching a good film and the vast majority of films are produced in Hollywood. But what we really know about this really know about this greatstar factory To tell the truth everything we read about the great days of Hollywood in the 30’s and 40’s seems like exaggeration. The studious always said their film were superb and colossal because vast s...
11229. TALK ABOUT THE LANGUAGE OF SHAKESPEAR AND THE DIFFICULTIES OF PRESENTING SHAKESPEAR’S CHARACTERS TO A MODERN AUDIENCE 23.5 KB
  TALK ABOUT THE LANGUAGE OF SHAKESPEAR AND THE DIFFICULTIES OF PRESENTING SHAKESPEAR’S CHARACTERS TO A MODERN AUDIENCE. For any Englishman there are never can be any discussion on topic who is the world’s greatest poet and dramatist. Only one name possibly suggest itself to him: that of W Shakespeare. All of us use words phrases and quotation from Sh’s writings that have become part of the common property of Englishspeaking people. Shakespeare more perhaps than any other writer ...
11230. DESCRIBE AN ENGLISH JOURNALIST’S IMPRESSIONS OF TRAVELLING THROUGH THEVAST SPASES OF RUSSIA, CHINA AND MONGOLIA 23.5 KB
  DESCRIBE AN ENGLISH JOURNALIST’S IMPRESSIONS OF TRAVELLING THROUGH THEVAST SPASES OF RUSSIA CHINA AND MONGOLIA. It’s no wonder that trains are a literary genre all on their own. Writers from Graham Green to Agatha Christie realized that there is nothing quite like curtain sleeping compartments quicken the narrative pulse. To board the train that crosses countries and continents is to feel that anything might happened. From the first days of a journey on board a TransSiberian Expr...
11231. THE ETHICAL AND CULTURAL HERITAGE OF THE BIBLE: CHRISTIAN VIRTUES SA DESCRIBED IN THE BIBLE AND THEIR ETERNAL VALUE 24 KB
  THE ETHICAL AND CULTURAL HERITAGE OF THE BIBLE: CHRISTIAN VIRTUES SA DESCRIBED IN THE BIBLE AND THEIR ETERNAL VALUE. To become a real Christian you must obtain certain qualities of mind and heart which are called Christian virtues. The main virtues are: love hope faith humility patience meekness selfcontrol. Love is surely the most important of all Christian qualities. Firstly a man must love God with all his heart soul mind and strength. Secondly a man should love his neig...