Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Классификация высоких языков программирования

Содержание:

Введение

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

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

Причина исследования данной работы объясняется тем, высокоуровневые языки программирования, в плане создания ПО, стали всё по большей части удаляться от машинных кодов и реализовывать различные, помимо процедурного, парадигм программирования. К ним относят также и реализацию объектно-ориентированных принципов. C++, Java, Python, JavaScript, Ruby… – спектр языков данного типа наиболее популярен и востребован сегодня. Они предоставляют больше возможностей для реализации разнообразного ПО и нельзя однозначно определить «специализацию» каждого из них. Но популярность применения в соответствующих областях обусловлена библиотеками/Фреймворками для работы с ними.

Цель работы: выяснить классификации высоких языков программирования. Объектом исследования данной работы являются языки программирования высокого уровня. Задачи исследования:

  1. Рассмотреть историю высоких языков программирования.
  2. Разобрать и выяснить их классификации.
  3. Узнать какие бывают системы программирования.
  4. Выявить какие бывают современные системы программирования.

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

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

При классификации языков выделяются такие виды языков:

  1. Императивный язык – это языки, делающие операцию командами, редактирующими значение компонентов информации, располагают операциями присваивания и циклами. К ним относятся все актуальные на данный момент языки программирования.
  2. Ассемблерный язык – они значатся символьным представлением машинных языков определённого компьютера.
  3. Метаязык – язык, применяемый для фиктивного описания остальных языков.
  4. Декларативный язык – язык, пользующийся данными и взаимоотношениями между ними. Последовательность скрывается семантикой языка. Это аппликативный язык, язык логики и объектно-ориентированный язык. Образцы декларативных свойств – трудные множества и инструкции поиска по шаблону.
  5. Аппликативный язык – функции применяются к значениям без придаточного эффекта. Этот функциональный язык во всём своём разнообразии.
  6. Процедурный язык – позволяет определить некоторые методы вычисления любой проблемы. Включил в себя требовательные и производительные языки.
  7. Функциональный язык – управляет функциями высокого порядка. В нем манипуляции совершались непосредственно функциями, а не данными. К категории функциональных языков относят: Lisp, FP, APL, NIAL, Krc и так далее.
  8. Объектно-ориентированный язык – язык, в котором данные и функции, имеющие возможность подхода к ним были выявлены, как один модуль. Пример: Object Pascal, C++, Java, Objective Caml.

9. Язык запросов – предоставляет интерфейс к базам данных.

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

11. Язык логики – язык, управляющий выражениями использующее одну или более величину с результатом булева типа и их отношениями p (X,Y)

Популярные языки логического программирования: Prolog, KLO, Mandala и Mercury.

Первейшим языком высокого уровня можно заслуженно назвать Fortran, версия данного продукта впервые появилась в ноябре 1954 года. Позже в октябре 1956 года вышла версия Fortran I, а также через год Fortran II, ещё позже появился Fortran III, но казавшийся монополизм этого языка был нарушен с появлением более взвешенно-обдуманных языков, таких как Cobol (1957), Lisp (1958),

Algol`58 (1958), APL (1960). На шаге улучшения языков была необходимость введения в языки нового времени, идей. Вследствие такого поиска появилась увеличивающая волна возникновения языков, обретающих хорошие качества и заслуги, других языков. В 1964 году вышел на свет PL/L (скрещенная версия Cobol, Fortran IV и Algol`60), Basic, Simula I (на основе того же Algol`60).

При разработке ОС UNIX был использован язык BCPL (1967), и языки которые были сделаны на его основе: B (1968) и его переделанная версия – C (1971).

Можно излагать о других языках, которые повлияли на историю прогрессирования программирования, то в 1969 вышел язык Forth и SmallTalk (В последнем видно влияние Lisp). Потом, уже через год, разработан язык логики Prolog и процедурный язык Pascal.

В то время, когда появился один из первых языков программирования высокого уровня, it-специалисты могли писать программы длинной до нескольких тысяч и сотен строк. Однако когда дело доходило до громадных программ, код становился практически нечитаемым и непростой в редактировании. Избавление от таких неструктурированных программ пришло с появлением языков структурного программирования. И на нынешний момент это привело к тому, что все актуальные на данный момент языки являются структурными.

С повышением эффективности ЭВМ от платформо-ориентированных последовательных процедурных языков с входом и одним и тем же выходом в 1975 пришли к созданию Modula (развитие Pascal) и Scheme (малый собрат языка Lisp).

В 1978 появился гост C от Кернигана и Ритчи, возникает и AWK, (скриптовый язык) еще и унаследовавший немного от C. Под влиянием популярности Pascal в 1979 были созданы такие языки как Modula 2 и ADA.

В 1983 появился ML – отец таких языков как O`Caml и Standart ML, давно небезызвестный C++ рождается именно в этом году, становятся ещё совершеннее языки такие как (ADA`83, Prolog II).

В 1987 приняли в качестве госта ADA, ISO, создатель языка Pascal со своим партнером недовольны маленьким вниманием к европейским языкам программирования и выпускают на всеобщее обозрение Oberon – операционную систему новейшего поколения. В этом же году появляются объектно-ориентированный язык Forth, самая нормализированная версия Perl 1.0 (гибрид sh и awk), также Caml.

В 1988 году уже были такие языки как Modula 3 и Perl 2.0. В 1989: Tel, ANSL C (C89), Perl 3.0, bash. В 1990: Scheme IEEE, ISO C (C90), SML`90. В 1991: Fortran`90 ISO, Python, Java, Perl 4.0, NetRexx, Tcl/Tk. В 1992 был разработан язык принтеров – PostScript level 2, появился фактический гост языка Oberon-2. В 1994: Perl 5.0, Common Lisp ANSL. В 1995: ADA'95, Delphi, Java 1. В 1996: PostScript level 3, APL'96, ISO C (C95), Objective Caml. 1997 - обильный на языки год: Object Rexx, Prolog IV, OO COBOL, Modula 2, ISO, SML'97. Фирма Oberon Microsystems внесла в Oberon-2 маленькие дополнения, и разработали коммерческий компилятор индустриального уровня выпустила его в свет под названием Component Pascal.

В 1998 утвердили гост на C++ ANSI/ISO, Java 2 (v1.2), O'Caml.

В 2000 году у вышедшего к тому моменту Java 2 (v1.3) появился конкурент - C#. Появилась самая лучшая и стабильная существующая версия – Perl 5.6. Затачивается получивший широкое распространение в Европе функциональный, объектно-ориентированный язык O'Caml 3.

В округе системных программистов зрительный интерфейс получил свой нынешний вид благодаря конфликту, в 1990 с Microsoft компаний Watcom и Borland, которое послужило сформированием разных языков Microsoft Visual Studio, ставшего мощным инструментом в руках Microsoft для распространения миграции на платформу Windows, и особенного множества систем от Borland, - таких сред как Delphi, Kylix, CBuilder и JBuilder. Кроме того, флагманским продуктом Borland стала все-таки система, основанная на довольно старом языке Object Pascal – Delphi.

Вероятно, не так давно появилась довольно высокая известность веб программирования. Языки веб программирования обладают свойствами, которые позволяют применять их на серверах. Чаще всего это интерпретаторы (такие как Perl, PHP) позволяют использовать их на стороне сервера, или языки, поддерживаемые клиентом (браузеры) - HTML, XML, Java, JavaScript, или специальные модули (plugin), расширяющие клиента – Flash.

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

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

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

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

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

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

О таких технологических операциях, как выделение и утилизация оперативной памяти заботится сам язык в момент компиляции или исполнения программы. Например, во многих высокоуровневых языках (Java, C#, JavaScript) предусмотрены "сборщики мусора", автоматически освобождающие память от больше неиспользуемых объектов. Достоинством языков высокого уровня является и то, что многие из них обладают кроссплатформенностью: программа, написанная, единожды, будет работать не только на исходной архитектуре, но и будучи перенесенной в иное окружение. Например, программа, разработанная на языке Java, в операционной системе Linux может, быть запущена без изменений в среде Microsoft Windows или IOS.

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

2.1 Fortran

Первым и более удачным компилятором стал язык Fortran,созданный компанией IBM. Профессор ДЖ. Букс и американские специалисты в области программирования в 1954 опубликовал первое сообщение на языке. Буквально имя языка расшифровывается Formula Translation ну или преобразование формул. Причина долголетия языка, а он один из самых распространённых языков во всём мире. Нужно отметить его лёгкую структуру, как самого Фортрана, так и предназначенных для него трансляторов. Программа на этом языке пишется в последовательности предложений и операторов (описание некоего преобразования информации) и оформляется по специальным стандартам. Эти параметры задают определённые условия, на способ записи и расположения частей оператора в строке для записи определённые условия, на способ записи и расположения частей оператора в строке для записи операторов. Программа, написанная на Фортране, представляет собой один или несколько сегментов (подпрограмм) из операторов. Сегмент, который управляет работой всей программы в целом, называется основной программой. Фортран был придуман для использования в сфере научных и инженерно-технических вычислений, задач. Однако на данном языке просто описываются задачи с разветвлённой логикой (моделирования производственных процессов, решение игровых ситуаций и так далее), некоторые экономические задачи изменения (создание таблиц, сводок ведомостей и так далее). Преобразование этого языка, созданное в 1985 г., получило название Фортран II и содержало понятие подпрограммы и обобщённых переменных для обеспечения связи между разными сегментами.

К 1962 г. относится появление языка, популярного под именем Фортран IV и ставшего наиболее употребительным в нынешнее время. К этому же моменту относится начало действий комиссии при Американской Ассоциации Стандартов (ASA), которая выработала к 1966 г. два стандарта, языки Фортран и базисный (основной) Фортран (Basic Fortran).

Эти языки приближённо соответствует версия IV и II, однако базисный Фортран является подгруппой Фортрана, в этот же момент, Фортран II таковым для Фортрана IV не является. Этот язык до сих развивается и совершенствуется, оказывает влияние создание и развитие остальных языков. Например, он заложен в основу Basic диалогового языка, очень популярного для решения маленьких задач, лучшего языка для изучения навыков использования алгоритмических языков в практике кодирования.

2.2 C

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

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

2.3 Lisp

Один из старых языков Fortran, был сделан в 50-х годах нашего времени. Фортран и ему подобные языки кодирования (Алгол, Пл/1) были предназначены для решения вычислительных, возникающих в математике, физике, инженерных расчетах, задач. Также экономика, ну или тому подобное. Данные языки в целом работают с числами.

Второй старейший язык программирования Лисп (List information symbol processing), Дж. Маккарти в 1962 г. сделал его более для работы со строками символов, нежели для работы со строками символов, нежели для работы с числами. Это главный смысл Лиспа. Всё это открыто новейшую область деятельности, знаемую сейчас, как искусственный интеллект. В наше время Лисп успешно нашёл себя в экспертных системах аналитических вычислений и тому подобное.

Широта области различных приложений Лиспа вызвала возникновения разных множеств различных диалектов Лиспа. Это просто объяснимо: применение Лиспа для элементарного языка требует специального набора базовых функций, отличных, например, от используемого в задачах медицинской диагностики. Существование множества различных диалектов Лиспа привело к созданию в начале 80-х годов. Common Lisp, комитета, который обязан был выбрать наиболее подходящий диалект для Лиспа и предложить его в качестве основного. Этот диалект для Лиспа выбран комитетом в 1985 г., получил название Common Lisp. Дальше этот диалект был принят в университетах США, а также различными разработчиками систем искусственного интеллекта, в качестве преобладающего диалекта языка Лисп. Язык программирования, таких как паскаль, Си и тому подобные. Работа с символами и работа с числами как с ключевыми элементами требует разных способов мышления. Первоначально Лисп был задуман как теоретическое средство для рекурсивных сооружений, а сегодня он превратился в мощный способ, обеспечивающий программиста разной поддержкой, которая позволяет ему быстро строить прототипы весьма сложных и серьёзных систем.

3. Классификация языков программирования

3.1 Машинно–ориентированные языки

Машинно–ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.). Машинно–ориентированные языки позволяют использовать все возможности и особенности машинно–зависимых языков:

- высокое качество создаваемых программ (компактность и скорость выполнения);

- возможность использования конкретных аппаратных ресурсов;

- предсказуемость объектного кода и заказов памяти;

- для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ;

- трудоемкость процесса составления программ (особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок;

- низкая скорость программирования;

- невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.

Машинно-ориентированные языки по степени автоматического программирования подразделяются на классы.

3.1.1 Машинный язык

Как я уже упоминал, во введении, отдельный компьютер имеет свой определенный машинный язык (далее МЯ), ему предписывают выполнение указываемых операций над определяемыми ими операндами, поэтому МЯ является командным. Однако, некоторые семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и др.) имеют единый МЯ для ЭВМ разной мощности. В команде любого из них сообщается информация о местонахождении операндов и типе выполняемой операции.

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

3.1.2 Языки символического кодирования

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

Использование символических адресов – первый шаг к созданию ЯСК. Команды ЭВМ вместо истинных (физических) адресов содержат символические адреса. По результатам составленной программы определяется требуемое количество ячеек для хранения исходных промежуточных и результирующих значений. Назначение адресов, выполняемое отдельно от составления программы в символических адресах, может проводиться менее квалифицированным программистом или специальной программой, что в значительной степени облегчает труд программиста.

3.1.3 Автокоды

Есть также языки, включающие в себя все возможности ЯСК, посредством расширенного введения макрокоманд - они называются Автокоды.

В различных программах встречаются некоторые достаточно часто использующиеся командные последовательности, которые соответствуют определенным процедурам преобразования информации. Эффективная реализация таких процедур обеспечивается оформлением их в виде специальных макрокоманд и включением последних в язык программирования , доступный программисту. Макрокоманды переводятся в машинные команды двумя путями – расстановкой и генерированием. В постановочной системе содержатся «остовы» - серии команд, реализующих требуемую функцию, обозначенную макрокомандой. Макрокоманды обеспечивают передачу фактических параметров, которые в процессе трансляции вставляются в «остов» программы, превращая её в реальную машинную программу.

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

Обе указанных системы используют трансляторы с ЯСК и набор макрокоманд, которые также являются операторами автокода.

Развитые автокоды получили название Ассемблеры. Сервисные программы и пр., как правило, составлены на языках типа Ассемблер. Более полная информация об языке Ассемблера см. ниже.

3.1.4 Макрос

Язык, являющийся средством для замены последовательности символов описывающих выполнение требуемых действий ЭВМ на более сжатую форму - называется Макрос (средство замены).

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

Макрос одинаково может работать, как с программами, так и с данными.

3.2 Машинно-независимые языки

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

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

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

3.2.1 Проблемно-ориентированные языки

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

Проблемных языков очень много, например:

Фортран, Алгол – языки, созданные для решения математических задач;

Simula, Сленг - для моделирования;

Лисп, СНОБОЛ – для работы со списочными структурами.

Об этих языках я расскажу дальше.

3.2.2 Универсальные языки

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

Первый универсальный язык был разработан фирмой IBM, ставший в последовательности языков Пл/1. Второй по мощности универсальный язык называется Алгол-68. Он позволяет работать с символами, разрядами, числами с фиксированной и плавающей запятой. Пл/1 имеет развитую систему операторов для управления форматами, для работы с полями переменной длины, с данными организованными в сложные структуры, и для эффективного использования каналов связи. Язык учитывает включенные во многие машины возможности прерывания и имеет соответствующие операторы. Предусмотрена возможность параллельного выполнения участков программ.

Программы в Пл/1 компилируются с помощью автоматических процедур. Язык использует многие свойства Фортрана, Алгола, Кобола. Однако он допускает не только динамическое, но и управляемое и статистическое распределения памяти.

3.2.3 Диалоговые языки

Появление новых технических возможностей поставило задачу перед системными программистами – создать программные средства, обеспечивающие оперативное взаимодействие человека с ЭВМ их назвали диалоговыми языками.

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

Необходимость обеспечения оперативного взаимодействия с пользователем потребовала сохранения в памяти ЭВМ копии исходной программы даже после получения объектной программы в машинных кодах. При внесении изменений в программу с использованием диалогового языка система программирования с помощью специальных таблиц устанавливает взаимосвязь структур исходной и объектной программ. Это позволяет осуществить требуемые редакционные изменения в объектной программе.

Одним из примеров диалоговых языков является Бейсик.

Бейсик использует обозначения подобные обычным математическим выражениям. Многие операторы являются упрощенными вариантами операторов языка Фортран. Поэтому этот язык позволяет решать достаточно широкий круг задач.

3.2.4 Непроцедурные языки

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

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

Табличные методы легко осваиваются специалистами любых профессий.

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

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

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

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

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

4. Системы программирования

4.1 Понятия, назначение и элементы системы программирования

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

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

- текстовые редакторы, служащие для создания текстов исходных программ;

- компоновщики, позволяющие объединять несколько объектных модулей, порождаемых компилятором, в единое целое;

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

- загрузчики, обеспечивающие подготовку готовой программы к выполнению;

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

Далее в развитии средств разработки стало появление "интегрированной среды разработки". Интегрированная среда объединила в себе возможности текстовых редакторов исходных текстов программ и командный язык компиляции. Теперь разработчику было достаточно только указать в удобной интерфейсной форме состав необходимых для создания программы исходных модулей и библиотек. Ключи, необходимые компилятору и другим техническим средствам, также задавались в виде интерфейсных форм настройки.

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

Развитие интегрированных сред снизило требования к профессиональным навыкам разработчиков исходных программ. Теперь в простейшем случае от разработчика требовалось только знание исходного языка (его синтаксиса и семантики). При создании прикладной программы ее разработчик мог в простейшем случае даже не разбираться в архитектуре целевой вычислительной системы.

Дальнейшее развитие средств разработки также тесно связано с повсеместным распространением развитых средств графического интерфейса пользователя. Такой интерфейс стал неотъемлемой частью многих современных ОС и так называемых графических оболочек. Со временем он стал стандартом практически во всех современных прикладных программах.

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

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

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

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

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

4.2 Структура современной системы программирования

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

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

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

В качестве основных тенденций в развитии современных систем программирования следует указать внедрение в них средств разработки на основе так называемых "языков четвертого поколения" — 4GL (four generation languages), — а также поддержка систем "быстрой разработки программного обеспечения" — RAD (rapid application development).

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

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

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

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

5. Примеры современных систем программирования

5.1 Системы программирования компании Borland/Inprise

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

Borland Delphi

Система программирования Borland Delphi явилась логическим продолжением и дальнейшим развитием идей, заложенных компанией-разработчиком еще в системе программирования Turbo Pascal.

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

- новый язык программирования — Object Pascal, явившийся серьезной переработкой прежней версии языка Borland Pascal;

- компонентная модель среды разработки, в первую очередь, ориентированная на технологию разработки RAD (rapid application developement).

Язык программирования Object Pascal создавался в то время, когда на рынке средств разработки уже существовало значительное количество объектно-ориентированных языков, включая такие известные, как C++ и Java. Компания Borland попыталась учесть все недостатки существующих языков объектно-ориентированного программирования, а также свой опыт создания языка Borland Pascal. Новый язык вышел довольно удачным, как с точки зрения синтаксиса, так и с точки зрения предоставляемых возможностей. Этот язык поддерживает практически все основные механизмы объектно-ориентированного программирования.

Компонентная модель среды разработки предусматривает создание основной части программы в виде набора взаимосвязанных компонентов — классов объектно-ориентированного языка. Во время разработки исходной программы (design time) компоненты предстают в виде графических образов и обозначений, связанных между собой. Каждый компонент обладает определенным набором свойств (properties), событий (events) и методов. Каждому из них соответствует свой фрагмент исходного кода программы, отвечающий за обработку метода или реакции на какое-то событие. Разработчик может располагать на экране и связывать между собой компоненты, а также редактировать связанный с ними исходный код программы. Причем поведение компонентов во время выполнения программы (run time) полностью определяется их взаимосвязью, исходным кодом программы и объектным кодом самой компоненты.

Система программирования Borland Delphi предназначена для создания результирующих программ, выполняющихся в среде ОС Windows различных типов.

Основу системы программирования Borland Delphi и ее компонентной модели составляет библиотека VCL (visual component library). В этой библиотеке реализованы в виде компонентов все основные органы управления и интерфейса ОС. Также в ее состав входят классы, обеспечивающие разработку приложений для архитектуры "клиент-сервер" и трехуровневой архитектуры (в современных реализациях Borland Delphi). Разработчик имеет возможность не только использовать любые компоненты, входящие в состав библиотеки VCL, но также и разрабатывать свои собственные компоненты, основанные на любом из классов данной библиотеки.

Для поддержки разработки результирующих программ для архитектуры "клиент-сервер" в состав Borland Delphi входит средство BDE (Borland database engine). Оно обеспечивает результирующим программам возможность доступа к широкому диапазону серверов БД посредством классов библиотеки VCL. Посредством BDE результирующая программа может взаимодействовать с серверами БД типа Microsoft SQL Server, Interbase, Sybase, Oracle и т. п. Система программирования Borland Delphi поддерживает также создание результирующих программ, выполняющихся в архитектуре "клиент-сервер", на базе других технологий, например ADO (ActiveX Data Objects).

Система программирования Borland Delphi выдержала несколько реализаций. Последние реализации данной системы программирования включают широкий набор средств для поддержки разработки результирующих программ в трехуровневой архитектуре приложений. Система программирования Borland Delphi позволяет разрабатывать как серверную, так и клиентскую часть приложения в данной архитектуре. Возможно использование как технологий COM/DCOM (наиболее распространенных в среде ОС типа Microsoft Windows), так и технологии CORBA (но только при разработке клиентской части приложения).

Но у данной системы есть свои недостатки. Недостатками можно считать использование нестандартного формата объектных файлов (сохранился еще от системы Turbo Pascal, но в последней версии Borland Delphi 7 можно использовать стандартный формат), а также нестандартного формата для хранения ресурсов пользовательского интерфейса. Кроме того, сам язык Object Pascal не является признанным стандартом. Этот факт несколько затрудняет использование Borland Delphi в масштабных проектах в качестве основного средства разработки. Тем не менее, система программирования Borland Delphi получила широкое распространение среди разработчиков.

Borland C++ Builder

Система программирования Borland C++ Builder объединила в себе идеи интегрированной среды разработки, реализованные компанией в системах программирования Turbo Pascal и Borland Delphi с возможностями языка программирования C++. История этой системы программирования начинается с интегрированной среды разработки Borland Turbo C.

Среда Turbo C представляла собой реализацию идей, заложенных компанией-разработчиком в системе программирования Turbo Pascal для языка программирования C. Компания Borland стремилась перенести удачную реализацию идей интегрированной среды разработки на новую основу. Компилятор Turbo C не был однопроходным, и потому время компиляции исходной программы превышало время компиляции аналогичной программы в Turbo Pascal. Кроме того, в системе программирования использовался стандартный компоновщик исполняемых файлов MS DOS.

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

С развитием системы программирования на базе Turbo Pascal развивались и системы программирования на основе Turbo C.

Современная реализация Borland C++ Builder ориентирована на разработку результирующих программ, выполняющихся под управлением ОС Microsoft Windows всех типов. Сама система программирования Borland C++ Builder, как и Borland Delphi, также функционирует под управлением ОС типа Microsoft Windows. Она полностью поддерживает стандарт языка C, что делает возможным создание с помощью данной системы программирования модулей и библиотек, используемых в других средствах разработки (чего очень сложно достигнуть с помощью Borland Delphi).

По возможностям, внешнему виду и технологиям система программирования Borland C++ Builder схожа с системой программирования Borland Delphi. В ее основу положены те же основные идеи и технологии. Структура классов языка C++ в системе программирования Borland C++ Builder построена в той же библиотеке VCL (visual control library), в которой строится структура классов Object Pascal в системе программирования Borland Delphi. Правда, разработчик, создающий программы на C++, может не пользоваться классами VCL и взять за основу любую другую библиотеку, чего нельзя сказать о разработчике, использующем Object Pascal, — набор доступных библиотек для последнего языка сильно ограничен.

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

5.2 Система программирования компании Microsoft

Компания Microsoft является в настоящее время производителем операционных систем и программного обеспечения, и доминирует на рынке в этом сегменте. Прежде всего, это относится ко всем вариантам ОС типа Microsoft Windows.

Этот факт явился одной из главных причин, которые обусловили прочную позицию данной компании на рынке средств разработки программных продуктов для ОС типа Microsoft Windows. Все виды ОС типа Microsoft Windows создавались как закрытые системы. Поэтому безусловное знание компанией-разработчиком структуры и внутреннего устройства "своей" ОС зачастую являлось определяющим в ситуации, когда надо было создать средство разработки приложений для данной ОС. Хорошие финансовые ресурсы и положение компании на рынке позволили ей создать довольно удачные системы программирования, несмотря на то, что она начала их разработку довольно поздно и не являлась первой в данной области.

Microsoft Visual Basic

История языка Microsoft Visual Basic на персональных компьютерах началась с примитивных интерпретаторов данного языка. Сам по себе язык Basic позволял легко организовать интерпретацию исходного кода программ, а его синтаксис и семантика достаточно просты для понимания даже непрофессиональными разработчиками. Система программирования Microsoft Visual Basic также первоначально была ориентирована на интерпретацию исходного кода. Однако требования и условия на рынке средств разработки подтолкнули компанию-производителя на создание компилятора, вошедшего в состав данной системы программирования. При этом основные функции библиотеки языка были вынесены в отдельную динамически подключаемую библиотеку VBRun, которая должна присутствовать в ОС для выполнения результирующих программ, созданных с помощью данной системы программирования. Различные версии системы программирования Microsoft Visual Basic ориентированы на различные версии данной библиотеки. Интерпретатор языка был сохранен и внедрен компанией-разработчиком в состав модулей другого программного продукта — Microsoft Office. Развитие системы программирования Visual Basic потребовало существенного изменения синтаксиса и семантики самого языка. При всем множестве привнесенных в язык новшеств компании удалось сохранить присущую ему простоту и наглядность всей системы программирования в целом. Последняя версия данной системы программирования — Microsoft Visual Basic 7.0 — является одним из эффективных средств для создания результирующих программ, ориентированных на выполнение под управлением ОС типа Microsoft Windows. Эта система программирования ориентирована на технологию разработки RAD. Microsoft Visual Basic 6.0 содержит интегрированные средства визуальной работы с базами данных, поддерживающие проектирование и доступ к базам данных SQL Server, Oracle и т. п. К этим средствам относятся Visual Database Tools, ADO/OLE DB, Data Environment Designer, Report Designer и ряд других.

В данной системе программирования также поддерживается:

- создание серверных Web-приложений;

- создание интерактивных Web-страниц;

- простое создание приложений, ориентированных на данные;

- масштабируемость;

- коллективная разработка;

- технология ADO;

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

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

Microsoft Visual C++

Система программирования Microsoft Visual C++ представляет собой реализацию среды разработки для распространенного языка системного программирования C++, выполненную компанией Microsoft. Эта система программирования в настоящее время построена в виде интегрированной среды разработки, включающей в себя все необходимые средства для разработки результирующих программ, ориентированных на выполнение под управлением ОС типа Microsoft Windows различных версий.

Основу системы программирования Microsoft Visual C++ составляет библиотека классов MFC (Microsoft foundation classes). В этой библиотеке реализованы в виде классов C++ все основные органы управления и интерфейса ОС. Также в ее состав входят классы, обеспечивающие разработку приложений для архитектуры "клиент-сервер" и трехуровневой архитектуры (в современных версиях библиотеки). Система программирования Microsoft Visual C++ позволяет разрабатывать любые приложения, выполняющиеся в среде ОС типа Microsoft Windows, в том числе серверные или клиентские результирующие программы, осуществляющие взаимодействие между собой по одной из указанных выше архитектур. Классы библиотеки MFC ориентированы на использование технологий COM/DCOM, а также построенной на их основе технологии ActiveX для организации взаимодействия между клиентской и серверной частью разрабатываемых приложений.

На основе классов библиотеки пользователь может создавать свои собственные классы в языке C++, организовывать свои структуры данных. В отличие от систем программирования компании Borland, система программирования Microsoft Visual C++ ориентирована на использование стандартных средств хранения и обработки ресурсов интерфейса пользователя в ОС Windows. Это не удивительно, поскольку все версии ОС типа Windows разрабатываются самой компанией Microsoft. Microsoft Visual C++ обеспечивает все необходимые средства для создания профессиональных Windows-приложений. От версии к версии продукт становится проще в использовании, расширяются возможности применения, повышается производительность. Система программирования Microsoft Visual C++ выдержала несколько реализаций. В процессе выхода новых версий системы программирования было выпущено и несколько версий библиотеки MFC, на которой основана данная система.

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

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

Заключение

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

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

С того времени, когда появился первый язык программирования высокого уровня, программисты могли создавать программы длинной до нескольких тысяч строк. Однако когда дело доходило до больших программ, код становился совершенно нечитаемым и трудно управляемым. Избавление от таких неструктурированных программ пришло с появлением языков структурного программирования. И на сегодня это привело к тому, что все современные языки являются структурными. Также я смог разобрать их разные классификации. Узнал, какие бывают системы программирования. В новых моделях ЭВМ намечается тенденция к повышению внутренних языков машинно аппаратным путём реализовывать более сложные команды, приближающиеся по своим функциональным действиям к операторам алгоритмических языков программирования.

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

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

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

Список использованных источников

1. Программирование и основы алгоритмизации: Для инженерных специальностей технических университетов и вузов./ А.Г. Аузяк, Ю.А. Богомолов, А.И. Маликов, Б.А. Старостин. Казань: Изд-во Казанского национального исследовательского технического ун-та – КАИ, 2013, 153 с. Режим доступа:

http://au.kai.ru/documents/Auzyak_Progr_osn_alg_C_2013.pdf

2. Delphi. Программирование на языке высокого уровня: Учебник для вузов/ В.В. Фаронов. – СПБ .: Питер, 2004 – 640 с. Режим доступа:

http://padaread.com/?book=98967

3. Основы алгоритмизации и программирования: учебное пособие / Г.А. Кадырова. – Ульяновск: УлГТУ, 2014. – 95с. Режим доступа:

http://venec.ulstu.ru/lib/disk/2014/137.pdf

4. Программирование документов и предложений в MS Office в Delphi.-В.Н. Корняков - СПБ:. БХВ-Петербург, 2005 – 496 с. Режим доступа:

http://bourabai.ru/library/korniakov.pdf

5. Основы информатики: учебник/ В.Ф. Ляхович, Н.Б. Молодцов, Н.Б. Рыжикова – Москва: КРОНУС, 2018 – 348с. Режим доступа:

https://ozon-st.cdn.ngenix.net/multimedia/1016808180.pdf

6. Системное программное обеспечение: Учебник для вузов. 3-е издание А.Ю. Молчанов – СПБ/Питер, 2010 – 400c. Режим доступа:

https://go-gl.com/Amx

7. Курс программирования на языке Си: учебник В.В. Подбельский, Фомин С.С. –М.: ДМК Пресс, 2012 – 384c. Режим доступа:

https://go-gl.com/fooA

8. Основы алгоритмизации и программирования: учеб. пособие / Т.А. Жданова, Ю.С. Бузыкова. – Хабаровск : Изд-во Тихоокеан. гос. ун-та, 2011. – 56 с. Режим доступа:

http://window.edu.ru/resource/402/77402/files/alg_prog.pdf

Приложения