практика программирования брайан у керниган роб пайк

Практика программирования, Керниган Б.У., Пайк Р., 2015

Практика программирования, Керниган Б.У., Пайк Р., 2015.

Вашему вниманию предлагается перевод на русский язык исправленного и дополненного издания (уже восьмого по счету) популярной книги, вышедшего из печати в январе 2004 года. Верификацию кода в русском издании выполнили сами авторы книги — Брайан Керниган и Роб Пайк, что лишний раз свидетельствует об их огромной ответственности перед читателями.
В книге рассматриваются принципы практического профессионального программирования, которые, выходя за рамки простого написания кода, включают в себя проектирование, правильный выбор алгоритмов и структур данных, отладку и тестирование, оптимизацию быстродействия и переносимости, автоматизацию рабочего процесса. Изложение проиллюстрировано примерами из сложных, практически важных систем.
Книга предназначена для повышения квалификации программистов. Может быть полезна студентам и преподавателям компьютерных специальностей.

практика программирования брайан у керниган роб пайк. 134446. практика программирования брайан у керниган роб пайк фото. практика программирования брайан у керниган роб пайк-134446. картинка практика программирования брайан у керниган роб пайк. картинка 134446.

Единообразие стиля и устойчивые конструкции.
Соблюдение единообразного стиля позволяет писать программы более высокого качества. Если форматирование кода непредсказуемо меняется от одного блока к другому, или перебор массива в цикле выполняется то в одном, то в другом порядке, или строки копируются один раз функцией strcpy, а другой раз — в цикле for, то все эти вариации очень сильно мешают правильному восприятию программы и пониманию того, что же она действительно делает. А вот если одна и та же вычислительная операция выполняется каждый раз одинаково, то какие-либо отличия появляются только в том случае, если изменяется и сам характер выполняемых вычислений, что позволяет легко привлечь внимание программиста.

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

Оглавление.
Предисловие.
Глава 1. Стиль программирования.
1.1. Имена.
1.2. Выражения и операторы.
1.3. Единообразие стиля и устойчивые конструкции.
1.4. Макрофункции.
1.5. Явные числовые константы.
1.6. Комментарии.
1.7. Зачем утруждать себя.
Дополнительная литература.
Глава 2. Алгоритмы и структуры данных.
2.1. Поиск.
2.2. Сортировка.
2.3. Библиотечные средства.
2.4. Быстрая сортировка в Java.
2.5. O- оценка.
2.6. Расширяемые массивы.
2.7. Списки.
2.8. Деревья.
2.9. Хэш- таблицы.
2.10. Резюме.
Дополнительная литература.
Глава 3. Проектирование и реализация.
3.1. Цепь Маркова.
3.2. Выбор структур данных.
3.3. Построение структуры данных на C.
3.4. Генерирование выходных данных.
3.5. Java.
3.6. C++.
3.7. Awk и Perl.
3.8. Вопросы быстродействия.
3.9. Извлекаем уроки.
Дополнительная литература.
Глава 4. Интерфейсы.
4.1. Данные, разделенные запятыми.
4.2. Прототип библиотеки.
4.3. Библиотека для общего пользования.
4.4. Реализация на языке C++.
4.5. Принципы интерфейса.
4.6. Управление ресурсами.
4.7. Обработка ошибок.
4.8. Пользовательские интерфейсы.
Дополнительная литература.
Глава 5. Отладка.
5.1. Отладчики.
5.2. Простые ошибки с очевидными симптомами.
5.3. Сложные ошибки с трудными симптомами.
5.4. Тяжелые случаи.
5.5. Невоспроизводимые ошибки.
5.6. Вспомогательные средства.
5.7. Ошибки, сделанные другими.
5.8. Резюме.
Дополнительная литература.
Глава 6. Тестирование.
6.1. Тестирование по мере написания кода.
6.2. Систематическое тестирование.
6.3. Автоматизация тестирования.
6.4. Тестирование компонентов в программных оболочках.
6.5. Стрессовое тестирование.
6.6. Полезные советы.
6.7. Кто занимается тестированием.
6.8. Тестирование марковской программы.
6.9. Резюме.
Дополнительная литература.
Глава 7. Быстродействие.
7.1. Узкие места.
7.2. Измерение времени и профилирование.
7.3. Стратегия ускорения.
7.4. Настройка кода.
7.5. Оптимизация использования памяти.
7.6. Некоторые оценки.
7.7. Резюме.
Дополнительная литература.
Глава 8. Переносимость.
8.1. Язык.
8.2. Заголовочные файлы и библиотеки.
8.3. Организация программы.
8.4. Изоляция.
8.5. Обмен данными.
8.6. Порядок следования байтов.
8.7. Переносимость и модернизация.
8.8. Интернационализация.
8.9. Резюме.
Дополнительная литература.
Глава 9. Системы обозначений.
9.1. Форматирование данных.
9.2. Регулярные выражения.
9.3. Программирование в командных оболочках.
9.4. Интерпретаторы, компиляторы и виртуальные машины.
9.5. Программы, пишущие программы.
9.6. Генерирование кода с помощью макросов.
9.7. Компиляция в реальном времени.
Дополнительная литература.
Эпилог.
Предметный указатель.

Скачать pdf
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России. Купить эту книгу

Источник

Практика программирования, Керниган Б.У., Пайк Р., 2004

Практика программирования, Керниган Б.У., Пайк Р., 2004.

Вашему вниманию предлагается перевод на русский язык исправленного и дополненного издания (уже восьмого но счету) популярной книги, вышедшего из печати в январе 2004 года. Верификацию кода в русском издании выполнили сами авторы книги — Брайан Керниган и Роб Пайк, что лишний раз свидетельствует об их огромной ответственности перед читателями.
В книге рассматриваются принципы практического профессионального программирования, которые, выходя за рамки простого написания кода, включают в себя проектирование, правильный выбор алгоритмов и структур данных, отладку и тестирование, оптимизацию быстродействия и переносимости, автоматизацию рабочего процесса. Изложение проиллюстрировано примерами из сложных, практически важных систем.
Книга предназначена для повышения квалификации программистов. Может быть полезна студентам и преподавателям компьютерных специальностей.

практика программирования брайан у керниган роб пайк. 118267. практика программирования брайан у керниган роб пайк фото. практика программирования брайан у керниган роб пайк-118267. картинка практика программирования брайан у керниган роб пайк. картинка 118267.

Стиль программирования.
Этот фрагмент написан, отформатирован и прокомментирован достаточно тщательно. Да и программа, из которой он взят, работает исключительно хорошо. Программисты, которые ее написали, могут по праву гордиться своим творением. Но данный отрывок все же малопонятен. Какая связь между Сингапуром, Брунеем, Полыней и Италией? Почему Италия не упоминается в комментариях? Раз комментарий и код не согласованы, что-то из них должно быть неправильным (возможно, и то и другое). Код обычно тестируется и запускается на выполнение, поэтому правильным скорее является он, а не комментарий. Возможно, комментарий просто вовремя не обновили при исправлении кода. В комментарии недостаточно говорится о связи между тремя упоминаемыми странами; если этот код придется дорабатывать, нужно будет узнать об этой связи побольше.

Приведенные несколько строк достаточно типичны для реального кода: в основном все написано правильно, но еще есть над чем поработать в плане улучшения.

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

Оглавление.
Предисловие.
Глава 1. Стиль программирования.
Глава 2. Алгоритмы и структуры данных.
Глава 3. Проектирование и реализация.
Глава 4. Интерфейсы.
Глава 5. Отладка.
Глава 6. Тестирование.
Глава 7. Быстродействие.
Глава 8. Переносимость.
Глава 9. Системы обозначений.
Эпилог.
Предметный указатель.

Скачать djvu
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России. Купить эту книгу

Источник

Практика программирования

практика программирования брайан у керниган роб пайк. %D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%B0 %D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F %D0%91%D1%80%D0%B0%D0%B9%D0%B0%D0%BD %D0%A3. %D0%9A%D0%B5%D1%80%D0%BD%D0%B8%D0%B3%D0%B0%D0%BD %D0%A0%D0%BE%D0%B1 %D0%9F%D0%B0%D0%B9%D0%BA. практика программирования брайан у керниган роб пайк фото. практика программирования брайан у керниган роб пайк-%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%B0 %D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F %D0%91%D1%80%D0%B0%D0%B9%D0%B0%D0%BD %D0%A3. %D0%9A%D0%B5%D1%80%D0%BD%D0%B8%D0%B3%D0%B0%D0%BD %D0%A0%D0%BE%D0%B1 %D0%9F%D0%B0%D0%B9%D0%BA. картинка практика программирования брайан у керниган роб пайк. картинка %D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%B0 %D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F %D0%91%D1%80%D0%B0%D0%B9%D0%B0%D0%BD %D0%A3. %D0%9A%D0%B5%D1%80%D0%BD%D0%B8%D0%B3%D0%B0%D0%BD %D0%A0%D0%BE%D0%B1 %D0%9F%D0%B0%D0%B9%D0%BA.

Эффективное программирование.

Брайан Керниган, Роб Пайк «Практика программирования» Вильямс, 2015 год. 287 стр. (17,9 мб. pdf)

О книге.

Представлено девять глав, где вы узнаете:

Глава 2. Алгоритмы и структуры данных 45
2.1. Поиск 46
2.2. Сортировка 48
2.3. Библиотечные средства 51
2.4. Быстрая сортировка в Java 54
2.5. Оценка 56
2.6. Расширяемые массивы 58
2.7. Списки 61
2.8. Деревья 67
2.9. Хэш таблицы 72
2.10. Резюме 77
Дополнительная литература 78

Глава 3. Проектирование и реализация 79
3.1. Цепь Маркова 80
3.2. Выбор структур данных 82
3.3. Построение структуры данных на C 83
3.4. Генерирование выходных данных 87
3.5. Java 90
3.6. C++ 94
3.7. Awk и Perl 97
3.8. Вопросы быстродействия 100
3.9. Извлекаем уроки 101
Дополнительная литература 103

Глава 4. Интерфейсы 105
4.1. Данные, разделенные запятыми 106
4.2. Прототип библиотеки 108
4.3. Библиотека для общего пользования 111
4.4. Реализация на языке C++ 121
4.5. Принципы интерфейса 125
4.6. Управление ресурсами 128
4.7. Обработка ошибок 131
4.8. Пользовательские интерфейсы 136
Дополнительная литература 138

Глава 5. Отладка 139
5.1. Отладчики 140
5.2. Простые ошибки с очевидными симптомами 142
5.3. Сложные ошибки с трудными симптомами 146
5.4. Тяжелые случаи 151
5.5. Невоспроизводимые ошибки 155
5.6. Вспомогательные средства 156
5.7. Ошибки, сделанные другими 160
5.8. Резюме 161
Дополнительная литература 162

Глава 6. Тестирование 163
6.1. Тестирование по мере написания кода 164
6.2. Систематическое тестирование 170
6.3. Автоматизация тестирования 174
6.4. Тестирование компонентов в программных оболочках 177
6.5. Стрессовое тестирование 181
6.6. Полезные советы 185
6.7. Кто занимается тестированием 187
6.8. Тестирование марковской программы 188
6.9. Резюме 190
Дополнительная литература 191

Глава 7. Быстродействие 193
7.1. Узкие места 194
7.2. Измерение времени и профилирование 199
7.3. Стратегия ускорения 204
7.4. Настройка кода 207
7.5. Оптимизация использования памяти 212
7.6. Некоторые оценки 215
7.7. Резюме 218
Дополнительная литература 218

Глава 8. Переносимость 221
8.1. Язык 222
8.2. Заголовочные файлы и библиотеки 229
8.3. Организация программы 231
8.4. Изоляция 235
8.5. Обмен данными 236
8.6. Порядок следования байтов 238
8.7. Переносимость и модернизация 241
8.8. Интернационализация 243
8.9. Резюме 246
Дополнительная литература 247

Глава 9. Системы обозначений 249
9.1. Форматирование данных 250
9.2. Регулярные выражения 256
9.3. Программирование в командных оболочках 263
9.4. Интерпретаторы, компиляторы и виртуальные машины 266
9.5. Программы, пишущие программы 272
9.6. Генерирование кода с помощью макросов 275
9.7. Компиляция в реальном времени 276
Дополнительная литература 281
Эпилог 283
Предметный указатель 285

Источник

Мой топ IT книг из прошлого века, актуальных до сих пор

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

Disclaimer: это мой личный топ из тех книг, которые я лично прочитал, и у которых первое издание было в прошлом веке, даже если она переиздавалась недавно (при условии актуальности именно того издания, которое было в прошлом веке).

В данном топе книги не упорядочены по важности, они все очень хорошие, но есть одна книга, которая равнее других.

Я решил разделить список книг на две части: теоретическая, относящаяся к алгоритмизации и практическая, относящаяся к реализации.

Computer Science aka Теоретическая Информатика

Перефразируя @ne555, законы математики, как и физические законы, нельзя поменять в новых версиях.

Томас Кормен, Чарльз Лейзерсон, Рональд Ривест, Клиффорд Штайн. Алгоритмы: построение и анализ (первое издание 1990г. и ещё без Штайна).

практика программирования брайан у керниган роб пайк. 765a3fe9a65112415dbe73d14882374f. практика программирования брайан у керниган роб пайк фото. практика программирования брайан у керниган роб пайк-765a3fe9a65112415dbe73d14882374f. картинка практика программирования брайан у керниган роб пайк. картинка 765a3fe9a65112415dbe73d14882374f.

Эта книга является первой в моём топе среди всех IT книг (и вообще среди всех нехудожественных книг). Монументальный труд по алгоритмам. Написана очень хорошим и понятным языком. Алгоритмы не только описаны на псевдокоде, но ещё и тщательно разжёваны. А так же в каждой главе есть упражнения для закрепления материала. Книга настолько хороша, что если вы качественно изучите только эту книгу, (сделаете упражнения и самостоятельно реализуете большинство алгоритмов) и не прочитаете больше ни одной книги, то вы будете в программировании лучше большинства выпускников IT-вузов нашей страны (это моё оценочное суждение, основанное на опыте проведения собеседований). Тут недавно проскакивала статья о том, как не надо изучать программирование от @nsnurlan. Так вот, я убеждён, что человек, прочитавший (и понявший!) эту книгу от корки до корки и осиливший самостоятельно реализовать процентов 70 изложенных в ней алгоритмов (ну хорошо, хотя бы половину) на любом понравившемся языке программирования, способен получить работу программистом.

Дональд Кнут. Искусство программирования.

практика программирования брайан у керниган роб пайк. 0e831d0eb4e1dd5a89d023f5555fc49c. практика программирования брайан у керниган роб пайк фото. практика программирования брайан у керниган роб пайк-0e831d0eb4e1dd5a89d023f5555fc49c. картинка практика программирования брайан у керниган роб пайк. картинка 0e831d0eb4e1dd5a89d023f5555fc49c.

Ещё один монументальный труд, который берёт своё начало из шестидесятых годов. Сам труд давно стал классикой, а его автор – живой легендой. Несмотря на то, что она до сих пор пишется и дорабатывается, первые тома абсолютно не потеряли своей актуальности. Следует отметить, что книга имеет высокий порог входа и может отпугнуть некоторых людей. Например, в ней в начале первого тома в качестве упражнения «со звёздочкой» предлагается доказать великую теорему Ферма. Я бы рекомендовал эту книгу тем, кто хочет углубиться в хардкорную информатику так, чтобы мозги закипели.

Иосиф Владимирович Романовский. Дискретный анализ.

практика программирования брайан у керниган роб пайк. 10674cafd64f5908fda30d7ce34131d8. практика программирования брайан у керниган роб пайк фото. практика программирования брайан у керниган роб пайк-10674cafd64f5908fda30d7ce34131d8. картинка практика программирования брайан у керниган роб пайк. картинка 10674cafd64f5908fda30d7ce34131d8.

Альфред Ахо, Моника С. Лам, Рави Сети, Джеффри Ульман. Компиляторы: принципы, технологии и инструменты.

практика программирования брайан у керниган роб пайк. 2b305e29211ee4c5b78ee30750db1a0c. практика программирования брайан у керниган роб пайк фото. практика программирования брайан у керниган роб пайк-2b305e29211ee4c5b78ee30750db1a0c. картинка практика программирования брайан у керниган роб пайк. картинка 2b305e29211ee4c5b78ee30750db1a0c.

Классический учебник по компиляторам. Если вы собираетесь всерьёз заняться разработкой компилятора, эта книга, как раз, то, что надо. Но я рекомендовал бы её начать читать только после того, как вы освоите базовые алгоритмы, например, по книге Кормена.

Дэн Гасфилд. строки деревья и последовательности в алгоритмах.

практика программирования брайан у керниган роб пайк. 6d47177a384b81e51598462b57b39210. практика программирования брайан у керниган роб пайк фото. практика программирования брайан у керниган роб пайк-6d47177a384b81e51598462b57b39210. картинка практика программирования брайан у керниган роб пайк. картинка 6d47177a384b81e51598462b57b39210.

Рано или поздно в любом состоявшемся проекте появляется свой класс строки. Это нормально. Не стесняйтесь этого делать.

Если мне надо что-то вспомнить про строковые алгоритмы, я всегда сначала обращаюсь к этой книге. Если вам потребовался свой класс строки, вы теперь знаете, куда идти.

Фрэнк Харари. Теория графов.

практика программирования брайан у керниган роб пайк. ac92c7bc8baacfc674d30af8b84fffe0. практика программирования брайан у керниган роб пайк фото. практика программирования брайан у керниган роб пайк-ac92c7bc8baacfc674d30af8b84fffe0. картинка практика программирования брайан у керниган роб пайк. картинка ac92c7bc8baacfc674d30af8b84fffe0.

Ещё один классический труд, который никогда не устареет. Можно, конечно, сказать, что это книга по чистой математике, и в ней не обсуждаются алгоритмы поиска пути в графе, но математика и теоретическая информатика настолько переплетены, что сложно сказать, где кончается одно и начинается другое. Хотя, на мой взгляд, теоретическая информатика является разделом математики, но это уже философский вопрос. Тем не менее, графы являются важной частью информатики и (программирования в целом), и, порой, в разработке ПО появляются задачи, для решения которых не хватает знаний из книги Кормена.

Григорий Михайлович Фихтенгольц. Основы математического анализа.

практика программирования брайан у керниган роб пайк. 59ee528f5a3d39fe802c457374937b98. практика программирования брайан у керниган роб пайк фото. практика программирования брайан у керниган роб пайк-59ee528f5a3d39fe802c457374937b98. картинка практика программирования брайан у керниган роб пайк. картинка 59ee528f5a3d39fe802c457374937b98.

Куда же без матана.

Математику уже затем учить надо,что она ум в порядок приводит

Но причина, почему ты в принципе воспринимаешь мир как-то адекватно, состоит в том, что когда-то ты мог это [взять интеграл] сделать, и твой мозг глубоко математичен.

© математик Алексей Савватеев про экономику и теорию игр, но к программированию тоже применимо.

Борис Павлович Демидович. сборник задач и упражнений по математическому анализу.

практика программирования брайан у керниган роб пайк. c27f15ae101f4e14981fb698afc4349d. практика программирования брайан у керниган роб пайк фото. практика программирования брайан у керниган роб пайк-c27f15ae101f4e14981fb698afc4349d. картинка практика программирования брайан у керниган роб пайк. картинка c27f15ae101f4e14981fb698afc4349d.

Я сейчас очень рад тому, что, когда я учился в университете, у меня не было Wolfram Mathematica (не знаю, умела она тогда аналитически брать интегралы или нет; кажется, не умела, но это не точно) и я все положенные 70 интегралов взял сам.

Разработка

Фредерик Брукс. Мифический человеко-месяц.

практика программирования брайан у керниган роб пайк. 8c64408e3e3d446eefa14cfea2a6eeca. практика программирования брайан у керниган роб пайк фото. практика программирования брайан у керниган роб пайк-8c64408e3e3d446eefa14cfea2a6eeca. картинка практика программирования брайан у керниган роб пайк. картинка 8c64408e3e3d446eefa14cfea2a6eeca.

Несмотря на то, что IT мир со времени написания этой книги сильно изменился, очень многие мысли из неё актуальны до сих пор. Например, глава «Системный программный продукт»: понятно, что сейчас команды разработчиков пишут существенно больше 1000 операторов в год, однако подход к оценке трудозатрат не изменился: программный продукт стоит раза в три дороже просто работающей программы. А также глава, давшая название всей книге и сформулированный в ней закон Брукса:

Если проект не укладывается в сроки, то добавление рабочей силы задержит его еще больше.

Эрих Гамма, Джон Влисидис, Ральф Джонсон, Ричард Хелм, (Они же Gang of Four aka GoF aka «Банда четырёх»). Приемы объектно-ориентированного проектирования. Паттерны проектирования.

В новом издании книга называется Паттерны объектно-ориентированного проектирования.

практика программирования брайан у керниган роб пайк. image loader. практика программирования брайан у керниган роб пайк фото. практика программирования брайан у керниган роб пайк-image loader. картинка практика программирования брайан у керниган роб пайк. картинка image loader.

Как нетрудно догадаться из названия, книга о том, как проектировать ПО. Данная книга обязательна к прочтению всем разработчикам ПО.

Мартин Фаулер. Рефакторинг. Улучшение существующего кода.

практика программирования брайан у керниган роб пайк. 052b036f59d5ac807cc87af13721492a. практика программирования брайан у керниган роб пайк фото. практика программирования брайан у керниган роб пайк-052b036f59d5ac807cc87af13721492a. картинка практика программирования брайан у керниган роб пайк. картинка 052b036f59d5ac807cc87af13721492a.

Ещё одна книга, которая повлияла на развитие всей отрасли. Вместе с Кентом Беком придумал термин «код с душком»

Если что-то плохо пахнет, это что-то надо поменять

Книга описывает, что таке рефакторинг, принципы проведения рефакторинга и содержит большой каталог рефакторингов. Помимо этого описаны best practices в разработке ПО (см., например, главу «Рефакторинг и производительность»).

Брайан Керниган, Деннис Ритчи. Язык программирования С.

практика программирования брайан у керниган роб пайк. fe0e2ab886091d3c30e3619bb37a2363. практика программирования брайан у керниган роб пайк фото. практика программирования брайан у керниган роб пайк-fe0e2ab886091d3c30e3619bb37a2363. картинка практика программирования брайан у керниган роб пайк. картинка fe0e2ab886091d3c30e3619bb37a2363.

Учебник языка С от его автора. Написан настолько хорошо, что, несмотря на то, что у С несколько раз обновился стандарт, до сих пор является одной из лучших книг для его изучения.

Брайан У. Керниган, Роб Пайк. Практика программирования.

практика программирования брайан у керниган роб пайк. dceaf6952ec366f7484b36e189e2fae8. практика программирования брайан у керниган роб пайк фото. практика программирования брайан у керниган роб пайк-dceaf6952ec366f7484b36e189e2fae8. картинка практика программирования брайан у керниган роб пайк. картинка dceaf6952ec366f7484b36e189e2fae8.

Книга о том, что такое хорошо и что такое плохо в программировании для новичков. Написана простым языком и понятным языком. Она затрагивает практически все аспекты программирования, начиная от именования переменных и заканчивая написанием производительных, надёжных и переносимых систем. Все советы из неё обоснованы и подкреплены примерами из практики. Когда я передавал её племяннику, я поймал себя на мысли, что не могу воспроизвести ни строчки из неё. Но, полистав её, я пришёл к выводу, что уже автоматически следую практически всем советам из неё во время работы. Особенно ценно в ней то, что в каждой главе есть раздел «Дополнительная литература», для того, чтобы углубиться в тему. А также из этого раздела я нашёл следующую книгу из данного топа.

Стив Макконнелл. Совершенный код. Практическое руководство по разработке программного обеспечения.

практика программирования брайан у керниган роб пайк. 7649fc5be53d7242db5560a444b5b805. практика программирования брайан у керниган роб пайк фото. практика программирования брайан у керниган роб пайк-7649fc5be53d7242db5560a444b5b805. картинка практика программирования брайан у керниган роб пайк. картинка 7649fc5be53d7242db5560a444b5b805.

А это моя любимая книга из данного раздела. Она долго была моей настольной книгой. О ней даже здесь была статья. Невероятно полезная книга, которую просто обязан прочитать каждый новичок. При этом, она будет полезна и для людей с опытом.

Источник

Практика программирования брайан у керниган роб пайк

Керниган Б. В., Пайк Р.

UNIX — универсальная среда программирования

Предисловие к русскому изданию

Операционная система UNIX пользуется в нашей стране заслуженной известностью. Начиная с 1985 г. вышло порядка 10 книг, рассказывающих об этой системе или ее отечественных аналогах. Специалисты в области вычислительной техники и программисты в других отраслях давно уже применяют систему в своей профессиональной деятельности. Развиваются советские операционные системы ДЕМОС, ИНМОС, МОС и другие, представляющие собой различные вариации на тему UNIX.

Жизнь UNIX оказалась большой и насыщенной событиями. Появившись 20 лет тому назад как инструментальная среда для профессиональных программистов, система благодаря своему изяществу быстро приобрела поклонников и стала использоваться широко. Одно из основных свойств UNIX — мобильность — позволило переносить ее на компьютеры с различной архитектурой, что существенно повысило интерес к ней. Нельзя сказать, что шествие UNIX было триумфальным, поскольку она оказалась не свободной от недостатков (слабость межпроцессного взаимодействия, низкая надежность, недружественность человеко-машинного интерфейса, неразвитость прикладного багажа и др.) и обладала не слишком выдающимися техническими характеристиками, но всем этим пришлось поступиться ради концептуального изящества, универсальности и мобильности. Хотя система и была реализована на большинстве 16-разрядных компьютеров, коммерческого распространения она там не получила и, как правило, побивалась любой операционной системой, создававшейся специально для данной архитектуры. Постановка на 16-разрядные компьютеры скорее была данью моде и рекламе, чем серьезной коммерции.

Начавшаяся эпоха 32-разрядных микропроцессоров постепенно подтверждает прогнозы о том, что родным для UNIX станет именно этот класс компьютеров. Неважные технические характеристики системы компенсируются высокими техническими параметрами компьютера, а мобильность делает ее перенос более предпочтительным, чем разработка новой операционной системы для 32-разрядной архитектуры. В еще большей степени система оказалась пригодной для активно развиваемых в последнее время компьютеров с RISC-архитектурой.

Утвердившись на 32-разрядных компьютерах, UNIX, по-видимому, вступила в период зрелости. «Изюминки» системы стали классикой системного программирования. Ведущие компьютерные компании, имеющие устойчивую репутацию производителей собственных операционных систем, делают серьезную ставку на UNIX для своих 32-разрядных компьютеров. Ассоциации UNIX International и Open Software Foundation под эгидой соответствующих фирм (AT&T и IBM) усиливают борьбу за лидерство в сфере UNIX. Рабочие группы института IEEE под эгидой международной организации стандартов ISO разрабатывают стандарты на интерфейсы мобильной операционной среды, беря за основу интерфейсы UNIX.

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

Книгу могут изучать начинающие, не знакомые с системой программисты. Таким читателям адресована первая глава, в общих чертах описывающая круг основополагающих идей UNIX. Затем последовательно рассматриваются свойства системы на разных уровнях интерфейса пользователя (программы), начиная от командного языка и кончая примитивами нижнего уровня (и даже внутренними структурами данных системы). Изложение сопровождается большим количеством примеров, иллюстрирующих как вопросы частного характера, так и технологию решения типовых задач, в частности создание программы с помощью инструментальных средств построения программ. Подробно разбираются файловая система, командный интерпретатор

Несомненно, педагогическое мастерство авторов и хорошо продуманные примеры позволяют рекомендовать эту книгу всем, кто хочет основательно изучить одну из самых знаменитых операционных систем нашего времени.

Число работающих систем UNIX достигло уже 10, и в дальнейшем возрастет еще больше.

Операционная система UNIX начала свой жизненный путь на «заброшенной» машине DEC PDP-7 BELL Laboratories в 1969 г.[1] К. Томпсон при поддержке Р. Канадея, Д. МакИлроя, Д. Осанна и Д. Ритчи написал небольшую систему разделения времени общего назначения, оказавшуюся достаточно удобной, что привлекло энтузиастов-пользователей и послужило основанием для приобретения более мощной машины — PDP-11/20. Одним из первых пользователей системы считается Д. Ритчи, который помог в 1970 г. перенести ее на PDP-11. Д. Ритчи также разработал и написал компилятор с языка программирования Си. В 1973 г. Д. Ритчи и К. Томпсон переписали ядро системы UNIX на языке Си, отойдя от традиции создания таких программ на языке Ассемблера. В этом последнем варианте система в основном сохранилась и по сей день.

В 1974 г. UNIX была передана университетам «для образовательных целей», а несколько лет спустя нашла и коммерческое применение. В течение всего этого периода система UNIX продолжала совершенствоваться в BELL Laboratories, получив признание в лабораториях, при создании программного обеспечения, в центрах обработки информации, при поддержке операций телефонных компаний. В настоящее время диапазон ее использования весьма широк — от микрокомпьютеров до самых больших универсальных машин.

В чем причины успеха системы UNIX? Их несколько. Во-первых, поскольку UNIX написана на языке Си, она переносима и, как уже отмечалось, имеет широкий диапазон применения. Во-вторых, доступны исходные тексты программ системы, написанные на языке высокого уровня, что позволяет легко адаптировать ее в соответствии с конкретными требованиями. Наконец, самое главное — это хорошая операционная система, особенно для программистов. Программная среда UNIX необычайно богата и результативна.

Вместе с UNIX появилось много новых программ и методов программирования, но никакая отдельная программа или идея не дает гарантии в отношении качества системы. Эффективность системы достигается благодаря определенному подходу к программированию, своего рода философии использования вычислительной машины. Основной смысл ее состоит в том, что мощь системы обусловливается взаимодействием программ, а не мощью самих программ. Многие программы UNIX могут решать простейшие задачи, но при объединении с другими программами они превращаются в универсальные и полезные средства. Поэтому в своей книге мы уделяем большое внимание вопросам, связанным с взаимодействием программ и с их использованием в качестве инструментария для создания других программ. Чтобы успешно работать с UNIX, необходимо не только знать, как применять ту или иную программу, но и понимать ее роль в системе.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *