Ритчи не выдумывал Си просто из головы, прообразом послужил язык Би, разработанный Томпсоном. Язык Си был разработан как инструмент для программистов-практиков. В соответствии с этим главной целью его автора было создание удобного и полезного во всех отношениях языка.
Язык Си задумывался как язык промежуточный между языками высокого и низкого уровня. От компилятора пытались добиться производительности, близкой к производительности Ассемблера, но в то же время сохранить возможность переноса программ между компьютерными платформами, характерную для языков высокого уровня. Хотя язык требует от программистов высокой дисциплины, он не строг в формальных претензиях и допускает краткие формулировки.
Си – современный язык. Он включает в себя те управляющие конструкции, которые рекомендованы теорией и практикой программирования.
Си – эффективный язык. Его структура позволяет наилучшим образом использовать возможности современных персональных компьютеров. Программирование на этом языке отличается компактностью и быстротой исполнения.
Си – переносимый и мобильный язык.
Си – мощный и гибкий язык. Большая часть операционной системы Unix, компиляторы и интерпретаторы языков Фортран, Паскаль и Бейсик написаны именно с его помощью.
Си – удобный язык. Он достаточно структурирован, чтобы поддерживать хороший стиль программирования и вместе с тем не связан жесткими ограничениями.
Необычайную популярность язык Си приобрел благодаря тому, что он, как и Паскаль, является языком структурного программирования, но позволяет генерировать более производительный и компактный рабочий код.
Характерным недостатком языка стала относительно высокая сложность изучения по сравнению с языками Паскаль и Бейсик.
Язык Си++ был разработан в 1980 г. Бьерном Страуструпом в компании BellLabs.
Си++ - компилируемый язык программирования. Он позволяет создавать программы более компактные и эффективные, чем, например Паскаль, но его изучение сложнее. Поэтому Си++ обычно изучают в специализированных учебных заведениях, в которых готовят программистов.
Сложность изучения языка Си++ во многом связана с тем, что в самом языке отсутствуют средства для управления вводом и выводом информации. И это понятно, поскольку эти средства у каждой модели компьютера свои, а Си++ является абстрактным языком, не ориентированным на конкретную модель компьютера. Поэтому часто язык изучают не на конкретных примерах, а на абстрактных теоретических конструкциях, что крайне не удобно для начинающих.
Очевидно, что очень многое Си++ позаимствовал у языка Си. Эти заимствования обеспечили Си++ мощными средствами низкого уровня, позволяющими решать сложные задачи системного программирования. Но Си++ отличается от Си в первую очередь разной степенью внимания к типам и структурам данных. Это связано с появлением понятий класса, производного класса и виртуальной функции. Это дает Си++ более эффективные возможности для контроля типов данных и обеспечивает модульность программы.
В отличие от традиционных структур Си и Паскаля, в Си++ членами класса являются не только данные, но и функции. Функции имеют привилегированный доступ к данным внутри объектов этого класса и обеспечивают интерфейс между этими объектами и остальной программой. При дальнейшей работе совершенно не обязательно помнить о внутренней структуре класса и механизме работы встроенной функции. В этом смысле класс подобен электрическому прибору: мало кто знает о его устройстве, но все знают, как им пользоваться.
Язык Си++ является средством объектного программирования, новейшей методики проектирования и реализации программ, которая в текущем десятилетии, скорее всего, заменит традиционное процедурное программирование.
В последнее время появились среды быстрого проектирования на Си++, которые предоставляют готовые компоненты для ввода и вывода информации и поддерживают концепцию виртуального проектирования приложений Windows. Это значительно упростило изучение языка.
1. Под редакцией Конюховского П.В. и Колесова Д.Н., «Информатика», Санкт-Петербург: изд-во «Питер», 2000.
2. К.Г.Скрипкин, «Экономическая эффективность информационных систем», Москва: изд-во «ДМК-Пресс», 2002.
3. Сухомлин В.А., «Введение в анализ информационных технологий» Москва: изд-во «Горячая линия – Телеком», 2003.