Универсальные языки высокого уровня

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

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

Универсальные языки высокого уровня. Смотреть фото Универсальные языки высокого уровня. Смотреть картинку Универсальные языки высокого уровня. Картинка про Универсальные языки высокого уровня. Фото Универсальные языки высокого уровня

Сущность высокоуровневых языков написания программ

Язык программирования высокого уровня — инструмент, относящийся к категории машинно-независимых. Что это означает? Дело в том, что языки программирования делятся на несколько категорий.

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

Универсальные языки высокого уровня. Смотреть фото Универсальные языки высокого уровня. Смотреть картинку Универсальные языки высокого уровня. Картинка про Универсальные языки высокого уровня. Фото Универсальные языки высокого уровня

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

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

Универсальные языки высокого уровня. Смотреть фото Универсальные языки высокого уровня. Смотреть картинку Универсальные языки высокого уровня. Картинка про Универсальные языки высокого уровня. Фото Универсальные языки высокого уровня

Трансляторы

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

Классификация высокоуровневых языков

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

— процедурно-ориентированные (задействуются в качестве инструмента при обработке информации на любом этапе вычислений);

— проблемно-ориентированные (используются как средство решения отраслевых и прикладных задач, формируемых при расширении областей применения ПК);

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

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

Универсальные языки высокого уровня. Смотреть фото Универсальные языки высокого уровня. Смотреть картинку Универсальные языки высокого уровня. Картинка про Универсальные языки высокого уровня. Фото Универсальные языки высокого уровня

Процедурно-ориентированные языки

К таковым можно отнести Фортран. Он считается первым языком программирования высокого уровня, созданным для широкого применения. Характеризуется простой структурой. К процедурно-ориентированным языкам также относится Бейсик. Считается одним из самых часто используемых при обучении программированию. Пример другого процедурно-ориентированного языка — СИ. Изначально он создавался для ОС UNIX. На его основе впоследствии был создан язык C++, дополненный инструментами объектно-ориентированного программирования. Еще один язык, относящийся к рассматриваемой категории — Паскаль. Часто также задействуется при обучении программированию. Возможности данного языка позволяют его использовать как очень мощный инструмент разработки профессиональных видов ПО.

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

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

Объектно-ориентированные языки

Изучим теперь примеры языков программирования высокого уровня, которые относятся к категории объектно-ориентированных. В числе таковых — Visual Basic, Delphi, Visual Fortran, отмеченный выше C++, а также Prolog ++. Фактически все они в своей основе содержат процедурно-ориентированные языки. Однако предполагается существенное их дополнение визуальными элементами управления с целью последующего освоения необходимых алгоритмов разработчиками, привыкшими к другим инструментам. Так, первый язык программирования высокого уровня — Фортран — может быть в оперативные сроки изучен IT-специалистами посредством возможностей Visual Fortran. Аналогичным методом можно быстро освоить Бейсик или Пролог.

Универсальные языки высокого уровня. Смотреть фото Универсальные языки высокого уровня. Смотреть картинку Универсальные языки высокого уровня. Картинка про Универсальные языки высокого уровня. Фото Универсальные языки высокого уровня

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

Фортран и Лисп — первый и второй высокоуровневые языки

Изучим подробнее то, как появился первый язык программирования высокого уровня — Фортран, а также Лисп, считающийся вторым. В 1954 году разработчики из компании IBM, возглавляемые Джоном Бэкусом, создали язык, посредством которого программисты получили возможность значительно облегчить взаимодействие с ПК, которое до того момента осуществлялось посредством машинных команд либо ассемблера. Он получил название Fortran и вскоре стал известен и в СССР под русифицированным наименованием. Фортран стал популярным инструментом для научных вычислений.

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

Примером достижения практических результатов в области развития концепций, заложенных в Фортран, можно считать создание Лисп. Данный язык был разработан в 1958 году, однако, широкую известность он приобрел несколько позже — в 1960-м. Лисп был разработан Джоном Маккарти и опубликован в одном из популярных журналов для IT-специалистов. Основное предназначение рассматриваемого языка — обработка списков. Лисп стал популярен в среде разработчиков систем искусственного интеллекта. На его основе были созданы такие языки, как Planner, Scheme, а также Common Lisp. Также Лисп оказал значительное влияние на многие современные инструменты разработки ПО. Структура языков программирования высокого уровня, популярных сегодня, в значительной степени базируется на алгоритмах Фортран и Лисп.

Интересно будет, однако, рассмотреть иные подходы к классификации рассматриваемых инструментов разработки средств ПО.

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

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

— ориентация на широкий спектр задач (прежде всего, относящихся к вычислительным);

— большое количество языковых конструкций и алгоритмов;

— значимость не только для своего времени, но и для современного этапа развития компьютерной техники;

— поддержка в соответствующих языках императивной методологии.

Универсальные языки высокого уровня. Смотреть фото Универсальные языки высокого уровня. Смотреть картинку Универсальные языки высокого уровня. Картинка про Универсальные языки высокого уровня. Фото Универсальные языки высокого уровня

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

Уникальные языки

Некоторые IT-эксперты выделяют в самостоятельную категорию «уникальные языки». В числе таковых: APL, Cobol, Forth, SETL, а также CLU. Какова их специфика?

Важнейший аспект APL — задействование массивов (векторов и матриц) в качестве ключевого структурного типа. Специфика языка Cobol — в ориентированности на коммерческую сферу. Так, его целесообразно задействовать при решении задач, связанных со стандартизированным форматом представления результатов. Язык Forth характеризуется использованием постфиксной записи программ, а также задействованием стековой нотации. В языке SETL применяются совокупности значений в качестве одного из ключевых типов данных. Языком программирования высокого уровня является также CLU. Его основная особенность — задействование концепции работы с абстрактными типами данных. Многие IT-специалисты видят логичным появление новых решений, базирующихся на уникальных языках — таких как, например, Object-Oriented Cobol.

Универсальные языки высокого уровня. Смотреть фото Универсальные языки высокого уровня. Смотреть картинку Универсальные языки высокого уровня. Картинка про Универсальные языки высокого уровня. Фото Универсальные языки высокого уровня

Средства параллельного программирования

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

— алгоритмов работы с процессами.

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

— дистанционный вызов процедур;

— транзакции, относящиеся к категории атомарных.

К языкам рассматриваемого типа относятся Modula-2, BLISS, Concurrent Pascal, DP, Argus.

Семейство языков C

Выше мы рассмотрели в качестве примера языка высокоуровневого программирования такое решение, как C. По сути дела, оно формирует целое семейство. Языки, принадлежащие к нему, являются частными конструкциями C. Так, его дополнение различными объектно-ориентированными компонентами привело к разработке C++. После существенной фильтрации ряда конструкций C появился язык Java. Можно отметить, что Java создавался во многом под влиянием концепций проекта Oberon, которым руководит Никлаус Вирт, создатель языка Паскаль. Относится ли к высокоуровневым JavaScript? Безусловно, да, несмотря на узость применения — в качестве инструмента разработки веб-страниц. Но к языкам программирования высокого уровня не относятся, в частности, HTML, XML и SGML. Они классифицируются как инструменты разметки гипертекста.

Семейство языков Pascal

Языки программирования высокого уровня Pascal также образуют отдельное семейство. На базе Паскаль был, собственно, создан Oberon, классифицируемый как язык объектно-ориентированного типа. Ключевая особенность Oberon — в возможности обеспечения безопасности типов. Не считая Oberon, к языкам семейства Pascal можно отнести Modula-2, а также Component Pascal.

Семейство языков Ada

Основополагающий в соответствующей категории языков — заказанный под нужды Министерства обороны США Ada. Он был создан в конце 70-х — начале 80-х годов. Характеризуется большим количеством функций, возможностей, универсальностью. Семейство языков Ada включает такие решения, как Cedar, Modula 3.

Семейство языков Simula

Язык Simula распространен в отраслях программирования, связанных с имитационным моделированием. Специфика соответствующих решений — в задействовании специфического ядра. Его использование позволяет применять различные расширения, адаптированные к тем или иным сферам применения. На основе Simula были созданы объектно-ориентированный язык Smalltalk, а также BETA, характеризующийся способностью комбинировать в рамках единой абстракции алгоритмы, отражающие работу с данными, процедурами, а также управление. Объекты BETA могут рассматриваться в различном контексте, например, в качестве переменных, функций или параллельных систем.

Источник

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

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

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

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

Примеры: C++, Visual Basic, Python, Perl, Delphi (Pascal), строковых типов, объектов, операций файлового ввода-вывода и т. п.

Первым языком программирования высокого уровня считается компьютерный язык Plankalkül разработанный немецким инженером Конрадом Цузе ещё в период 1942—1946 гг. Однако, широкое применение высокоуровневых языков началось с возникновением Фортрана и созданием компилятора для этого языка (1957).

Содержание

Переносимость программ

Распространено мнение, что программы на языках высокого уровня можно написать один раз и потом использовать на компьютере любого типа. В действительности же это верно только для тех программ, которые мало взаимодействуют с операционной системой, например, выполняют какие-либо вычисления или обработку данных. Большинство же интерактивных (а тем более мультимедийных) программ обращаются к системным вызовам, которые сильно различаются в зависимости от операционной системы. Например, для отображения графики на экране компьютера программы под Microsoft Windows используют функции Windows API, которые недоступны в системах, поддерживающих стандарт программный интерфейс X-сервера.

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

Новые тенденции

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

См. также

Ссылки

Смотреть что такое «Язык программирования высокого уровня» в других словарях:

язык программирования высокого уровня — — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] Тематики информационные технологии в целом EN data retrieval languageDRL … Справочник технического переводчика

машинно-ориентированный язык программирования высокого уровня — — [http://www.iks media.ru/glossary/index.html?glossid=2400324] Тематики электросвязь, основные понятия EN machine oriented high level languageMOHLL … Справочник технического переводчика

ЯЗЫКИ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ — ЯЗЫКИ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ, ЯЗЫКИ ПРОГРАММИРОВАНИЯ, приемлемо близкие к разговорному языку. Высокоуровневый язык программирования преобразуется КОМПИЛЯТОРОМ в машинные коды, используемые непосредственно компьютером. Большинство… … Научно-технический энциклопедический словарь

Язык программирования Паскаль — процедурно ориентированный язык программирования высокого уровня, предназначенный для широкого класса задач. Язык Паскаль считается языком структурного программирования. По английски: Pascal language См. также: Процедурно ориентированные языки… … Финансовый словарь

Язык программирования Лисп — универсальный язык программирования высокого уровня. Язык Лисп: относится к декларативным языкам функционального типа; предназначен для обработки символьных данных, представленных в виде списков. Основой языка являются функции и рекурсивные… … Финансовый словарь

Язык программирования Си — Си Семантика: процедурный Тип исполнения: компилируемый Появился в: 1969 73 г. Автор(ы): Кен Томпсон, Денис Ритчи Типизация данных: статическая Основные реализации … Википедия

Язык программирования C — Си Семантика: процедурный Тип исполнения: компилируемый Появился в: 1969 73 г. Автор(ы): Кен Томпсон, Денис Ритчи Типизация данных: статическая Основные реализации … Википедия

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

Язык высокого уровня — согласно ГОСТ 19781 90 язык программирования, понятия и структура которого удобны для восприятия человеком. Языки высокого уровня отражают потребности программиста, но не возможности системы обработки данных. См. также: Алгоритмические языки… … Финансовый словарь

Источник

Универсальные языки высокого уровня

Вы будете перенаправлены на Автор24

Понятие высокоуровневых языков программирования

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

Готовые работы на аналогичную тему

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

Традиционные языки программирования

За последние десятилетия сложился устойчивый круг эффективных ЯП, удерживающих лидирующие позиции в рейтингах популярности.

Языки с Си-подобным синтаксисом

Рисунок 1. Деннис Ритчи и фрагмент кода на языке Си. Автор24 — интернет-биржа студенческих работ

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

К семейству Си-подобных языков относятся и другие средства разработки: PHP, Perl, Bash и др.

Python

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

Рисунок 2. Логотип Python-foundation. Автор24 — интернет-биржа студенческих работ

Haskell

Haskell — популярный универсальный язык, ориентированный на функциональное программирование. Его сильной стороной является полноценная поддержка т.н. отложенных вычислений.

Erlang

Erlang — язык программирования функционального типа, направленный на создание распределённых вычислительных систем. Развивается усилиями корпорации Ericsson.

Новые языки программирования

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

Рисунок 3. Популярность новых языков программирования. Автор24 — интернет-биржа студенческих работ

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

Rust

Развиваемый организацией Mozilla Foundation язык Rust позиционируется как низкоуровневый, однако код, написанный на нем считается безопасным, т.е. можно сказать, что Rust преодолевает один из главных недостатков низкоуровневых языков. Приоритетными в развитии Rust считаются эргономика, скорость и безопасность.

Swift

Kotlin

Kotlin – язык, созданный на платформе Java. Он всё чаще используется для написания мобильных приложений, работающих в среде ОС Android. Kotlin обладает более низким порогом вхождения по сравнению с Java, при этом он полностью поддерживается в привычной для разработчиков мобильных программ IDE Android Studio. Вполне вероятно, что Kotlin может со временем стать основным языком разработки для этого класса мобильных устройств.

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

Источник

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

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

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

ЯЗЫКИ ПРОГРАММИРОВАНИЯ НИЗКОГО УРОВНЯ

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

Языки программирования в машинных кодах

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

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

ЯЗЫКИ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ

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

Каждый язык программирования, как и естественный язык, имеет:

• алфавит – фиксированный для данного языка набор основных символов, допускаемых для составления текста программы на этом языке;

• синтаксис – систему правил, определяющих допустимые конструкции языка программирования из букв алфавита;

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

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

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

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

Языки программирования высокого уровня имеют следующие достоинства:

• алфавит значительно шире машинного, что делает его гораздо более выразительным и существенно повышает наглядность и понятность текста;

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

• конструкции команд (операторов) отражают содержательные виды обработки данных и задаются в удобном для человека виде;

• используется аппарат переменных и действия с ними;

• поддерживается широкий набор типов данных.

Для описания классов этих языков используются следующие определения:

• процедура – именованная часть программы, в которую при вызове передаются параметры, и в соответствии с ними выполняется программный код, после чего управление передается в основную программу;

• функция – процедура, возвращающая значение;

• переменная – именованный участок памяти, хранящий значение;

• класс – набор взаимосвязанных переменных, процедур и функций;

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

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

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

Группа под руководством Грейс Хоппер в 1954 г. разработала систему, включавшую в себя язык программирования и компилятор. Первый же в мире компилятор был создан тем же коллективом в 1951 г., и тогда же был введен сам этот термин. Г. Хоппер принадлежит также ввод в обиход фундаментальных терминов «подпрограмма» и «отладка» (debugging).

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

• возможность легкого и быстрого написания небольших модулей;

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

• возможность отладки и тестирования модулей независимо от всей программы.

В свою очередь, процедурные языки подразделяются на операциональные и структурные.

Также называются фортраноподобными: по названию основоположника этой группы – языка Fortran.

От англ. FORmula TRANslator – переводчик формул. Первая версия разработана в 1954 г. инженером корпорации IBM Джоном Бэкусом. В 1958 г. появилась версия Fortran II с поддержкой использования подпрограмм.

От англ. COmmon Business Oriented Language – общий язык, ориентированный на деловые задачи. Разработан в 1960 г. под консультацией все той же Г. Хоппер на основе появившегося в 1958 г. компилятора FLOW-MATIC – первого языка для решения задач обработки коммерческих данных. Кобол создавался как основной язык для массовой обработки данных в сферах управления и бизнеса.

От англ. Programm Language 1 – язык программирования 1. Разработан в 1967 г. компанией IBM, как заявлялось, на смену Фортрану. Исторически первый опыт создания универсального языка программирования высокого уровня. Предназначался для исследования и планирования вычислительных процессов, моделирования, решения логических задач, разработки систем математического обеспечения. Хотя в усеченных версиях его использовали многие программисты, в глобальном плане эта попытка не оправдала себя – универсализм языка приводил к неоправданной сложности конструкций, неэффективности компиляторов.

От англ. Beginner’s All-purpose Symbolic Instruction Code – универсальный символьный код для начинающих. Разработан в 1964 г. сотрудниками математического факультета Дартмутского колледжа Томасом Курцем и Джоном Кемени. К 1967 г., когда к разработке подключились крупные фирмы, были созданы три так называемые «дартмутские» версии, однако широкое практическое использование языка началось лишь в 1975 г. Самому широкому распространению Бейсика в значительной мере способствовали его ориентация на так называемых непрофессиональных программистов и использование как встроенного языка на появившихся в конце 70-х гг. прошлого века ПК. Поэтому Бейсик нашел применение, в частности, в качестве языка начального обучения программированию. Характерными особенностями Бейсика являются:

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

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

В Бейсике отсутствуют:

• ряд структур данных (множества, записи, перечисляемые и интервальные типы);

• ссылочные типы и динамические переменные (в старших версиях возможно динамическое описание массивов);

• в большинстве версий – процедуры и функции (их слабым аналогом являются подпрограммы);

• модули (следовательно, возможности организации больших внешних библиотек).

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

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

Особенности языка Си:

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

• богатый набор операторов: кроме набора средств, присущих современным языкам программирования высокого уровня (структурность, модульность, определяемые типы данных), в него включены средства для программирования «почти на уровне Ассемблера» (использование указателей, побитовые операции, операции сдвига);

• компактность, гибкость и выразительность конструкций;

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

• высокая мобильность программ – без изменений они переносятся, транслируются и выполняются на машинах различных типов;

• широкое использование при разработке системного (в т.ч. ОС) и прикладного ПО.

Появление и развитие этой тенденции в программировании связано с попытками создать универсальный язык программирования, предпринимавшимися в 60-70 гг. XX в, и дополнительным фиксированием некоторых полезных приемов технологии программирования. Языки этой группы также называются алголоподобными: по названию основоположника этой группы – языка Algol.

От англ. ALGOrithmic Language – алгоритмический язык. Разработан в 1958 г. коллективом авторов в результате международного сотрудничества в области программирования. Предназначен для записи алгоритмов, построенных в виде последовательности процедур, применяемых для решения поставленных задач. В нем впервые введены понятия блочной структуры программы и динамического распределения памяти. Его влияние на развитие других языков и теорию программирования оказалось весьма значительным. Наряду с Фортраном Алгол на долгие годы стал классическим базовым языком программирования при решении на ЭВМ математических, инженерно-технических и научных задач. В СССР же под руководством академика С.П. Ершова был создан транслятор Альфа – довольно удачная русифицированная версия Алгола.

Разработан в 1971 г. швейцарским ученым Никлаусом Виртом и назван в честь великого французского математика, физика, изобретателя и философа Блеза Паскаля. В Паскале получило наивысшее отражение развитие идеи Алгола о структуризации разработки алгоритмов. Паскаль разрабатывался как учебный язык и наряду с Бейсиком долгое время являлся одним из основных языков обучения программированию, однако его высокие в совокупности качества позволили использовать его и в профессиональных целях.

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

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

Отдельного упоминания заслуживает разработанная французом Филипом Каном система Turbo Pascal, объединяющая в едином интерфейсе последовательные этапы обработки программы – компиляцию, редактирование связей, отладку и диагностику ошибок.

Разработан в 1979 г. группой ученых во главе с французом Жаном Ишбиа в рамках проекта Пентагона по созданию универсального языка программирования. Назван в честь Ады Лавлейс – создательницы первых программ и крупного популяризатора информатики. Ада – прямой наследник языка Паскаль, предназначенный для создания и длительного многолетнего сопровождения больших программных систем, допускающий возможность параллельной обработки, управления процессами в режиме реального времени и др. Официально выпущенный в 1983 г., язык Ада почти 10 лет использовался в научных расчетах, а также в военных программах Министерства обороны США.

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

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

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

От англ. PROgramming LOGic – программная логика. Разрабатывался в 1970-1978 гг. Очевидно, именно Пролог будет положен в основу аппаратной организации и разработки ПО ЭВМ 5-го поколения (обладающих искусственным интеллектом). Обладает существенными особенностями:

• программа на Прологе не является алгоритмом, а представляет собой запись условия задачи на языке формальной логики, понятийной системой которой он пользуется;

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

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

Программирование на Прологе включает в себя следующие этапы:

• объявление фактов об объектах и отношениях между ними;

• определение правил взаимосвязи объектов и отношений между ними;

• формулировка вопроса об объектах и отношениях между ними.

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

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

Главным представителем группы функциональных языков является Lisp.

От англ. LISt Processing – обработка списков. Разработан в 1962 г. сотрудником Массачусетского технологического института Дж. Маккарти. Подавляющее большинство программ искусственного интеллекта составлено именно на этом языке. До сих пор он считается стандартным языком разработки систем искусственного интеллекта. Его популярность особенно велика в США.

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

Статьи к прочтению:

Языки программирования — просто о сложном

Похожие статьи:

Глава 5. ЯЗЫКИ ПРОГРАМММИРОВАНИЯ Эволюция языков программирования Электронно-вычислительные машины первого поколения находили свое применение (как…

Язык программирования — это фиксированная система обозначений и правил, предназначенная для описания алгоритмов и структур данных. Все языки…

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *