Почему язык программирования C называется C? А что случилось с Д?

Почему язык программирования C называется C? А что случилось с Д?


Возможно, вы не везде увидите язык программирования C, но он незримо присутствует повсюду. Когда вы заводите машину, ее материнская плата, вероятно, использует C для связи с различными компонентами. Когда вы используете свой телефон, будь то iOS или Android, ядро ​​операционной системы написано на C. Вы не можете unc C.

Хорошо. Плохой каламбур. Но что означает буква С? Когда появился язык программирования C, он произвел революцию в мире. Но почему он называется С?

Однажды в Bell Labs…

Блестящий ум и большой бюджет

Почему язык программирования C называется C? А что случилось с Д?
Викимедиа – без атрибута

Чтобы ответить на этот вопрос, нам придется вернуться в прошлое и взглянуть на простое, но массивное здание, расположенное в Нью-Джерси. Это здание — Bell Labs. Основанная Александром Грэмом Беллом (звучит знакомо?) и принадлежавшая в то время компании AT&T, которая фактически была монополией, поддерживаемой государством, Bell Labs располагала большим бюджетом и свободой экспериментировать и возиться с идеями.

Этот практический подход привел к изобретению транзистора (именно поэтому компьютеры больше не имеют размеров городских кварталов), лазеров и солнечных батарей, и это лишь некоторые из них. Язык C также является продуктом знаменитой Bell Labs. Но до появления С было Б.

был б

B для лучшего bcpl

Оригинальная панель шрифтов PDP-11 70
Викимедиа – без атрибута

Оригинальная передняя панель PDP-11/70

В 1969 году Кен Томпсон, блестящий и печально известный независимый исследователь из Bell Labs, работал над масштабным, перегруженным проектом операционной системы под названием Multics. Когда Bell Labs прекратила выпуск Multics, Томпсон обнаружил, что у него мало свободного времени и возникла очень конкретная проблема: он хотел поиграть в игру, которую сам написал. космическое путешествие На старом, пыльном компьютере DEC PDP-7, стоявшем в коридоре.

Компьютер DEC PDP-7
Викимедиа – без атрибута

PDP-7 (изображение справа) устарел даже по стандартам 1960-х годов. У него была небольшая память (около 8 килобайт). Чтобы запускать свои игры на PDP-7, Томпсон с нуля создал новую операционную систему. Именно здесь родился Unix. Но написание Unix на ассемблерном коде (который представляет собой сырой, примитивный язык, который общается с машинами, используя 1 и 0) было кошмаром. Томпсону нужен был язык высокого уровня, более близкий к человеческой логике.

В то время соответствующим языком программирования высокого уровня был BCPL (сокращение от «Базовый комбинированный язык программирования»). BCPL был слишком большим для ограниченного аппаратного обеспечения PDP-7, поэтому Томпсон удалил «Basic» из BCPL, сократил его до основных требований и создал новый язык. Он назвал этот новый язык B. Он был быстрым, экономичным и стал первым шагом на пути к современному программированию.

Но в конечном итоге Б должен был умереть. Это прекрасно работало для PDP-7, но когда Bell Labs перешла на более сложную PDP-11, бестиповый язык, такой как B, не подходил для этого. Это было неэффективно и заставило новый дорогой PDP-11 работать намного медленнее, чем его потенциал.

C становится новым B

Б получил обновление

Кен Томпсон и Деннис Ритчи работают над UNIX
Викимедиа – без атрибута

Кен Томпсон и Деннис Ритчи работают над UNIX

Это подводит нас к близкому другу и соратнику Томпсона Деннису Ритчи. Ритчи понял, что для того, чтобы Unix смогла выжить на новом оборудовании, язык, на котором она была написана, должен развиваться, поэтому он потратил два года на работу над B, чтобы переработать его.

Его изобретение положило начало системе типов. Он создал тип char для символов и тип int для целых чисел. Теперь программист может сообщить компьютеру, что это поле предназначено для одного символа, поэтому не тратьте на него лишнее место. Это позволило программному обеспечению вписаться в аппаратное обеспечение.

Кен Томпсон и Деннис Ритчи, около 1973 года.
Викимедиа – без атрибута

Какое-то время Ричи и Томпсон называли проект просто «New B». Но когда язык стал более отчетливым и мощным, они поняли, что он заслуживает собственной индивидуальности. Поскольку она была преемницей буквы B, они посмотрели на следующую букву алфавита и назвали ее C.

Затем, в 1973 году, Ричи и Томпсон переписали ядро ​​операционной системы Unix на C. До этого операционные системы всегда писались на ассемблере, поскольку все знали, что языки высокого уровня слишком медленны. C доказал, что все ошибались. Это было быстро, красиво и, самое главное, портативно.

…а потом появился Д

или сделал?

Оригинальная передняя панель PDP 11 20
Викимедиа – без атрибута

PDP-11 был первым компьютером, на котором работали C и C++.

К концу 1970-х годов C был бесспорным королем. Но со временем, когда программы стали более сложными, они начали показывать свой возраст. Бьёрн Страуструп, другой исследователь из Bell Labs, был поклонником скорости C, но хотел добавить концепцию под названием «объектно-ориентированное программирование». Для дальнейшего упрощения он хотел позволить программисту группировать данные и входить в систему в «объекты», например объект «пользователь», который знает его или ее имя и пароль.

Бьерн Страуструп
Викимедиа – без атрибута

Когда пришло время Страуструпа (Увидите его в кабинете слева.) Чтобы назвать ваше творение, логичным следующим шагом было бы D. Но люди в Bell Labs любили крылатые фразы. Поэтому Маскетти, коллега Страуструпа, предложил название C++. По крайней мере, для них это была восхитительно глупая шутка. Это указывало на то, что это язык C, но с увеличением на единицу. Это был С, но лучше.

Этот выбор названия был настолько привлекательным, что слот D в алфавитном порядке оставался вакантным почти двадцать лет. C++ стал стандартом для всего: от видеоигр до веб-браузеров, и мир просто пошел дальше. Если вы не знаете, на языке Си, чтобы увеличить число на единицу, вы используете специальную команду: ++. Если у вас есть переменная x и ты пишешь x++становится x + 1.

на самом деле есть д

это произошло десятилетия спустя

Уолтер Брайт — создатель языка программирования D.
общедоступное достояние – без атрибута

Уолтер Брайт, создатель языка программирования D

Лишь в 2001 году опытный инженер-компилятор Уолтер Брайт наконец решил заявить права на это письмо. Брайт потратил годы на создание инструментов C++ и был разочарован тем, насколько «загроможденным» и «небезопасным» стал язык, поскольку он был вынужден оставаться совместимым с устаревшим кодом 70-х годов.

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

Но, несмотря на свое достижение, Ди столкнулся с классической проблемой. К тому времени, когда прибыл Ди, мир уже изменился. Корпоративные компании использовали Java и C#, а мир все еще был прочно заперт на C и C++. Несколько лет спустя появился язык под названием Rust, в котором большое внимание уделялось безопасности памяти (принципы, аналогичные D), и ему удалось привлечь внимание технического мира так, как никогда не удавалось D, – и фактически сделать D неактуальным.

Сегодня D существует как весьма уважаемый нишевый язык. На самом деле его используют такие компании, как Netflix и eBay, для конкретных высокопроизводительных задач. Это великий язык, но он никогда не сможет стать королем.

Разъем USB-C (2) рядом с портом USB-C телефона.

Как на самом деле работает обратимость USB-C

Реверсивность не означает идентичность.

Была ли пятёрка?

да, но… не совсем

Установка Burroughs B5500 в офисе
Викимедиа – без атрибута

Burroughs B5500, возможно, является самым важным пользователем АЛГОЛА.

Хорошо. Итак, теперь мы знаем, что C есть C, потому что оно происходит от B. Но существовал ли A, который появился до B? Ответ — да, но не так, как вы думаете. Видите ли, до этого не было официальных языков. Да, C стал C, потому что он появился после B. Но B стал B потому, что это была первая буква BCPL, а не потому, что он появился после A.

Обложка руководства по языку Алгола 1965 года.
Викимедиа – без атрибута

Однако, если мы правильно проследим происхождение, история начинается еще до Bell Labs. Задолго до появления B и C существовал АЛГОЛ. АЛГОЛ, сокращение от «Алгоритмический язык», родился в 1958 году. Он был продуктом не какого-то одного человека, а комитета европейских и американских ученых, которые хотели найти универсальный способ описания математических процессов. Если мы ищем дедушку современного программирования – настоящую букву «А» на вершине пирамиды – это АЛГОЛ.

Язык под названием CPL (комбинированный язык программирования) был создан на основе идей АЛГОЛА, но он был невероятно сложен — слишком сложен для оборудования того времени. Это привело к созданию «Базовой» версии CPL, получившей соответствующее название BCPL. И здесь начинается наша уникальная история Bell Labs.

Сейчас, в 2026 году, мы все еще живем в эпоху C. Даже модные новые языки, такие как Python или JavaScript, обычно интерпретируются программами, которые сами были написаны на C. C по-прежнему остается основой. Язык родился в лаборатории Нью-Джерси, чтобы помочь человеку играть в космические игры на компьютере, который по сути представлял собой гигантский калькулятор.

Leave a Reply

Your email address will not be published. Required fields are marked *