Главная страница
Навигация по странице:

  • Волков Никита Александрович Руководитель проекта: Крылов Дмитрий Александрович Введение

  • История развития C++.

  • Сравнительный анализ языков программирования. C++

  • Источники https://ru.wikipedia.org/wiki/C%2B%2B

  • Развитие_Языка_программирования. Развитие языка программирования C


    Скачать 30.52 Kb.
    НазваниеРазвитие языка программирования C
    Дата25.05.2022
    Размер30.52 Kb.
    Формат файлаdocx
    Имя файлаРазвитие_Языка_программирования.docx
    ТипДокументы
    #549104

    Проект

    По предмету «Основы Проектной Деятельности»

    На тему «Развитие языка программирования C++»

    Выполнял работу:

    Волков Никита Александрович

    Руководитель проекта:

    Крылов Дмитрий Александрович

    Введение

      Программирование - это процесс создания (написания) программ для компьютера. На самом деле программы можно писать не только для компьютера, но и для других устройств, у которых есть микропроцессорное устройство, способное производить математические вычисления и выполнять логические операции, если выполняется какое-либо условие, то делаем набор действий, иначе делаем набор альтернативных действий. Программирование основывается на специальных алгоритмических языках, с помощью которых и задаются инструкции компьютеру (вернее, его процессору), законченный набор которых называется программой. Алгоритмических языков в данное время имеется большое множество, каждый из которых служит для решения своих задач. В то же время есть и языки общего назначения, на которых пишется большое количество современных приложений для компьютера. К этим языкам можно отнести такие, как C++, Java, C#, Delphi и другие. Программы, которые мы пишем на алгоритмических языках, непосредственно не понятны компьютеру (процессору), т.к. на самом низком уровне он может воспринимать и понимать лишь два числа: ноль и единицу. Иными словами, процессор оперирует лишь значениями и командами в двоичном коде. Для того чтобы текст составленной программы смог выполняться компьютером, его нужно преобразовать к понятному компьютеру формату. Для этой цели служат, так называемые трансляторы, у которых в свою очередь есть тоже две разновидности: компиляторы и интерпретаторы. Разница между ними в том, что компиляторы полностью преобразуют код к формату, понятному компьютеру, а затем уже он выполняется. Интерпретаторы построчно преобразуют код к понятному компьютеру формату, которые он так же построчно и выполняет. Вторым способом выполнение программы будет происходить несколько медленнее, нежели первым. В то же время программы, написанные на интерпретируемых языках программирования, могут быть легко перенесены в другую программную среду.
    C++ компилируемый язык программирования общего назначения, сочетает свойства как высокоуровневых, так и низкоуровневых языков программирования. В сравнении с его предшественником, языком программирования Cи, наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования. Название «язык программирования C++» происходит от языка программирования C, в котором унарный оператор ++ обозначает инкремент переменной.
    Цель

    Цель работы заключается в исследовании истории языка

    Программирования С++ и сравнение его с другими языками программирования.

    Задачи:

    1. Изучить историю языка программирования С++

    2. Провести сравнительный анализ языка программирования C++ с другими языками программирования.

    История развития C++.

    Язык возник в начале 1980-х годов, когда сотрудник фирмы «Bell Labs» Бьёрн Страуструп придумал ряд усовершенствований к языку C под собственные нужды. Когда в конце 1970-х годов Страуструп начал работать в «Bell Labs» над задачами теории очередей (в приложении к моделированию телефонных вызовов), он обнаружил, что попытки применения существующих в то время языков моделирования оказываются неэффективными, а применение высокоэффективных машинных языков слишком сложно из-за их ограниченной выразительности. Так, язык Симула имеет такие возможности, которые были бы очень полезны для разработки большого программного обеспечения, но работает слишком медленно, а язык BCPL достаточно быстр, но слишком близок к языкам низкого уровня и не подходит для разработки большого программного обеспечения.
     

    Вспомнив опыт своей диссертации, Страуструп решил дополнить язык C (преемник BCPL) возможностями, имеющимися в языке Симула. Язык C, будучи базовым языком системы UNIX, на которой работали компьютеры Bell, является быстрым, многофункциональным и переносимым. Страуструп добавил к нему возможность работы с классами и объектами. В результате практические задачи моделирования оказались доступными для решения как с точки зрения времени разработки (благодаря использованию Симула-подобных классов), так и с точки зрения времени вычислений (благодаря быстродействию C). В первую очередь в C были добавлены классы (с инкапсуляцией), наследование классов, строгая проверка типов, inline-функции и аргументы по умолчанию. Ранние версии языка, первоначально именовавшегося «C with classes» («Си с классами»), стали доступны с 1980 года.

     

    Разрабатывая C с классами, Страуструп написал программу cfront[en] — транслятор, перерабатывающий исходный код C с классами в исходный код простого C. Это позволило работать над новым языком и использовать его на практике, применяя уже имеющуюся в UNIX инфраструктуру для разработки на C. Новый язык, неожиданно для автора, приобрёл большую популярность среди коллег и вскоре Страуструп уже не мог лично поддерживать его, отвечая на тысячи вопросов.

    При создании C++ Бьёрн Страуструп хотел
                         Получить универсальный язык со статическими типами данных, эффективностью и переносимостью языка C.

                         Непосредственно и всесторонне поддерживать множество стилей программирования, в том числе процедурное программирование, абстракцию данных, объектно-ориентированное программирование и обобщённое программирование.

                         Дать программисту свободу выбора, даже если это даст ему возможность выбирать неправильно.

                         Максимально сохранить совместимость с C, тем самым делая возможным лёгкий переход от программирования на C.

    Сравнительный анализ языков программирования.

    C++

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

    Достоинства:

    Высокая совместимость с языком С, позволяющая использовать весь существующий С-код.

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

    Имеется возможность работы на низком уровне с памятью, адресами, портами.

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

    Кроссплатформенность. Доступны компиляторы для большого количества платформ, на языке C++ разрабатывают программы для самых различных платформ и систем.

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

    Недостатки:

    Синтаксис, провоцирующий ошибки:

    Препроцессор, унаследованный от С, очень примитивен.

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

    C#

    C# нельзя рассматривать только как язык, это часть большой системы, которая включает в себя ОС Windows, среду разработки Visual Studio (и другие инструменты), ну и, конечно, саму Microsoft, которая обеспечивает поддержку этого языка. C# будет существовать и развиваться, пока существует Microsoft и пока люди пользуются Windows, а это будет ещё очень и очень долго.

    Достоинства:

    • легкость обучения;

    • много синтаксического сахара. Синтаксический сахар — это такие конструкции, которые созданы для облегчения написания и понимания кода.

    • возможность использовать его в написании как десктопных программ, так и мобильных приложений, а также сайтов.

    Минусы:

    • ориентированность, в основном, только на .NET (на Windows платформу);

    • бесплатность только для небольших компаний и программистов одиночек.

    Java

    Язык Java — полностью объектно-ориентированный язык. Сказанное означает, что для написания даже самой маленькой и самой простой программы придется описать по меньшей мере один класс.[3]

    Достоинства:

    • Переносимость. Программы, написанные на языке Java, после однократной трансляции в байт-код могут быть исполнены на любой платформе, для которой реализована виртуальная Java-машина. Наиболее эффективно возможности реального компьютера может использовать только программа, написанная с использованием «родного» машинного кода.

    • Безопасность. Функционирование программы полностью определяется (и ограничивается) виртуальной Java-машиной. Отсутствуют указатели и другие механизмы для непосредственной работы с физической памятью и прочим аппаратным обеспечением компьютера. Дополнительные ограничения снижают возможность написания эффективно работающих Java-программ.

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

    Недостатки языка:

    • Язык не полностью объектно-ориентирован: Язык не имеет таких свойств полностью объектно-ориентированного языка, как индивидуальные переменные, множественное наследование и.т.д.

    • Соответствие корпоративным требованиям: Язык довольно популярен в мире программ с открытым кодом и технически превосходит многие коммерческие аналоги. Однако ему не хватает некоторых важных, с точки зрения корпоративной среды-особенностей. Это означает, что если мы захотим использовать PHP в корпорации, то это либо вообще не удастся сделать, либо потребуется значительно больше дополнительных программных средств, чем при использовании Java или C++.

    Python

    Python является интерпретируемым, изначально объектно-ориентированным языком программирования. Он чрезвычайно прост и содержит небольшое число ключевых слов, вместе с тем очень гибок и выразителен.

    Достоинства языка

    • Кросплатформенность. Несомненным достоинством является то, что интерпретатор Python реализован практически на всех платформах и операционных системах.

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

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

    Numerical Python - расширенные математические возможности, такие как манипуляции с целыми векторами и матрицами;

    Tkinter - построение приложений с использованием графического пользовательского интерфейса (GUI) на основе широко распространенного на X-Windows Tk-интерфейса;

    Недостатки языка.

    • Наверное единственным недостатком, является сравнительно невысокая скорость выполнения Python-программы, что обусловлено ее интерпретируемостью.

     Заключение.

    В ходе работы была рассказана история развития языка программирования C++, так же был проведён сравнительный анализ четырёх языков программирования (Python, Java, C#, C++).

      Основной целью проекта было рассказать об истории развития языка программирования C++, данная цель была достигнута. Задачи проекта так же были достигнуты в ходе работы.

    Источники


      1. https://ru.wikipedia.org/wiki/C%2B%2B

      2. https://otvet.mail.ru/

      3. http://cppstudio.com/post/1984/

      4. https://programmers.fandom.com/ru/wiki/C%2B%2B 

      5. https://www.evkova.org/kursovye-raboty/obzor-yazyikov-programmirovaniya-vyisokogo-urovnya-programmirovanie

      6. https://medium.com/nuances-of-programming/c-и-java-сравнительный-анализ-5e8f822e37cc


    написать администратору сайта