Интернет, компьютеры, софт и прочий Hi-Tech | |||
Избранные докиМетки (все метки)hi tech, internet, it, интернет, информационные технологии, ит, по, программное обеспечение, сайт, софт
Подписаться через RSS2Email.ru
Дополнительнооптимизация, сайт, мониторы, движок, Битрикс, хостинг, сайты, мобильные, электроника, видеокарта |
Язык программирования C
Давным-давно, когда люди впервые полетели на Луну, в 1969-м году, появилась операционная система UNIX, разработанная в Bell Labs. Тогда встретились два сотрудника этой фирмы, Кен Томпсон и Денис Ритчи, подумали и решили создать для UNIX новый язык программирования. А назвали его C. В смысле, английской буквой «Си». Потому что раньше был B («Би»). «Си» появился в начале 70-х, а в 1978-м вышла книга Ритчи и Кернигана с названием, которое наверняка очень порадовало Капитана Очевидность: «Язык программирования Си». У «Си» есть стандартная библиотека, известная как В 1983-м был разработан единый стандарт для «Си», который называется «ANSI Си». (До этого все программировали по вышеуказанной книжке.) После 1989-го появилась «Стандартная библиотека ANSI Си». Позже в неё продолжили добавлять разные полезные заголовочные файлы (три штуки в 1995-м, ещё шесть штук в 1999-м). Язык «Си» оказался настолько удачным и несложным в освоении, что его адаптировали и для других операционных систем. Более того, его синтаксис стал идеологическим примером для других языков, появившихся позже. В том числе и таких знаменитых как Java, JavaScript, PHP. Например, многострочные комментарии, ограничиваемые косыми чертами со звёздочками — это тоже результат влияния «Си». Ну и, конечно, C++ возник непосредственно как доработка «Си». В чём же секрет такого успеха? Почему «Си» (и его идеологию) так любят использовать и для создания системного ПО, и для прикладных программ? Прежде чем какая-либо функция будет выполнена, она непременно должна быть объявлена предварительно. То есть, попросту говоря, объявление функции в тексте кода располагается выше самой функции. Что это даёт? Компилятору не доведётся возвращаться, он может обрабатывать всё последовательно — в один проход. Точкой входа в программу служит функция У языка — относительно низкий уровень абстракции. Конечно, не ассемблер, но всё же близко к нему. Меньше мороки с разработкой компиляторов, что полезно в плане создания оных для разных платформ. Язык ориентирован на процедурное программирование, пошаговое, «сверху вниз», что облегчает соблюдение принципов структурного программирования с его последовательным исполнением, ветвлением и циклами. Есть и недостатки. Например, отсутствие проверки индексов массивов (так называемой проверки границ). Если в массиве всего лишь пять элементов, то программа, написанная на «Си», вполне способна обратиться к шестому элементу — к несуществующему. В результате — переполнение буфера и проблемы с безопасностью. С указателями тоже возможно безобразие, вызывающее утечку памяти. Вот забывает программа освободить динамически назначаемые области — и всё тут, хоть волком вой. В тех областях может застрять какой угодно мусор. Потом, образно говоря, он ещё и высыпется на голову непредсказуемым образом в произвольный момент времени. Нескучная жизнь гарантирована. Ну а в марте 2011-го выяснилось, что благодаря особенностям работы функции
Несмотря ни на что, историческую роль языка «Си» трудно недооценить. Ведь благодаря ему возникла не только «мода» на характерный синтаксис, но и целая идеология программирования. Всё, что можно сделать простым, легковесным и быстрым, должно быть сделано именно таким. Если для работы чего-либо достаточно выстроить выполнение функций в линеечку, последовательно, без дёрганья и метания, то так и следует делать. Иначе получится Bloatware, раздутое и распухшее, неоправданно тяжёлое и неповоротливое. К сожалению, такая идеология всё чаще забывается, особенно нынешними разработчиками UNIX-подобных операционных систем. Автор: vanilinkin, специально для xBB.uz, 31.03.2011 Предыдущие публикации: Последнее редактирование: 2011-03-31 11:55:49 Метки материала: c, язык программирования, язык программирования c, программирование, разработка по Оставьте, пожалуйста, свой комментарий к публикации |
||
© 2007-2012, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.