forked from ivan-igorevich/basic-c
28 lines
6.8 KiB
TeX
28 lines
6.8 KiB
TeX
\section{Введение} %раздел
|
||
\subsection{От автора} %подраздел
|
||
Приветствую, коллеги! Начиная работу над этим документом, я не ставил целью написать очередной учебник по языку С или поспорить с трудами Кернигана, Ритчи и Страуструпа. Я думаю, что понял, почему программирование кажется таким сложным: не нашлось ни одного материала, написанного понятным и простым языком. В этом документе я постараюсь не повторить этой досадной ошибки именитых авторов.
|
||
\frm{Брайан Керниган: <<\textbf{Язык C} — инструмент, острый, как бритва: с его помощью можно создать и элегантную программу, и кровавое месиво.>>}
|
||
Да, спасибо классикам за предупреждения, постараемся также этой работой не создать кровавое месиво.
|
||
\subsection{Инструментарий}
|
||
В этом документе сознательно пропускается подраздел, посвящённый выбору и настройке инструментария, потому что целью документа не является начало очередного раунда борьбы за право какого бы то ни было компилятора и/или среды разработки называться единственно верным даже с точки зрения отдельно взятого автора отдельно взятой книги. Обозначим лишь популярные варианты для основной тройки операционных систем (Windows, Linux, Mac OS X). Компиляторы:
|
||
\begin{itemize}
|
||
\item clang;
|
||
\item GCC/MinGW;
|
||
\item MSVC.
|
||
\end{itemize}
|
||
Остальные, такие как, например, Borland C++ можно считать экзотическими и не пытаться их устанавливать без экономического обоснования. Интегрированные среды разработки и программы для редактирования кода:
|
||
\begin{itemize}
|
||
\item CLion;
|
||
\item Visual Studio;
|
||
\item VSCode;
|
||
\item Qt Creator;
|
||
\item CodeBlocks;
|
||
\item Notepad++;
|
||
\item Sublime Text.
|
||
\end{itemize}
|
||
Этот список можно продолжать почти бесконечно, поскольку редактировать код можно в абсолютно любом редакторе, позволяющем сохранять простой текст в файлы.
|
||
%https://docs.google.com/document/d/15b226AsztngEhyzP6ZPAYnSzSlGkLHVj
|
||
%https://docs.google.com/document/d/11PmQYyQIPHl84Fh9dpJ3fwKP_h5f2veu
|
||
\subsection{Немного истории}
|
||
Первая версия языка С была разработана в 1972 году Деннисом Ритчи для программирования в недавно созданной на тот момент среде UNIX. Язык разрабатывался не государством, а обычными практикующими программистами. В нём сразу были учтены и исправлены все неудобства существовавших на тот момент FORTRAN и PASCAL. Поскольку интерес к языку со временем не пропадал, а технологии развивались, появились редакции языка, такие как С99 (1999 год) С11(2011 год). В языке С есть возможность работать с указателями на физические ячейки оперативной памяти компьютера. Конечно, это небезопасно, но при должной квалификации программиста позволяет получить максимально эффективный код, близкий к языку ассемблера и даже машинным кодам конкретного процессора. С является компилируемым процедурным языком со строгой статической типизацией, что позволяет писать максимально безопасный код и отсеять бОльшую часть ошибок ещё на этапе компиляции проекта. На языке С написано огромное количество программ, библиотек, и даже операционных систем. Какая бы у Вас ни была установлена операционная система, очень вероятно, что она написана на С. На языке С пишут драйверы для периферийного оборудования, программируют контроллеры для космической аппаратуры, пишут высокоскоростные приложения. Помимо этого, сейчас стремительно набирает популярность такое направление, как <<умная техника>> и <<интернет вещей>>. Именно из-за этих трендов язык С за последние пару лет снова поднялся в рейтинге TIOBE на лидирующие места. Какой бы язык программирования вы ни изучали, знание языка С нужно, потому что языки высокого уровня делают много вещей одной командой, а если Вы хотите не просто стать программистом, а быть хорошим программистом - вы должны понимать, что там, внутри, происходит на самом деле. Знание языка С можно сравнить с умением ездить на автомобиле с механической коробкой передач: коробка-автомат резко снижает порог вхождения в участники дорожного движения, но зачастую настолько ухудшает качество управления автомобилем, что это приводит к самым печальным последствиям.
|