Файл: Современные языки программирования (История возникновения языков программирования).pdf

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

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

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

Добавлен: 14.03.2024

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

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

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

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

Рисунок 7. Пример программы на языке Cobol.

На заре компьютеризации, машинный язык был единственным языком, большего человек к тому времени не придумал. Языки низкого уровня мало похожи на привычный человеку язык. Большие, громоздкие программы на таких языках пишутся редко. Зато если программа будет написана на таком языке, то она будет работать быстро, занимая маленький объем и допуская минимальное количество ошибок. Чем ниже и ближе к машинному уровень языка, тем меньше и конкретнее задачи, которые ставятся перед каждой командой.

Для улучшения работы были созданы языки высокого уровня которые стали своеобразным связующим мостом между человеком и машинным языком компьютера. Языки высокого уровня работают через трансляционные программы, которые вводят «исходный код», и в конечном итоге заставляет компьютер выполнять соответствующие команды, которые даются на машинном языке.

Си — компилируемый статически типизированный язык программирования общего назначения, разработанный в 1969—1973 годах сотрудником Bell Labs Деннисом Ритчи как развитие языка Би. Первоначально был разработан для реализации операционной системы UNIX, но впоследствии был перенесён на множество других платформ. Согласно дизайну языка, его конструкции близко сопоставляются типичным машинным инструкциям, благодаря чему он нашёл применение в проектах, для которых был свойственен язык ассемблера, в том числе как в операционных системах, так и в различном прикладном программном обеспечении для множества устройств — от суперкомпьютеров до встраиваемых систем. Язык программирования Си оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для таких языков программирования, как C++, C#, Java и Objective-C.

Язык был разработан в лабораториях Bell Labs в период с 1969 по 1973 годы. Согласно Ритчи, самый активный период творчества пришёлся на 1972 год. Язык назвали «Си» (C — третья буква английского алфавита), потому что многие его особенности берут начало от старого языка «Би» (B — вторая буква английского алфавита). Си имеет следующие основные особенности:

  1. простую языковую базу, из которой вынесены в библиотеки многие существенные возможности, вроде математических функций или функций управления файлами;
  2. ориентацию на процедурное программирование, обеспечивающую удобство применения структурного стиля программирования;
  3. систему типов, предохраняющую от бессмысленных операций;
  4. использование препроцессора для, например, определения макросов и включения файлов с исходным кодом;
  5. непосредственный доступ к памяти компьютера через использование указателей;
  6. минимальное число ключевых слов;
  7. передачу параметров в функцию по значению, а не по ссылке (при этом передача по ссылке эмулируется с помощью указателей);указатели на функции и статические переменные;
  8. области действия имён; структуры и объединения — определяемые пользователем собирательные типы данных, которыми можно манипулировать как одним целым.

В то же время в Си отсутствуют:

  1. вложенные функции;
  2. сопрограммы;
  3. средства автоматического управления памятью;
  4. средства объектно-ориентированного программирования;
  5. средства функционального программирования.

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

Рисунок 8. Пример кода на языке С.

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

Подводя итог данному периоду развития языков программирования, можно сделать вывод, что языки программирования высокого уровня (FORTRAN, ALGOL, LISP, COBOL и более поздний С) не похожи на язык ассемблера. Языки высокого уровня разработаны специально для того, чтобы можно было иметь дело непосредственно с задачей, решаемой программой. В этом качестве они иногда называются процедурными языками, поскольку описывают процедуру, используемую для решения задачи. Языки высокого уровня машинонезависимы, программы на языке ассемблера непосредственно относятся к той машине, на которой они должны выполняться. Достоинства языков программирования высокого уровня:

  1. Алфавит языка значительно шире машинного, что делает его гораздо более выразительным и существенно повышает наглядность и понятность текста;
  2. Набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается из соображений удобства формулирования алгоритмов решения задач определенного класса;
  3. Конструкции операторов задаются в удобном для человека виде;
  4. Поддерживается широкий набор типов данных.

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

Глава 2. Современные языки программирования.

Рассматривая тему современных языков программирования, возникает самый главный вопрос, как выбрать «современные» языки. На сегодняшний момент существует более 600 языков программирования, каждый из которых ориентирован на конкретные задачи. Выбирая языки для изучения данной курсовой работы были выбраны самые востребованные на рынке.

Самый старый из выбранных языков, является язык программирования С++. Разработанный в далеком 1983, этот язык программирования остается популярным и на сегодняшний день. В момент создания С++ пришел на смену классического языка С, и сразу же завоевал огромнейшую популярность у программистов всего мира. Microsoft Windows и Google Chrome являются самыми известными примерами проектов, созданных на С++. Этот список могут пополнить проекты Adobe и Amazon’a. Данный язык программирования остаётся востребованным и по сей день, поскольку имеет мощный инструментарий, который может быть адаптированы в различных сферах, таких как финансы, банки, игры, связь, электронные платежные системы, розничная торговля и многое другое. Знание С++ позволяет с легкостью писать игры и сложные коммерческие системы наряду с простыми приложениями. Он является одним из самых мощных языков программирования, который предоставляет немало полезных функций. Остается вопрос, почему это происходит?  C++ успешен, т.к., вместо попытки предложить машинную модель, Бьярн начал с C и попытался развивать C далее, предоставляя больше техник обобщённого программирования, но в контексте рамок этой машинной модели. Машинная модель C очень проста. У вас есть память, где находятся сущности. У вас есть указатели на последовательные элементы памяти. Это очень просто для понимания. C++ сохраняет данную модель, но делает сущности, располагающиеся в памяти, более исчерпывающими, чем в машине C, т.к. C имеет ограниченный набор типов данных. А именно, C имеет структуры, предоставляющие разновидность расширяемой системы типов, но он не позволяет вам определять операции над структурами. Это ограничивает расширяемость системы типов. C++ существенно продвинул машинную модель C к действительно расширяемой системе типов.


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

Следующим к рассмотрению, был выбран язык С#. Разработанный программистом давшим нашему миру язык программирования Delphi, Андресом Хейлсбергом в соавторстве со Скоттом Вильтаумотом, он был разработан для платформы Microsoft .NET Framework, в период с 1999 по 2001 года. Разработанный Microsoft, этот мультипарадигмальный язык программирования общего назначения использовался для разработки приложений на платформе Microsoft. C# — лучший язык для создания нативных приложений для платформы Microsoft. Кроме того, он является рекомендуемым языком для разработки игр с использованием движка Unity Game.

Рисунок 10. Принцип устройства языка C#.

Приоритетом разработчиков этого языка была его простота, и так как это язык высокого уровня, он больше похож на английский, чем другие. C# позволяет разработчику сосредоточиться на алгоритме, а не на деталях реализации, так как сложные конструкции в нём заключены в абстракции На C# можно написать что угодно: веб-сервисы, мобильные ПО, серверные приложения и так далее.

И в то время как эксперты утверждают, что спрос на C# падает, Xamarin опровергает эти утверждения, поскольку оказывается, что эта платформа упрощает создание приложений для Android и iOS. C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет строгую статическую типизацию, поддерживает полиморфизм, перегрузку операторов, указатели на функции-члены классов, атрибуты, события, свойства, исключения, комментарии в формате XML.

Переняв многое от своих предшественников С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем: так, C# не поддерживает множественное наследование классов (в отличие от C++) или вывода типов (в отличие от Haskell). Благодаря такому языку программирования, множество решений существующих на более ранних языках, переживают повторное использование, но уже с более высокой скоростью вычисления и одной из самых актуальных на сегодняшний день вещью – более понятным для современного пользователя внешним видом.

Успех данного языка обуславливается несколькими причинами:

  1. Отвечающий современным требованиям внешний вид даже простых приложений.
  2. Большое количество сопроводительной документации и обновлений.
  3. Возможность создания веб-приложений.

Рисунок 11. Пример программы на языке С#.

Еще один пример современного языка программирования, созданного в 2014 году это язык Swift. Он открытый мультипарадигмальны компилируемый язык программирования общего назначения. Создан компанией Apple в первую очередь для разработчиков iOS и macOS. Swift работает с фреймворками Cocoa и Cocoa Touch и совместим с основной кодовой базой Apple, написанной на Objective-C. Swift задумывался как более легкий для чтения и устойчивый к ошибкам программиста язык, нежели предшествовавший ему Objective-C. Программы на Swift компилируются при помощи LLVM, входящей в интегрированную среду разработки Xcode 6 и выше. Swift может использовать рантайм Objective-C, что делает возможным использование обоих языков (а также С) в рамках одной программы. За последние годы Swift стал более популярен, чем Objective-C. Это язык программирования для разработки нативных приложений для iOS или Mac OS.

Также можно сказать, что это язык программирования с наибольшим потенциалом для изменения будущего. Было обнаружено, что нативные приложения превосходят кросс-платформенные гибридные приложения, а движок SpriteKit при этом упрощает создание 2D-игр. На деле Swift опирается на успехи C и Objective-C, но при этом без ограничений совместимости.

Большую роль в становлении Swift оказало влияние на него таких языков программирования, как Ruby и Python. Он считается удобным для пользователя и интересным в использовании. Swift — это высокоуровневый мультипарадигмальный язык, разработанный Apple для iOS. Если работа с продуктами Apple, но так же идет разработка поддержи и Android приложений. Swift — статически типизированный язык. Это означает, что Xcode проверяет ваши ошибки за вас, поэтому их легче отслеживать.

Рисунок 12. Пример приложений на языке Swift.

У Swift есть преимущество перед конкурентами, так как в нем также имеется автоматический счетчик ссылок (ARC), известная функция, которая управляет использованием памяти приложения в реальном времени, etc. Использование этого языка может дать вам преимущество, поскольку приложения iOS зачастую более выгодны, чем приложения Android на экономическом рынке.

Рисунок 13. Пример кода на языке Swift.

Многие компании создают собственные языки программирования, ориентируясь на статистике своих задач, одной из таких компаний стала Google, как лидер на рынке поисковых систем, компания выполняет различные задачи для улучшения собственных нейронных сетей поиска информации. И является лидером на рынке как в системе её поиска, так и обработки. Созданный компанией язык называется Go – язык 2009 года – эпохи многоядерных процессоров, тогда как языки вроде Python и Java появились в годы однопоточной среды разработки. Именно поэтому язык Go учитывает многозадачность и работает в соответствии с ней. Вместо всем известных потоков (Thread), которые у большинства языков занимают уйму памяти (например, в Java это 1 Мб на каждый поток), в Go предусмотрены горутины, «съедающие» всего 2 Кб памяти.