С история создания кратко

Обновлено: 04.07.2024

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

Несмотря на свой возраст (язык придумали еще в 70-х годах), язык Си не утратил актуальности, однако число сфер его применения довольно ограничено. В нашей статье мы расскажем, какие особенности имеет данный язык, разберем его ключевые элементы и поговорим, где и как он может быть востребован сегодня.

Ключевые характеристики языка программирования Си

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

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

Ключевые характеристики языка программирования Си

Ключевые характеристики языка программирования Си

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

Ваш Путь в IT начинается здесь

Подробнее

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

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

Значимые отличительные черты языка программирования Си:

  • понятная языковая база, отдельные библиотеки с математическими функциями, с функциями управления файлами и т.п.;
  • направленность на процедурное программирование, что очень удобно с точки зрения использования структурного подхода к процессу программирования;
  • система типов, исключающая появление бессмысленных операций;
  • процессор задействуется для определения макросов, или, например, для запуска файлов, содержащих исходный код;
  • есть специальные указатели, дающие доступ к памяти компьютера;
  • ключевых слов – по минимуму;
  • параметры передаются в функцию по значению, не по ссылке. А для передачи по ссылке используются указатели;
  • указатели для функций и статических переменных. Благодаря этому доступно выполнение замыкания и простого полиморфизма;
  • обозначены области действия имен;
  • записями (имеются в виду собирательные типы данных, формируемые самим пользователем) можно управлять как единой структурой.

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

  • управление памятью в автоматическом режиме;
  • работа с объектно-ориентированным программированием. Тут стоит упомянуть, что код программы в первых версиях С++ генерировался именно на Си;
  • использование вложенных функций;
  • функции и операторы, работающие с разнотипными данными (полиморфизм);
  • многозадачность, поддержка сети.

Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.

Вдохновлённые языком ALGOL-60, Математическая лаборатория Кембриджского Университета совместно с Компьютерным отделом Лондонского университета создали в 1963 году язык CPL (Combined Programming Language).

Язык CPL посчитали сложным, и в ответ на это Мартином Ричардсоном был создан в 1966 году язык BCPL, основное предназначение которого заключалось в написании компиляторов. Сейчас он практически не используется, но в своё время из-за хорошей портируемости он играл важную роль.

BCPL послужил предком для языка Би, разработанного в 1969 в уже знакомой всем AT&T Bell Telephone Laboratories, не менее знакомыми Кеном Томпсоном и Денсом Ритчи.

Язык Би был использован для написания самых ранних версий UNIX, созданной как ответ на проект Multics, разрабатываемый всё в той же Bell Laboratories. Именно этот язык послужил непосредственным предшественником языка Си.

Язык программирования Си был разработан в стенах Bell Labs в период с 1969 по 1973 годы. Как признался сам Ритчи, самый активный период творчества приходился на 1972 год.

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

Успех Си в основном связан с тем, что на нём была написана значительная часть операционной системы UNIX, которая в итоге приобрела очень большую популярность. Если считать по количеству используемых на данный момент операционных систем, разработанных на базе UNIX, то она является самой распространённой системой в мире. В связи с её распространённостю, а также с тем, что на данный момент объём операционной системы измеряется в миллионах строк кода (для примера, в последних версиях Linux содержится более 10 000 000 строк кода), задача о переписывании UNIX на другой язык становиться практически невыполнимой (также следует учитывать тот факт, что при ручном переписывании неизбежно возникнут ошибки, что существенно снизит стабильность работы, а при переводе с использованием программных средств пострадает производительность кода). Кроме того, язык Си, будучи приближённым к аппаратной реализации компьютера позволяет выжать из него намного больше, чем многие другие языки программирования. Это обстоятельство показывает бессмысленность перевода UNIX на другой язык. Таким образом, если другие языки программирования могут исчезнуть с течением времени, уступив дорогу новым технологиям, то язык Си будет жить, пока живёт UNIX. То есть пока существуют компьютеры в том виде, в котором мы их себе представляем.

В конце 1970-х годов, язык си начал вытеснять BASIC, который в то время был ведущим в области программирования микрокомпьютеров. В 1980-х годах он был адаптирован под архитектуру IBM-PC, что привело к значительному скачку его популярности. В то же время Бьярн Страуструп начал разработку языка программирования, который бы сочетал в себе синтаксис популярного языка Си и концепцию объектно-ориентированного программирования, которая становилась всё более востребованной, так началась разработка языка С++.

В то время как Си набирал всё большую популярность, компиляторы для него выпускались различными фирмами, и зачастую программа, которая компилировалась на компиляторе одной фирме, не компилировалась на компиляторе другой. Всё это было связано с отсутствием чётко оговоренного стандарта языка Си. Все разработчики ориентировались на книгу Кернигана и Ритчи, но интерпретировали её по-своему.

Разработкой стандарта языка Си занялся Американский национальный институт стандартов (ANSI). При нём в 1983 году был сформирован комитет X3J11, который занялся разработкой стандарта. Первая версия стандарта была выпущена в 1989 году и получила название С89. В 1990, внеся небольшие изменения в стандарт, его приняла Международная Организация Стандартизации ISO. Тогда он стал известен под кодом ISO/IEC 9899:1990, но в среде программистов закрепилось название, связанное с годом принятия стандарта: С90. Последней на данный момент версией стандарта является стандарт ISO/IEC 9899:1999, также известный как С99, который был принят в 2000 году.

Среди новшеств стандарта С99 стоит обратить внимание на изменение правила, касающегося места объявления переменных. Теперь новые переменные можно было объявлять посреди кода, а не только в начале составного блока или в глобальной области видимости. Это уводит Си от концепции объявления переменных в начале функции, которая присутствует в Паскале. Меня, как и многих программистов, привыкших писать на С++ (где это ограничение отсутствует) такое поведение компилятора вызывало недовольство. Тем не менее, даже с принятием стандарта С99, в программе Borland Embarcadeo RAD Studio 2010, ограничение на объявление переменных в начале блока кода всё ещё действует. Также можно указать другие места, в которых стандарты Си не до конца соблюдаются. Есть мнение, что это связано с тем, что основное внимание больших компаний, таких как Microsoft и Borland сосредоточено на более новых языках программирования. Однако, согласно заверениям компании Sun Microsystems, её среда разработки Sun Studio полностью поддерживает С99.

Стандарт С99 сейчас в большей или меньшей степени поддерживается всеми современными компиляторами языка Си. В идеале, код написанный на Си с соблюдением стандартов и без использования аппаратно- и системно-зависимых вызовов, становился как аппаратно- так и платформенно-независимым кодом.

История развития вычислительной техники

Основные этапы

Процесс эволюции счетных устройств начался в древние времена и продолжается сегодня. За это время люди создали различные приспособления для счета. Краткая история их развития может быть описана с помощью основных этапов:

Механическая счетная машина

  1. Ручной. Это самый длительный этап. Он начался в глубокой древности, а завершился в середине XVII столетия. За это время были созданы различные ручные средства для подсчета, например, финикийские фигурки, логарифмическая линейка и т. д.
  2. Механический этап развития. Длился более двух столетий (вторая половина XVII — конец XIX века). Это время характеризуется быстрым развитием науки, что привело к появлению механических счетных машин. Они могли выполнять простые арифметические операции.
  3. Электромеханический. Среди всех этапов эволюции вычислительных устройств он оказался самым коротким. Его длительность составила лишь 60 лет. Начало электромеханическому этапу положило создание первого табулятора (1887), а завершился период в 1946 году. Созданные на этом временном отрезке устройства использовали электрический привод и реле. С их помощью скорость и точность вычислений существенно увеличились.
  4. Электронный этап начался в середине XX столетия и продолжается сегодня. Первые компьютеры имели большие размеры и существенно отличались от современных ПК.

Классификация истории развития вычислительной техники на хронологические этапы является условной. При использовании одного счетного устройства активно появлялись предпосылки для разработки следующего поколения девайсов.

Простейшие устройства

Сначала люди использовали для счета 10 пальцев на своих руках, а результаты вычислений фиксировались на камне, дереве и т. д. Когда появилась письменность, человек разработал различные способы записи цифр и системы счисления:

  • в Индии использовалась десятичная;
  • вавилоняне применяли шестидесятеричную систему.

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

Логарифмическая линейка

В XVII веке математик Непер из Шотландии открыл логарифмы, основываясь на работе шотландского ученого, Гантер (Англия) смог создать логарифмическую линейку. Это устройство используется и сегодня, хотя его первоначальная конструкция претерпела серьезные изменения.

Изобретение Гантера позволяла выполнять следующие операции:

  • находить логарифмы;
  • операции деления и умножения;
  • находить тригонометрические функции;
  • возводить в степень.

Это устройство стало последним приспособлением домеханической эры развития вычислительной техники.

Механические машины

В 1673 году известный ученый Лейбниц изобрел устройство, которое, помимо простейших операций с числами, позволяло извлекать квадратный корень. Чтобы этот ступенчатый вычислитель мог функционировать, ученому пришлось разработать двоичную систему счисления.

Через 2 столетия французский математик Ксавье Тома де Кальмар, основываясь на работах Лейбница, изготовил арифмометр. Эта машина уже могла делить и перемножать числа. Английский ученый Бэббидж через 2 года начал создавать устройство, способное выполнять вычисления с точностью до 20 знаков после запятой. Однако этот проект так и не был завершен.

Впрочем, имя Бэббиджа навсегда вошло в историю развития счетных устройств. Именно этот человек разработал машину, управлять которой можно было программно. В качестве носителя информации использовались перфокарты. С этим же устройством связано и имя первого программиста на планете — Ада Лавлейс. Именно этой женщине удалось создать первые программы для машины Бэббиджа.

Компьютерная техника

Первый аналог компьютера был создан еще в 1887 году американцем Голлеритом. Он разработал табулятор, который представлял собой электромеханическую вычислительную машину. В конструкции устройства присутствовали реле, счетчики и специальный сортировочный ящик. Машина могла сортировать статистические данные, записанные на перфокартах. Компания, созданная Голлеритом, затем превратилась в известную корпорацию IBM.

Также стоит отметить основные изобретения и теории, давшие в будущем толчок к развитию компьютерной техники:

Дифференциальный анализатор (Ванновар Буш из США)

  • 1930 — дифференциальный анализатор (Ванновар Буш из США);
  • 1936 — создана концепция вычислительной машины (Алан Тьюринг из Англии);
  • 1937 — разработана электромеханическая машина для двоичного сложения (Джордж Стибиц из США);
  • 1938 год — сформулированы принципы работы логического устройства вычислительной машины (Клод Шеннон из США).

Начало эры

Во многом активное развитие ЭВМ связано со Второй мировой войной. Правительства некоторых стран-участниц этого конфликта стремились получить стратегическое преимущество перед противником и начали финансировать работы по разработке вычислительных машин. Пионером компьютеростроения стал инженер из Германии Цузе. Им была сконструирована машина Z3, которая могла оперировать числами с плавающей запятой, работая при этом в двоичной системе. В качестве носителя информации в ней использовалась перфолента.

Машина немецкого инженера — Z4

Однако первым функционирующим компьютером следует считать новую машину немецкого инженера — Z4. Он же разработал и первый язык программирования под названием Планкалкюль. В 1942 году 2 американских исследователя (Джон Атанасов и Клиффорд Берри) создали машину, работающую на вакуумных трубках. Она использовала двоичный код и выполняла ряд логических операций.

При поддержке правительства Англии в 1943 году была построена первая ЭВМ — Колосс. Работы над этим устройством велись в условиях максимальной секретности.

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

Работа над архитектурой

Прообраз архитектуры современного ПК был создан в 1945 году американским ученым фон Нейманом. Он первым предложил записывать программу в форме кода непосредственно в память вычислительного устройства. В те времена в США активно работали над созданием первого компьютера, способного решать различные задачи — ENIAC. Эта машина весила порядка 30 тонн, а для ее размещения требовалось около 170 м² площади.

Компьютер ENIAC

В состав конструкции машины входило 18000 ламп. В течение 1 секунды она выполняла 5000 операций сложения либо 300 умножения. На европейском континенте первый универсальный компьютер был создан в СССР. Команда под руководством Сергея Лебедева в 1950 году сконструировала МЭСМ (малая электронная счетная машина). Для ее работы требовалось порядка 6000 ламп, а быстродействие компьютера составляло 50 операций в секунду. Эта же группа ученых через 2 года создала большую электронную счетную машину. Ее быстродействие составляло 10000 операций в секунду.

Создание полупроводниковых приборов

Главным недостатком электронных ламп был невысокий срок службы. Так как эти устройства быстро выходили из строя, обслуживание вычислительной машины существенно усложнялось. Проблема была решена в 1947 году, когда был изобретен транзистор. Полупроводниковые устройства выполняли аналогичные функции, что и лампы, но при этом имели ряд преимуществ:

  • занимали мало места;
  • низкое энергопотребление;
  • более продолжительный срок службы.

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

Машина семейства SYSTEM 360

Появление микросхем дало новый толчок к развитию ЭВМ. В 1964 году корпорация IBM представила первую машину семейства SYSTEM 360. В СССР первый компьютер на микросхемах был разработан в 1972 году, а назывался он ЕС. В его основе лежали разработки американской компании IBM. Одновременно с развитием компьютеров начинает активно совершенствоваться и программное обеспечение (софт). В 1964 году был разработан язык Бейсик, предназначенный для начинающих программистов. В 1969 году появился Паскаль, с помощью которого можно было решать различные прикладные задачи.

Персональные компьютеры

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

Одним из первых массовых компьютеров стала машина, созданная компанией Apple. Произошло это в 1976 году. В разработке ПК принимали участие Стив Возняк и Стив Джобс. Его стоимость составляла лишь 500 долларов. В 1977 году вышла вторая модель этого компьютера — Apple II. Роль этих личностей в развитии компьютерной техники сложно переоценить.

Первый ПК от американского концерна

Быстрое распространение недорогих компьютеров привело к значительному падению прибыли компании IBM. Это факт вызвал беспокойство у ее руководства, и в 1979 году на рынке появился первый ПК от американского концерна. В нем был установлен процессор от Интел 8088, ОЗУ в объеме 64 Кбайт и дисковод для дискет. Специально для него компания Микрософт разработала новую операционную систему, в которой все было понятно даже новичку.

В дальнейшем наблюдалось стремительное развитие компьютерной техники. Новые процессоры начинают создаваться ежегодно и каждое новое поколение превосходит в производительности прошлое. Вся история развития ПК может быть представлена в таблице:

Поколение Элементная база Быстродействие, операций в секунду ПО Применение Примеры
I (1946−1959) Электронные лампы Не более 20000 Машинные языки Расчетные задачи ЭНИАК и МЭСМ
II (1960−1969) Полупроводниковые приборы От 100 до 500 тысяч Алгоритмические языки Экономические, инженерные и научные задачи БЭСМ-4, IBM 701
III (1970−1979) ИМС (интегральные микросхемы) Около 1 миллиона Операционные системы САПР, научные и технические задачи, АСУ ЕС 1060, IBM 360
IV (с 1980 и до настоящего времени) Микропроцессоры и БИС Минимум десятки миллионов Базы данных (БД) АРМ, работа с графикой и текстами Серверы и ПЭВМ
V (с 1990 до настоящего времени) СБИС Более миллиарда Мощные вычислительные системы, искусственный интеллект Все области Ноутбуки, рабочие станции

Сейчас компьютер можно найти практически в каждом доме, а жизнь современного человека сложно представить без ПК.

Начало развития

Согласно истории человек быстро эволюционировал – изобретались новые орудия для охоты, и появлялись инструменты, которые помогали вести сельское хозяйство. В результате развития людское племя начало быстро отвоевывать земли у дикой природы. Количество добычи, как и население племен неуклонно росло. Человеку больше не хватало обозначений один, пара, несколько или много. Это привело к возникновению и созданию первой, самой древней в истории, простейшей формы счисления, называемой унарной (единичной).

В этой форме счисления алфавит состоял из одного символа. Древние люди использовали зарубки на дереве, либо наносили палочки на стены пещер и кости убитых животных. Сколько объектов могли подсчитывать древнейшие племена – неизвестно. Однако, в 1937 году в Вестонице учеными археологами была найдена волчья кость, на которую было поставлено пятьдесят пять насечек. На данный момент это наибольшее значение, которое удалось подтвердить.

история развития унарных систем счисления

Унарная форма используется и в современной истории – я думаю, что каждый из вас видел фильмы, где заключенные ставят палочки на стенах, обозначая количество дней, проведенных в неволе. Также применяется для обучения маленьких детей счету – вспомните про счетные палочки.

Дальнейшее развитие

После того как люди разбрелись по всему миру было предложено много простых форм записи чисел. Однако, все числовые нумерации можно было разделить на две большие ветви – позиционные и непозиционные системы.

Непозиционные

В непозиционных нумерациях, позиция цифры в числе не влияла на её значение. Например, возьмем римскую нотацию. В ней число 11 представляется двумя латинскими буквами X(10) и I(1). Если поставить единицу до десяти, то получится 9. При перестановке знака его значение не поменялось – единица так и осталась единицей. Более подробно разберем римскую, и некоторые другие системы этого типа, которые были популярны в истории.

Римская – первые упоминания о её возникновении и происхождении в истории появились в 500 годах до нашей эры, в древнем Риме. В качестве алфавита для представления чисел использовались латинские буквы – X, I, V и другие. Популярна и сейчас – обозначения веков, групп крови и воинских частей записываются в этой форме записи. Часы с римским циферблатом установлены на здании кремля в Москве.

Римские цифры

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

таблица иероглифов

кириллическая система

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

Позиционные

В позиционном виде имеет роль, какую позицию цифра занимает в числе. Например, возьмем число 10 – здесь единица обозначает количество десятков, а в числе 100 единица представляет количество сотен. С помощью такой формы удобно представлять большие значения и легко выполнять арифметические действия. Именно поэтому большая часть человечества пользуется системами счислений, которые относятся к этой группе.

В истории считается, что позиционное счисление изобрели древние шумеры и жители Вавилона. На его принципах, в пятом веке, индусами была построена десятичная система, которая состояла из индуских цифр (1-9) и нуля, который обозначал отсутствие числа.

Системы счисления: История развития систем счисления

В Европе же её возникновение приписывается купцам, перенявшим её у индийцев. Упоминание об этом в истории датируется десятым веком нашей эры. Однако, широкого развития и популярности вначале она не получила. Большинство европейцев продолжали пользоваться римской нумерацией. Всё изменилось после выхода в свет нескольких трактатов великого итальянского математика Леонардо Фибоначчи в 1200 году.

Фибоначчи внес вклад в историю развития систем счисления

В истории России первые упоминания об арабском алфавите начинаются с четырнадцатого века, а после введения гражданской азбуки в восемнадцатом веке он полностью вытесняет славянские кириллические цифры. Именно в таком виде алфавит дошел до нас.

В мире информатики

Стоит отметить, что системы счисления играют большую роль в развитии и происхождении компьютерной сферы, и цифровой техники. С помощью них ЭВМ представляют информацию в виде удобном для хранения, передачи и обработки. Сейчас наибольшую популярность имеет цифровой код, введенный в историю немецким математиком Вильгельмом Лейбницем в семнадцатом веке.

Системы счисления: История развития систем счисления

Его алфавит состоит всего из двух символов (0 и 1) . Он успешно используется в ЭВМ с 1940 года. Широкое использование обусловлено:

  1. Легкой технической реализацией.
  2. Аппаратура может находиться всего лишь в двух состояниях, а это обеспечивает высокую помехоустойчивость и скорость работы.

Видео урок

Заключение

Ну, вот и всё, теперь вы знаете краткую историю создания и развития систем счисления — от самых древних времен и заканчивая нашими днями. Имеете представление о самых популярных и в курсе, какая из них самая древняя. Я надеюсь, что материал вам понравился. Если у вас возникли вопросы, то задавайте их в комментариях к этому посту.

Читайте также: