Файл: Обзор языков программирования высокого уровня (ИСТОРИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ).pdf
Добавлен: 29.02.2024
Просмотров: 26
Скачиваний: 0
• создать объектно ориентированный язык, в котором любая сущность представляется объектом, объединяющим как информационную (данные), так и функциональную (действия над этими данными) части;
• создать первый компонентно ориентированный язык программирования семейства C/C++;
• упростить C++, сохранив по возможности его мощь и основные конструкции;
• повысить надёжность программного кода. Язык С# разработан прежде всего для платформы .NET (произносится как дот-нет), которая является средой, объединяющей программные технологии, для разработки Web- и Windows-приложений (отсюда и название).[36] Основу среды .NET составляет CLR (Common Language Runtime) – общеязыковая среда исполнения, которая состоит из двух основных частей:
- ядра (набор служб, управляющих загрузкой приложения в память, собраны в библиотеке mscoree.dll);
- библиотеки базовых классов (главная сборка в библиотеке mscorlib.dll).
В составе библиотеки базовых классов выделяется CTS (Common Type System) – общая система типов и подмножество этой системы CLS (Common Language Specification) – общеязыковая спецификация (содержит типы данных, которые гарантированно поддерживаются во всех языках .NET). Процесс создания приложения на C# в среде .NET представляет собой последовательность этапов, изображённую на рис. 1. Наряду с языком C#, в среде .NET в рамках указанной технологии могут быть использованы такие языки, как C++, VB.NET, VisualBasic, Jscript, J# и другие (всего более 30 языков). С одной стороны, язык С# можно считать непосредственным преемником языков С и С++. С другой стороны, нельзя не заметить в его составе многочисленные признаки языка Java.[9]
Как уже отмечалось выше, программирование на C# основано на системе (библиотеке) типов CTS. Эта библиотека насчитывает более 4000 различных типов, которые для удобства работы объединены в функциональные группы – пространства имён. Пространство имён может включать классы, структуры, интерфейсы, делегаты, перечисления.[37] Пространства имён структурированы в иерархическую древовидную систему. Часть этой системы представлена на рис. 3.2.
Рисунок 3.2. Очередность этапов создания приложений[9]
C++
Современные системы программирования на С++ состоят из нескольких составных частей. Это такие части, как сама среда программирования, язык, стандартная библиотека С-функций и различные библиотеки С-классов. Сразу заметим, что C++ является объектно-ориентированным языком. Основное отличие его от прежних, структурных, языков (примером таких является Турбо-Паскаль или С) является то, что он (С++) способен оперировать не только с переменными и структурами (функциями и процедурами), но и с целыми объектами. Объекты есть комплексы переменных и процедур (функций) по их обработке.[38] Как правило, чтобы выполнить программу на С++, необходимо пройти через 6 этапов: редактирование, препроцессорную (то есть предварительную) обработку, компиляцию, компоновку, загрузку и выполнение. В данном пособии мы будем рассматривать программирование в среде Visual С++ 2008, входящей в состав Visual Studio 20081. Первый этап представляет создание и редактирование файла с исходным текстом программы. Он может выполняться с помощью простейшего редактора текстов программ. Программист набирает в этом редакторе свою С++ программу. При необходимости он снова обращается к ней и вносит с помощью этого редактора изменения в исходный текст программы. Далее программа запоминается на диске. Имена файлов С/C++ программ оканчиваются на «c» или «cpp». Однако, пакет программ Visual С++ 2008 имеет встроенный редактор, которым также можно пользоваться. На втором этапе компилятор начинает препроцессорную обработку текста программы, прежде чем ее компилировать. (Что же делает компилятор? Он переводит программу в машинный код. То есть в результате получаем объектный код программы, но это третий этап.). Следует знать, что в системе С++ программирования перед началом этапа самой трансляции всегда выполняется программа предварительной обработки. Что она делает? Она отыскивает так называемые «директивы трансляции» или «директивы препроцессора», которые указывают, какие нужно выполнить преобразования перед трансляцией исходного текста программы. Обычно это включение других текстовых файлов в файл, который подлежит компиляции. Препроцессорная обработка инициируется компилятором перед тем, как программа будет преобразована в машинный код. Это позволяет забирать нужные программы-функции в текст компилируемой программы до начала процесса компоновки. Третий этап – это компиляция. Как правило, программы на языке С++ содержат ссылки на различные функции, которые определены вне самой программы. Например, в стандартных библиотеках или в личных библиотеках программистов. Объектный код, созданный компилятором, содержит «дыры» на месте этих отсутствующих частей. Четвертый этап – компоновка.[39] Компоновщик связывает объектный код с кодами отсутствующих функций и создает, таким образом, исполняемый загрузочный модуль (без пропущенных «дыр»). Пятый этап – загрузка. Перед выполнением программа должна быть размещена в памяти. Это делается с помощью загрузчика, который забирает загрузочный модуль программы с диска и перемещает его в память. Наконец шестой этап – это выполнение. Программа редко заработает с первой попытки. Каждый из названных этапов может заканчиваться ошибкой или неудачей из-за ошибки. Тогда программист должен вернуться к редактированию исходного текста программы. Он должен внести необходимые изменения в текст программы, предварительно его хорошо проанализировав. Затем снова пройти через все этапы работы с исходным текстом программы до получения работающего без ошибок загрузочного модуля.[40]
Таким образом я прошелся по основным языкам программирования высокого уровня и постарался показать разницу между ними (функции, область применения).
ЗАКЛЮЧЕНИЕ
Моей задачей было сделать обзор языков программирования высокого уровня. Но нельзя было приступать к этой задаче, не поговорив об истории программирования в целом, и при этом не упомянув о роли алгоритмов и языков программирования низкого уровня в становлении их старшего собрата. Именно поэтому я потратил достаточно большую часть текста именно на раскрытие этой темы. На самом деле хороших языков программирования намного больше, и одной курсовой работы не хватит даже для краткого их описания. Но я выделил на мой взгляд самые интересные и популярные из них. Пришло время поговорить о плюсах и минусах этой курсовой работы.
Из плюсов работы я выделю:
- Возможность самостоятельно на начальном этапе, изучить и сравнить между собой разные языки программирования
- Ознакомление с большим количеством интересной литературы подготовленной профессионалами своего дела.
Минусы работы:
- Тяжело написать что-то новое в теме, которая изучается уже больше полувека.
- Невозможно по-настоящему изучить такую огромное количество материала за столь короткое время.
- Было сложно найти нужное количество качественной литературы.
Таким образом курсовая работа подошла к концу. Надеюсь, что я ничего не упустил и грамотно донес всю вышеизложенную информацию до читателя.
СПИСОК ЛИТЕРАТУРЫ
- Богазова З. Разные языки программирования и их области применения. Лекция Густокашина М. в Яндексе URL: https://habr.com/ru/company/yandex/blog/272759 (Дата обращения: 27.09.2019)
- Федоров Д. Ю. «Основы программирования на примере языка Python» 2019 г. – 152 с.
- Алгоритмы. Построение и анализ. 3-е издание Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн. 2013 г. – 1324 с.
- Стивен С. Скиена. Алгоритмы. Руководство по разработке 2011 г. – 722 с.
- В.Н. Харин, И.С. Кущева Информатика Языки программирования Часть I 2007 г. – 79 с.
- Вабищевич С.В. Язык программирования Pascal. Краткий курс лекций. 32 с.
- C. A. Абрамов, Е. В. Зима Начала программирования на языке паскаль. 1987 г. – 112 с.
- Шапошникова С. Основы программирования на Python Вводный курс Версия 2. 2011 г. – 44 с.
- Дубаков А. А. Объектно ориентированное программирование в Java учебное пособие 2016 г. – 248 с.
- А.В. Гаврилов, С.В. Клименков, Е.А. Цопа Программирование на Java Конспект лекций. 2010 г. – 132 с.
- Котов О. М. Язык C# краткое описание и введение в технологии программирования 2014 г. – 210 с.
- В.Н. Кирнос Основы программирования на языке C++. 2012 г. – 223 с.
-
Богазова З. Разные языки программирования и их области применения. Лекция Густокашина М. в Яндексе URL: https://habr.com/ru/company/yandex/blog/272759 (Дата обращения: 27.09.2019) ↑
-
Федоров Д. Ю. «Основы программирования на примере языка Python» 2019 г. – С. 6 ↑
-
Федоров Д. Ю. «Основы программирования на примере языка Python» 2019 г. – С. 6-7 ↑
-
Федоров Д. Ю. «Основы программирования на примере языка Python» 2019 г. – С. 7-8 ↑
-
Федоров Д. Ю. «Основы программирования на примере языка Python» 2019 г. – С. 8 ↑
-
Федоров Д. Ю. «Основы программирования на примере языка Python» 2019 г. – С. 8 ↑
-
Федоров Д. Ю. «Основы программирования на примере языка Python» 2019 г. – С. 9 ↑
-
Стивен С. Скиена. Алгоритмы. Руководство по разработке 2011 г. – С. 22 ↑
-
Алгоритмы. Построение и анализ. 3-е издание Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн. 2013 г. – С. 26 ↑
-
Алгоритмы. Построение и анализ. 3-е издание Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн. 2013 г. – С. 27 ↑
-
В.Н. Харин, И.С. Кущева Информатика Языки программирования Часть I 2007 г. – С. 5 ↑
-
В.Н. Харин, И.С. Кущева Информатика Языки программирования Часть I 2007 г. – С. 5-6 ↑
-
В.Н. Харин, И.С. Кущева Информатика Языки программирования Часть I 2007 г. – С. 7-9 ↑
-
В.Н. Харин, И.С. Кущева Информатика Языки программирования Часть I 2007 г. – С. 9 ↑
-
Вабищевич С.В. Язык программирования Pascal. Краткий курс лекций. C. 2 ↑
-
Вабищевич С.В. Язык программирования Pascal. Краткий курс лекций. C. 2 ↑
-
C. A. Абрамов, Е. В. Зима Начала программирования на языке паскаль. 1987 г. – C. 8 ↑
-
C. A. Абрамов, Е. В. Зима Начала программирования на языке паскаль. 1987 г. – C. 8-9 ↑
-
C. A. Абрамов, Е. В. Зима Начала программирования на языке паскаль. 1987 г. – C. 9 ↑
-
Федоров Д. Ю. «Основы программирования на примере языка Python» 2019 г. – С. 10 ↑
-
Шапошникова С. Основы программирования на Python Вводный курс Версия 2. 2011 г. – C. 7 ↑
-
Шапошникова С. Основы программирования на Python Вводный курс Версия 2. 2011 г. – C. 7 ↑
-
Шапошникова С. Основы программирования на Python Вводный курс Версия 2. 2011 г. – C. 8 ↑
-
Шапошникова С. Основы программирования на Python Вводный курс Версия 2. 2011 г. – C. 8-9 ↑
-
Шапошникова С. Основы программирования на Python Вводный курс Версия 2. 2011 г. – C. 7 ↑
-
Федоров Д. Ю. «Основы программирования на примере языка Python» 2019 г. – С. 11-12 ↑
-
Дубаков А. А. Объектно ориентированное программирование в Java учебное пособие 2016 г. – С. 4 ↑
-
Дубаков А. А. Объектно ориентированное программирование в Java учебное пособие 2016 г. – С. 4-5 ↑
-
Дубаков А. А. Объектно ориентированное программирование в Java учебное пособие 2016 г. – С. 5-6 ↑
-
Дубаков А. А. Объектно ориентированное программирование в Java учебное пособие 2016 г. – С. 6-7 ↑
-
Дубаков А. А. Объектно ориентированное программирование в Java учебное пособие 2016 г. – С. 7 ↑
-
Дубаков А. А. Объектно ориентированное программирование в Java учебное пособие 2016 г. – С. 4 ↑
-
А.В. Гаврилов, С.В. Клименков, Е.А. Цопа Программирование на Java Конспект лекций. 2010 г. – С. 5 ↑
-
Дубаков А. А. Объектно ориентированное программирование в Java учебное пособие 2016 г. – С. 5 ↑
-
Котов О. М. Язык C# краткое описание и введение в технологии программирования 2014 г. – C. 4 ↑
-
Котов О. М. Язык C# краткое описание и введение в технологии программирования 2014 г. – C. 4-5 ↑
-
Котов О. М. Язык C# краткое описание и введение в технологии программирования 2014 г. – C. 5 ↑
-
В.Н. Кирнос Основы программирования на языке C++. 2012 г. – C. 8 ↑
-
В.Н. Кирнос Основы программирования на языке C++. 2012 г. – C. 8-9 ↑
-
В.Н. Кирнос Основы программирования на языке C++. 2012 г. – C. 9 ↑