мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Это старая версия документа!


Урок 1

Керниган (автор UNIX) говорил: «Си — инструмент, острый, как бритва: с его помощью можно создать и элегантную программу, и кровавое месиво». Разработка Си стала результатом того, что его будущие авторы любили компьютерную игру, подобную популярной игре Asteroids (Астероиды). Они уже давно играли в неё на главном сервере компании, который был недостаточно мощным и должен был обслуживать около ста пользователей. Томпсон и Ритчи посчитали, что им не хватает контроля над космическим кораблём для того, чтобы избегать столкновений с некоторыми камнями. Поэтому они решили перенести игру на свободный PDP-7, стоящий в офисе. Однако этот компьютер не имел операционной системы, что заставило их её написать. В конце концов, они решили перенести эту операционную систему ещё и на офисный PDP-11, что было очень тяжело, потому что её код был целиком написан на ассемблере. Было вынесено предложение использовать какой-нибудь высокоуровневый портативный язык, чтобы можно было легко переносить ОС с одного компьютера на другой. Язык Би, который они хотели сначала задействовать для этого, оказался лишён функциональности, способной использовать новые возможности PDP-11. Поэтому они и остановились на разработке языка Си. Проведём аналогии языка Си с Паскалем.

    Действие               Паскаль                Си
    
начало      программы    begin                  {
 
конец       программы    end                    }
    
пустой       оператор    ;                      ;
    
описание   переменной    var i:integer;         int i;
   
описание      функции    function name (i:      int name (int i);
                         integer): integer;
                           
блок      операторов,    begin                  {
мыслимый          как    ;                      ;
один         оператор    end                    }
     
оператор присваивания    :=                     =

включение     модулей    uses CRT;              #include <conio.h>

Пример хэллоуворлда:

 #include <stdio.h>
 int main ()
 {
     printf ("Hello, world!\n");
     return 0;
 } 

Практическое занятие

Задание: скомпилировать в DOSBox программу helloc.c - хэллоуворлд и сравнить с аналогичной программой на ассемблере