Главная » Просмотр файлов » Керниган и Ритчи - Язык программирования Си

Керниган и Ритчи - Язык программирования Си (793773), страница 5

Файл №793773 Керниган и Ритчи - Язык программирования Си (Керниган и Ритчи - Язык программирования Си) 5 страницаКерниган и Ритчи - Язык программирования Си (793773) страница 52019-04-24СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

Однако благодаря широким возможностям и универсальности для решения многих задач онудобнее и эффективнее, чем предположительно более мощные языки.Первоначально Си был создан Деннисом Ритчи как инструмент написания операционной системы UNIX длямашины PDP-11 и реализован в рамках этой операционной системы.

И операционная система, и Сикомпилятор, и, по существу, все прикладные программы системы UNIX (включая и те, которыеиспользовались для подготовки текста этой книги1) написаны на Си. Фирменные Си-компиляторы существуюти на нескольких машинах других типов, среди которых IBM/370, Honeywell 6000 и Interdata 8/32. Си непривязан к конкретной аппаратуре или системе, однако на нем легко писать программы, которые без какихлибо изменений переносятся на другие машины, где осуществляется его поддержка.Цель нашей книги — помочь читателю научиться программировать на Си. Издание включает введениеучебник, позволяющий новичкам начать программировать как можно скорее, а также главы, посвященныеосновным свойствам языка, и справочное руководство.

В ее основу положены изучение, написание ипроработка примеров, а не простое перечисление правил. Почти все наши примеры — это законченныереальные программы, а не разобщенные фрагменты. Все они были оттестированы на машине точно в томвиде, как приводятся в книге. Помимо демонстрации эффективного использования языка, там, где это быловозможно, мы стремились проиллюстрировать полезные алгоритмы и принципы хорошего стиля написанияпрограмм и их разумного проектирования.Эта книга не является вводным курсом по программированию.

Предполагается, что читатель знаком с такимиосновными понятиями, как "переменная", "присваивание", "цикл", "функция". Тем не менее и новичоксможет изучить язык, хотя для него будет очень полезным общение с более знающими специалистами.Наш опыт показал, что Си — удобный, выразительный и гибкий язык, пригодный для программированияширокого класса задач. Его легко выучить, и чем больше работаешь с Си, тем он становится удобнее. Мынадеемся, что эта книга поможет вам хорошо его освоить.Вдумчивая критика и предложения многих друзей и коллег помогали нам написать книгу. В частности, МайкБианки, Джим Блу, Стью Фелдман, Дуг Макилрой, Билл Рум, Боб Розин и Ларри Рослер со вниманием прочливсе многочисленные варианты этой книги. Мы в долгу у Ала Ахо, Стива Бьерна, Дана Дворака, Чака Хейли,Марион Харрис, Рика Холта, Стива Джонсона, Джона Машея, Боба Митца, Ральфа Мухи, Питера Нельсона,Эллиота Пинсона, Билла Плейджера, Джерри Спивака, Кена Томпсона и Питера Вайнбергера за полезныесоветы, полученные от них на различных стадиях подготовки рукописи, а также у Майка Леска и Джо Оссанныза помощь при подготовке ее к изданию.Брайан В.

Керниган,Деннис М. Ритчи1Имеется в виду оригинал этой книги на английском языке. — Примеч. пер.ВведениеСи — универсальный язык программирования. Он тесно связан с системой UNIX, так как был разработан вэтой системе, которая как и большинство программ, работающих в ней, написаны на Си. Однако язык непривязан жестко к какой-то одной операционной системе или машине. Хотя он и назван "языком системногопрограммирования", поскольку удобен для написания компиляторов и операционных систем, оказалось, чтона нем столь же хорошо писать большие программы другого профиля.Многие важные идеи Си взяты из языка BCPL, автором которого является Мартин Ричарде.

Влияние BCPL наСи было косвенным — через язык В, разработанный Кеном Томпсоном в 1970 г. для первой системы UNIX,реализованной на PDP-7.BCPL и В — "бестиповые" языки. В отличие от них Си обеспечивает разнообразие типов данных. Базовымитипами являются символы, а также целые и числа с плавающей точкой различных размеров. Кроме того,имеется возможность получать целую иерархию производных типов данных из указателей, массивов,структур и объединений.

Выражения формируются из операторов и операндов. Любое выражение, включаяприсваивание и вызов функции, может быть инструкцией. Указатели обеспечивают машинно-независимуюадресную арифметику.В Си имеются основные управляющие конструкции, используемые в хорошо структурированных программах:составная инструкция ({...}), ветвление по условию (if-else), выбор одной альтернативы из многих(switch), циклы с проверкой наверху (while, for) и с проверкой внизу (do), а также средство прерыванияцикла (break).В качестве результата функции могут возвращать значения базовых типов, структур, объединений иуказателей.

Любая функция допускает рекурсивное обращение к себе. Как правило, локальные переменныефункции — "автоматические", т. е. они создаются заново при каждом обращении к ней. Определенияфункций нельзя вкладывать друг в друга, но объявления переменных разрешается строить в блочноструктурной манере. Функции программы на Си могут храниться в отдельных исходных файлах икомпилироваться независимо. Переменные по отношению к функции могут быть внутренними и внешними.Последние могут быть доступными в пределах одного исходного файла или всей программы.На этапе препроцессирования выполняется макроподстановка в текст программы, включение другихисходных файлов и у словная компиляция.Си — язык сравнительно "низкого уровня".

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

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

Все это — механизмы высокого уровня, которые в Си обеспечиваютсяисключительно с помощью явно вызываемых функций. Большинство реализованных Си-систем содержат всебе разумный стандартный набор этих функций.В продолжение сказанного следует отметить, что Си предоставляет средства лишь последовательногоуправления ходом вычислений: механизм ветвления по условиям, циклы, составные инструкции,подпрограммы — и не содержит средствсинхронизации и организации сопрограмм.мультипрограммирования,параллельныхпроцессов,Отсутствие некоторых из перечисленных средств может показаться серьезным недостатком ("выходит, чтобысравнить две строки символов, нужно обращаться к функции?"). Однако компактность языка имеет реальныевыгоды.

Поскольку Си относительно мал, то и описание его кратко, и овладеть им можно быстро.Программист может реально рассчитывать на то, что он будет знать, понимать и на практике регулярнопользоваться всеми возможностями языка.В течение многих лет единственным определением языка Си было первое издание книги "Языкпрограммирования Си". В 1983 г. Институтом американских национальных стандартов (ANSI) учреждаетсякомитет для выработки современного исчерпывающего определения языка Си.

Результатом его работыявился стандарт для Си ("ANSI-C"), выпущенный в 1988 г. Большинство положений этого стандарта уже учтенов современных компиляторах.Стандарт базируется на первоначальном справочном руководстве. По сравнению с последним языкизменился относительно мало. Одной из целей стандарта было обеспечить, чтобы в большинстве случаевсуществующие программы оставались правильными или вызывали предупреждающие сообщениякомпиляторов об изменении поведения.Для большинства программистов самое важное изменение — это новый синтаксис объявления иопределения функций. Объявление функции может теперь включать и описание ее аргументов. Всоответствии с этим изменился и синтаксис определения функции.

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

Большинство программистов эти изменения затронут очень слабо.Второй значительный вклад стандарта — это определение библиотеки, поставляемой вместе с Сикомпилятором, в которой специфицируются функции доступа к возможностям операционной системы(например чтения-записи файлов), форматного ввода-вывода, динамического выделения памяти,манипуляций со строками символов и т.

д. Набор стандартных заголовочных файлов обеспечиваетединообразный доступ к объявлениям функций и типов данных. Гарантируется, что программы,использующие эту библиотеку при взаимодействии с операционной системой, будут работать также и надругих машинах. Большинство программ, составляющих библиотеку, созданы по образу и подобию"стандартной библиотеки ввода-вывода" системы UNIX. Эта библиотека описана в первом издании книги ишироко используется в других системах. И здесь программисты не заметят существенных различий.Так как типы данных и управляющих структур языка Си поддерживаются командами большинствасуществующих машин, исполнительная система (run-time library), обеспечивающая независимый запуск ивыполнение программ, очень мала. Обращения к библиотечным функциям пишет сам программист (некомпилятор), поэтому при желании их можно легко заменить на другие. Почти все программы, написанныена Си, если они не касаются каких-либо скрытых в операционной системе деталей, переносимы на другиемашины.Си соответствует аппаратным возможностям многих машин, однако он не привязан к архитектуре какой-либоконкретной машины.

Характеристики

Тип файла
PDF-файл
Размер
2,25 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7021
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее