Немного истории создания языка Си

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

Авторам этого языка (имеется ввиду язык Си), которые работали под Unix, писали на Ассемблере, им захотелось какого-то общего языка. Брайан Керниган и Денис Ритчи попытались сделать какой-то инструмент для себя любимых. Сделали язык A, B, потом C. Ну а дальне не пришлось перебирать алфавит — вроде как удобно, вроде как получилось. Язык Си объединил в себе черты языков низкого уровня и языков высокого уровня. Очень часто пишут в литературе язык «среднего» уровня не потому что чего-то нет, потому что есть все вместе. Например, вы можете так же, как и в других языках создать массив одной строкой, так же вы можете делать ассемблерные вставки.

Несмотря на универсальность, этот инструмент не будет всегда идеален, всегда есть какой-то чуть лучше, но на сегодняшний день язык стабильно на втором месте, многие десятилетия. Все конкуренты этого языка в основном С++ и Java. Но когда надо выжать всю мощь из компьютера – то это Си. Подумайте на чем пишут операционные системы, например, Windows или Linux. Родным, как правило, всегда являлся для них язык Си. Когда вам надо писать, например, на уровне ядра, драйверов, это язык Си.

Были приняты определённые стандарты. Зачем одни нужны спросите вы? По сути, стандарт не для нас, он не очень нам нужен. Вот представьте, кто-то написал операционную систему, в ней нужно сделать поддержку языков программирования, для этого нужно сделать компилятор (перевод текста в машинный код) и для того, чтобы все писали одинаковый компилятор нужен стандарт. Если его не будет, то на разных системах будет «своя версия языка Си». И тогда мы получим достаточно серьезную проблему, например, вы напишете исходник, принесете его на одну ОС, вы писали, отлаживали – работает. Принесете на другую, а он скажет – «да я не знаю, что это такое». Вот для этого нужен стандарт. Конечно все люди – это люди и есть ошибки, есть некоторые отклонения от стандарта, но это должно быть по минимуму.

Хотелось бы вам сразу сказать, что С++, C#, Java – Си-подобные языки, т.е. внешний вид кода такой как в Си. Те авторы, кто создавал эти языки, сохранили внешний вид от языка Си, а идеологию изменили.

Добавить комментарий

Ваш адрес email не будет опубликован.