Файл: Обзор языков программирования высокого уровня.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 22.04.2023

Просмотров: 237

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Развитие языков программирования происходило быстрыми темпами. С момента появления первого поколения языков программирования в начале 1950-х годов сформировалось пять поколений языков программирования. Последнее поколение было нацелено на то, чтобы «заставить компьютер решить данную задачу без участия программистов» [5.]. Однако, согласно индексу TIOBE Programming Community, который указывает на популярность языков программирования [12.], третье поколение языков программирования все еще широко распространено и активно используется.

В соответствии с [12.], в качестве объектов для изучения в данной работе были выбраны языки C, C++, C#, которые являются одними из наиболее популярных языков программирования на сегодняшний день. Технические характеристики этих трех языков программирования были обобщены и сравнены друг с другом. Один из языков программирования был выбран в качестве приоритетного языка для разработки программного обеспечения, затем были подробно изучены некоторые из наиболее популярных интегрированных сред для создания программ на выбранном языке. Одна из рассмотренных сред была выбрана в качестве основной рабочей среды для разработки программного обеспечения.

Си – язык программирования, который появился в Bell Laboratories в США в 1972 году. Он был написан Деннисом Ритчи. Этот язык был создан для определенной цели, а именно для разработки операционной системы UNIX (которая долго время использовалась на многих компьютерах). После этого Си стал использоваться все большим и большим количеством людей за пределами Bell Laboratories, потому что в то время он более эффективен, чем другие языки программирования. В конце 70-х годов Си занял доминирующее положение языков программирования. Комитет, образованный Американским национальным институтом стандартов (ANSI), одобрил версию Си в 1989 году, известную как ANSI C. Этот стандарт был впоследствии одобрен Международной организацией по стандартизации (ISO) в 1990 году. Язык получил название Си (англ. «C») потому, что его предшественник назывался Би (англ. «B») и был также разработан Кеном Томпсоном из Bell Laboratories.

Во времена появления языка Си большой популярностью пользовались процедурные языки, которые позволяли разбивать задачи на шаги и решать их за шагом, причем возможность определять каждый шаг в процессе решения задачи была предоставлена программисту. Эти языки использовали императивную парадигму, но последовательно выполняемые операторы могли быть собраны в подпрограммы, то есть более крупные целостные единицы кода, с помощью самого языка. Согласно некоторым классификациям, такой подход выделяется в самостоятельную парадигму, получившую название процедурной [2.]. Язык Си – процедурный язык программирования. К процедурным языкам программирования относятся также Паскаль, Алгол, Кобол и Фортран.


Существуют различные преимущества для выбора языка Cи в качестве основного инструмента для разработки [3.]:

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

Си считается наиболее фундаментальным языком, который необходимо изучать, вне зависимости от первого изучаемого языка программирования. Многие языки программирования, такие как Python, C ++, Java и т. д. построены на основе языка Си.

  1. Мощный и эффективный язык

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

  1. Переносимый язык

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

  1. Встроенные функции

В ANSI C всего 32 ключевых слова, имеющих много встроенных функций. Эти функции полезны при создании программы на Си.

  1. Язык структурированного программирования

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

  1. Язык среднего уровня

Си – это язык программирования «среднего» уровня. Это означает, что он поддерживает программирование высокого уровня, а также программирование низкого уровня. Он поддерживает как использование ядер и драйверов в низкоуровневом программировании, так и также системные программные приложения на языке программирования высокого уровня.

  1. Реализация алгоритмов и структур данных

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

  1. Процедурный язык программирования

Поскольку Си использует процедурное программирование, для языка становится легче идентифицировать структуру кода и решить любую проблему на его определенном участке. В процедурном программировании переменные и функции Си объявляются перед использованием.

  1. Динамическое распределение памяти

Си обеспечивает динамическое распределение памяти – это означает, что память можно выделять во время выполнения

К сожалению, программирование на Си также сопряжено с рядом недостатков, которые не позволяют рекомендовать его для использования в некоторых проектах. Вот основные из них [2.]:

  1. Концепция ООП

Си – очень богатый язык, но он не поддерживает концепцию объектно-ориентированного программирования (наследование, полиморфизм, инкапсуляция, абстракция, сокрытие данных)

  1. Проверка во время выполнения

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

  1. Понятие пространства имен

Си не реализует концепцию пространств имен. Пространство имен структурировано как цепочка команд, допускающая повторное использование имен в разных контекстах. Без пространств имен невозможно объявить две переменные с одинаковыми именами.

  1. Отсутствие обработки исключений

Обработка исключений – одна из важнейших функций языков программирования. При компиляции кода могут возникать различные аномалии и ошибки. Обработка исключений позволяет перехватить ошибку на этапе обнаружения и принять соответствующие меры. Однако язык Си не допускает эту важную особенность.

  1. Конструктор или деструктор

Си не имеет конструкторов или деструкторов.

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

  1. Низкий уровень абстракции

Си имеет минимальное сокрытие данных и исключительную видимость, что влияет на безопасность этого языка.

C++ был написан Бьерном Страуструпом в Bell Labs в 1983-1985 гг. C++ является расширением Си. До 1983 года Бьерн Страуструп добавил функции в C и сформировал то, что он назвал «C с классами». Он объединил использование классов и объектно-ориентированных функций из языка Simula с мощью и эффективностью языка Си [11.].

Преимущества C++ [3.]:

  1. Портативность

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

  1. Объектно-ориентированность и мультпарадигменность

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


C++ является языком программирования с несколькими парадигмами. Термин «парадигма» относится к стилю программирования. Парадигмой программирования называют используемый различными языками подход к программированию, то есть, проще говоря, набор идей и понятий, определяющих стиль написания программ. Среди основных парадигм программирования выделяют объектно-ориентированную, императивную, декларативную, структурную, функциональную и логическую. Большинство языков программирования, активно используемых в современной разработке прикладных программ, являются мультипарадигменными.

  1. Манипуляции низкого уровня

Поскольку C++ тесно связан с Си, который является процедурным языком, тесно связанным с машинным языком, C++ допускает низкоуровневое манипулирование данными на определенном уровне. Встроенные системы и компилятор создаются с помощью C++.

  1. Управление памятью

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

  1. Поддержка большого сообщества

C++ имеет большое сообщество, которое поддерживает его, предоставляя онлайн-курсы и лекции, как платные, так и бесплатные. С точки зрения статистики, C++ является 6-м наиболее часто используемым тегом на StackOverflow и GitHub.

  1. Совместимость с Си

C++ в значительной степени совместим с C. Практически каждая скомпилированная и отлаженная программа на языке Си является допустимой программой на C++. В зависимости от используемого компилятора каждая программа C++ может запускаться в файле с расширением .cpp.

  1. Масштабируемость

Масштабируемость относится к способности программы масштабироваться. Это означает, что программа на C++ способна работать как в небольших масштабах, так и на больших объемах данных. Также можно создавать приложения, которые являются ресурсоемкими.

  1. Производительность

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


  1. Карьерные перспективы

Для разработки популярных видеоигр, скорее всего, придется использовать C++. Многие мобильные бестселлеры также были созданы с Cocos2d-x, который является свободно распространяемым кроссплатформенным игровым движком с открытым исходным кодом. Игры Cocos2d-x разрабатываются на C++, хотя Cocos2d теперь также поддерживает другие языки.

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

  1. Использование указателей

Указатели в C / C++ довольно сложны для понимания и занимают много памяти. Неправильное использование указателей, известное как «висячие указатели», может привести к сбою системы или неправильному поведению системы.

  1. Проблема безопасности

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

  1. Отсутствие сборщика мусора

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

Подводя итоги, можно сделать вывод о том, что язык C++ в качестве основного инструмента для разработки программного приложения является подходящим выбором для опытных разработчиков [7.].

C# был разработан в качестве конкурента языка Java; подразумевалось, что он будет чистым объектно-ориентированным языком программирования [9.]. C# дебютировал в 2000 году на конференции профессиональных разработчиков, где основным докладчиком был основатель Microsoft Билл Гейтс. В то же время была представлена среда разработки Visual Studio .NET.

Высокоуровневый язык программирования C# является флагманом разработки от Microsoft. Можно выделить следующие плюсы языка, отличающие его от конкурентов:

  1. Доступность

Если для Java необходимо отдельно устанавливать виртуальную машину, то .NET-разработка требует только .NET-платформы, которая есть на большинстве компьютеров с ОС Windows. Соответственно, оптимизация исполняемого кода ложится на платформу, что облегчает жизнь разработчика.

  1. Универсальность

Приложения C# функционируют на всех компьютерах с ОС Windows – притом можно указывать версию .NET Framework для работы с более ранними версиями. Среда разработки Xamarin также распространяет C# на Unix-системы, C# отныне является кроссплатформенным языком.