Развитие_Языка_программирования. Развитие языка программирования C
Скачать 30.52 Kb.
|
Проект По предмету «Основы Проектной Деятельности» На тему «Развитие языка программирования C++» Выполнял работу: Волков Никита Александрович Руководитель проекта: Крылов Дмитрий Александрович Введение Программирование - это процесс создания (написания) программ для компьютера. На самом деле программы можно писать не только для компьютера, но и для других устройств, у которых есть микропроцессорное устройство, способное производить математические вычисления и выполнять логические операции, если выполняется какое-либо условие, то делаем набор действий, иначе делаем набор альтернативных действий. Программирование основывается на специальных алгоритмических языках, с помощью которых и задаются инструкции компьютеру (вернее, его процессору), законченный набор которых называется программой. Алгоритмических языков в данное время имеется большое множество, каждый из которых служит для решения своих задач. В то же время есть и языки общего назначения, на которых пишется большое количество современных приложений для компьютера. К этим языкам можно отнести такие, как C++, Java, C#, Delphi и другие. Программы, которые мы пишем на алгоритмических языках, непосредственно не понятны компьютеру (процессору), т.к. на самом низком уровне он может воспринимать и понимать лишь два числа: ноль и единицу. Иными словами, процессор оперирует лишь значениями и командами в двоичном коде. Для того чтобы текст составленной программы смог выполняться компьютером, его нужно преобразовать к понятному компьютеру формату. Для этой цели служат, так называемые трансляторы, у которых в свою очередь есть тоже две разновидности: компиляторы и интерпретаторы. Разница между ними в том, что компиляторы полностью преобразуют код к формату, понятному компьютеру, а затем уже он выполняется. Интерпретаторы построчно преобразуют код к понятному компьютеру формату, которые он так же построчно и выполняет. Вторым способом выполнение программы будет происходить несколько медленнее, нежели первым. В то же время программы, написанные на интерпретируемых языках программирования, могут быть легко перенесены в другую программную среду. C++ компилируемый язык программирования общего назначения, сочетает свойства как высокоуровневых, так и низкоуровневых языков программирования. В сравнении с его предшественником, языком программирования Cи, наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования. Название «язык программирования C++» происходит от языка программирования C, в котором унарный оператор ++ обозначает инкремент переменной. Цель Цель работы заключается в исследовании истории языка Программирования С++ и сравнение его с другими языками программирования. Задачи: Изучить историю языка программирования С++ Провести сравнительный анализ языка программирования 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++, данная цель была достигнута. Задачи проекта так же были достигнуты в ходе работы. Источники https://ru.wikipedia.org/wiki/C%2B%2B https://otvet.mail.ru/ http://cppstudio.com/post/1984/ https://programmers.fandom.com/ru/wiki/C%2B%2B https://www.evkova.org/kursovye-raboty/obzor-yazyikov-programmirovaniya-vyisokogo-urovnya-programmirovanie https://medium.com/nuances-of-programming/c-и-java-сравнительный-анализ-5e8f822e37cc |