Этот раздел должен сориентировать читателя - стоит ли ему читать дальше. Он очень маленький. О том, как писать на C очень маленькие программы. Это не для всех. Но для очень маленькой секты свидетелей очень маленьких и быстрых программ.
Язык программирования C (произностися Си) был создан в начале 1970-х годов. Он оказался настолько удачным, что хотя его авторы и обещали дальнейшее развитие языка, он сохранился почти в неизменном виде. C используют как язык системного программирования. На нем была полностью написана операционная система UNIX, а впоследствии и другие, включая Windows. При работе с ним очень редко приходится иметь дело с ассемблером, хотя иногда и приходится. Язык C - компилируемый, что как раз и подходит для операционных систем и встраиваемых систем. В то же время, ничто не мешает писать на C и превосходные прикладные программы.
Часто сам язык путают с его стандартными библиотеками и функциями из них. Язык C, сам по себе, не имеет никаких встроенных средств ввода/вывода. Вся суть языка - в операторах и скобках (которые также являются операторами). C вырос из ассемблера естественным путем, также, как ассемблер вырос из мнемокода для машинных команд. На языке C были решены все элементарные задачи по обработке текстовых строк и созданы библиотеки, обслуживающие большинство языков, созданных позже. Синтаксис, очень похожий на синтаксис языка C, используют многие другие языки.
C хорош тем, что позволяет писать крохотные программы, выполняющиеся с очень большой скоростью. И делать это значительно проще и быстрее, чем на ассемблере. Вряд ли стоит обольщаться ростом памяти и быстродействия нового железа. Качественная программа всегда использует минимум ресурсов и дает максимум производительности. И такие программы всегда будут вне конкуренции, в любой сфере: операционные системы и приложения для них, встраиваемые системы, управление производственными установками, медицинские приборы, кардиостимуляторы, оружие для армии, детские игрушки. Но размер программы зависит и от библиотек, которые она использует. К сожалению, со временем библиотеки имеют свойство раздуваться, требовать от железа все больше, а реальная отдача от них становится меньше.
Существует стандартная библиотека языка C, которая должна быть переносима на все платформы. Пользователь получает готовый набор функций и может писать программы. Изучение языка сводится, большей частью, к изучению интерфейса библиотечных функций. Но такой путь не самый лучший для изучения языка. Автор предлагает кое-что поинтереснее. Но только для тех, кому нравится копаться в коде и разбираться в мелочах. Тот, кого язык интересует как средство для быстрого решения своих проблем “написал и забыл”, может поискать что-то другое.
Несмотря на большое обилие литературы по языку C, лучше, чем “Язык программирования C” Б. Керниган, Д. Ритчи - о языке не рассказал никто. Это описание языка из рук его создателей. На эту книгу часто ссылаются как на K&R, настолько она популярна в соответствующих кругах. Если у вас есть эта книга, то это почти все, что вам нужно. (Не считая маленького пустячка, - моей.)
Язык, как уже говорилось, работает на множестве платформ - от суперкомпьютеров до маленьких чипов в детских игрушках. Это еще одна причина, почему стоит покопаться в самом языке, а не только в его библиотечных функциях. Мы достаточно глубоко копнем, но при этом все будет очень просто. Читайте дальше и убедитесь в этом.
Насколько “кодеру” нужно знать математику? Как написал один автор, это целиком зависит от тех задач, которые он, кодер, решает. Но разбираться в числовых последовательностях, множествах, основах мат. логики, и хорошо понимать на элементарном уровне, что такое функция в математике, совершенно необходимо. Автор не делает различий между кодером и программистом, и не считает занятия или работу в области программирования чем-то особенным, “престижным” или “элитарным”. Это нормальная и обыкновенная человеческая деятельность в области работы с информацией и, отчасти, с прикладной (вычислительной) математикой.
О платформе. Для этой книжки выбрана платформа amd64, довольно распространенная в наше время на ноутбуках и ПК, и операционная система Linux (гораздо менее распространенная, чем Windows). Все, что нужно, здесь уже установлено. Если вы установите на свою машину самый популярный дистрибутив Linux (скорее всего, это будет Mint, но может оказаться и Fedora или другой) то можно начинать работу.
Установить Linux - проще простого. Достаточно зайти на сайт distrowatch.com и выбрать самый популярный. Linux есть Linux, и основа его - ядро, одинакова во всех дистрибутивах, несмотря на возможную разницу при сборке. Но есть дистрибутивы специализированные, например, для серверов или диагностики, а есть десктопные, пригодные всем. Логично выбрать самый популярный и скачать его образ в формате ISO. Это LiveCD или, в наши дни, скорее всего, LiveDVD дистрибутив. Если вам сложно установить его на флешку, то можно прожечь на болванку и загрузиться с нее, чтобы просто посмотреть, как он выглядит в работе. Никакие файлы на вашем диске не будут затронуты.
Если вам не жалко места, освободите на жестком диске хотя бы 50 Гб. Дальше вам нужно ужать существующие разделы, чтобы установить Linux. Можно весьма быстро сделать это при помощи утилиты gparted, доступной при загрузке LiveDVD. Но тогда Windows, обнаружив при очередной загрузке изменения на диске, покажет всякие синие экраны и это может шокировать многих. В принципе, достаточно запустить там утилиту chkdisk (или система сама это сделает, в Win7 не проверял) и все будет в ажуре, но хорошо ли без ведома хозяина рыться в его имуществе?
Поскольку вышеупомянутый способ не застрахован от проблем, особенно в случае начинающих, то лучше сделать все чин по чину. Сначала очистите диск от файлового мусора, а затем дефрагментируйте его с оптимизацией файлов. Это займет время, но ускорит последующее. Затем используйте любую Windows-программу для работы с дисковыми разделами, и освободите на диске вышеуказанное место. После окончания ее работы и проверки, перезагрузитесь с созданного вами LiveDVD и просто выберите пункт: “Установить на диск”. При установке выберите вариант: “Рядом с существующими операционными системами”. Установка пройдет быстро и вы получите возможность работать в любой из осей: вашей Windows или вновь установленной Linux-системе. При запуске компьютера вы будете попадать в меню загрузчика, из которого Linux будет выбираться по умолчанию, и один из пунктов (последний) будет Windows. Выбрать вариант загрузки можно клавишами со стрелками.
После загрузки с диска, а еще лучше до этого, в режиме LiveDVD, не помешает подключиться к интернету и обновить систему. Выберите сразу хороший, стойкий пароль. UNIX и Linux - это очень стойкие, дубовые системы, но хорошие пароли - ваша первая и главная защита.
Дальше