СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ
Благодаря готовым учебным материалам для работы в классе и дистанционно
Скидки до 50 % на комплекты
только до
Готовые ключевые этапы урока всегда будут у вас под рукой
Организационный момент
Проверка знаний
Объяснение материала
Закрепление изученного
Итоги урока
Си ( C) — общего назначения, разработанный в 1969—1973 годах сотрудником как развитие языка . Первоначально был разработан для реализации , но впоследствии был на множество других платформ. Согласно дизайну языка, его конструкции близко сопоставляются типичным , благодаря чему он нашёл применение в проектах, для которых был свойственен , в том
числе как в , так и в различном для множества устройств — от до . Язык программирования Си оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для таких языков программирования, как , , и .
История[ | ]
Основная статья:
Язык программирования Си разрабатывался в период с по в лабораториях , и к 1973 году на него была переписана большая часть , первоначально написанного на ассемблере /20. Название языка стало логическим продолжением старого языка «», многие особенности которого были положены в основу.
По мере развития язык сначала стандартизировали как , а затем этот стандарт был принят комитетом по международной стандартизации как ISO C, ставший также известным под названием C90. В стандарте язык получил новые возможности, такие как массивы переменной длины и встраиваемые функции. А в стандарте в язык добавили реализацию потоков и поддержку атомарных типов. Однако с тех пор язык развивается медленно, и в стандарт С18 попали лишь исправления ошибок стандарта C11.
Общие сведения[ | ]
Язык Си разрабатывался как язык системного программирования, для которого можно создать однопроходный компилятор. Стандартная библиотека также невелика. Как следствие данных факторов — компиляторы разрабатываются сравнительно легко. Поэтому данный язык доступен на самых различных платформах. К тому же, несмотря на свою низкоуровневую природу, язык ориентирован на переносимость. Программы, соответствующие стандарту языка, могут компилироваться под различные архитектуры компьютеров.
Целью языка было облегчение написания больших программ с минимизацией ошибок по сравнению с ассемблером, следуя принципам , но избегая всего, что может привести к дополнительным накладным расходам, специфичным для языков высокого уровня.
Основные особенности Си:
В то же время в Си отсутствуют:
Часть отсутствующих возможностей может имитироваться встроенными средствами (например, сопрограммы можно имитировать с помощью функций ), часть добавляется с помощью сторонних библиотек (например, для поддержки многозадачности и для сетевых функций можно использовать библиотеки , sockets и тому подобные; существуют библиотеки для поддержки автоматической сборки мусора), часть реализуется в некоторых компиляторах в виде расширений языка (например, вложенные функции в ). Существует несколько громоздкая, но вполне работоспособная методика, позволяющая реализовывать на Си механизмы , базирующаяся на фактической полиморфности указателей в Си и поддержке в этом языке указателей на функции. Механизмы ООП, основанные на данной модели, реализованы в библиотеке и активно используются в фреймворке . GLib предоставляет базовый класс GObject, возможности наследования от одного класса и реализации множества интерфейсов.
После появления язык был хорошо принят, потому что он позволял быстро создавать для новых платформ, а также позволял программистам довольно точно представлять, как выполняются их программы. Благодаря близости к языкам низкого уровня программы на Си работали эффективнее написанных на многих других языках высокого уровня, и лишь оптимизированный вручную код на ассемблере мог работать ещё быстрее, потому что давал полный контроль над машиной. На сегодняшний день развитие компиляторов и усложнение привело к тому, что вручную написанный ассемблерный код (кроме разве что очень коротких программ) практически не выигрывает по сравнению с кодом, генерируемым компиляторами, при этом Си продолжает оставаться одним из наиболее эффективных языков высокого уровня.
© 2020, Toktomushov Baian Toktomushovich 187