Файл: Классификация языков программирования. Критерии выбора среды и языка разработки программ (Информационные технологии).pdf
Добавлен: 31.03.2023
Просмотров: 213
Скачиваний: 2
СОДЕРЖАНИЕ
Языки программирования низкого уровня
Языки программирования высокого уровня
Объектно-ориентированные языки
Декларативные языки программирования
Функциональные языки программирования
Логические языки программирования
Языки, ориентированные на данные
Квантовые гипер-языки программирования
Критерии выбора среды и языка разработки программ
Введение
Программирование на первых компьютерах происходило с помощью двоичных машинных кодов, что было довольно трудоемким, тяжелым, и отнюдь не занимательным занятием.
Понятное дело, что подобный расклад людям по душе не пришёлся - ведь иногда покушать да поспать охота. И в скором времени жажда большего, по тривиальному стечению обстоятельств, взяла верх.
Для упрощения сего процесса, люди начали разрабатывать языки программирования - которые позволяли задавать машинные команды, в понятном для нас, любимых, виде; что в итоге вновь продвинуло развитие нашей общины, и дало возможность крепкого сна, в тёмные, полные ужаса и отчаяния ночи.
Люди пишут - транслятор преобразовывает.
BB 11 01 B9 0D 00 B4 0E 8A 07 43 CD 10 E2 F9 CD 20 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21
Ну это же не дело, правда ?
Языки программирования низкого уровня
Низкоуровневый язык программирования — язык, близкий к программированию непосредственно в машинных кодах используемого реального или виртуального процессора. Для обозначения машинных команд обычно применяется мнемоническое обозначение - это позволяет запоминать команды не в виде последовательности двоичных нулей и единиц, а в виде осмысленных сокращений слов людского языка (обычно английских).
Языки низкого уровня ориентировались на определенный тип процессора и учитывали его особенности, поэтому для того, чтобы перенести программу на другую аппаратную платформу её нужно было почти полностью переписать. Различия присутствовали также и в синтаксисе программ под разные компиляторы.
Языками низкого уровня пользуются преимущественно для написания небольших системных программ, драйверов устройств, модулей стыков с нестандартным оборудованием, программирования специализированных микропроцессоров, когда немаловажным является компактность, быстродействие и возможность прямого доступа к аппаратным ресурсам.
Общеизвестный пример низкоуровневого языка — язык ассемблера, хотя правильнее говорить о группе языков ассемблера. Более того, для одного и того же процессора существует несколько видов языка ассемблера. Они совпадают в машинных командах, но различаются набором дополнительных функций (директив и макрокоманд).
Его команды прямо соответствуют отдельным командам машины или их последовательностям, также он может предоставлять дополнительные возможности облегчения программирования, такие как макрокоманды, выражения, средства обеспечения модульности программ.
По большему счёту - это система обозначений, используемая для представления в удобно читаемой форме программ, записанных в машинном коде.
Языки программирования высокого уровня
Высокоуровневый язык программирования — язык программирования, разработанный для быстроты и удобства использования программистом. Основная черта высокоуровневых языков — это абстракция, то есть введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на машинном коде (или другом низкоуровневом языке программирования) очень длинны и сложны для понимания.
В языках высокого уровня особенности конкретных компьютерных архитектур не учитываются, поэтому написанные программы легко могут быть перенесены на другой компьютер. Зачастую достаточным является компиляция программы под определенную архитектурную и операционную систему. Разработка программ на языках высокого уровня значительно проще и ошибок намного меньше. К тому же время разработки программы значительно уменьшается, что является особенно важным фактором при работе над сложными программными проектами.
Первым языком программирования высокого уровня считается компьютерный язык Plankalkül, разработанный немецким инженером Конрадом Цузе в период 1942—1946 годов. Однако транслятора для него не существовало до 2000 года.
Первым в мире транслятором языка высокого уровня является ПП (Программирующая Программа), он же ПП-1, успешно испытанный в 1954 году. Транслятор ПП-2 (1955 год, 4-й в мире транслятор) уже был оптимизирующим и содержал собственный загрузчик и отладчик, библиотеку стандартных процедур, а транслятор ПП для ЭВМ Стрела-4 уже содержал и компоновщик (linker) из модулей. Однако, широкое применение высокоуровневых языков началось с возникновением Фортрана и созданием компилятора для этого языка.
Универсальный язык - язык, система терминов, определенных строго и однозначно, а потому допускающих над собой чисто формальные операции. Такой язык позволил бы заменить все логические рассуждения исчислением, проводимым, подобно алгебраическому, над словами и символами этого языка, однозначно отражающим понятия.
Наиболее распространенные универсальные языки : C#, C++, Basic, Pascal (Delphi) - используются для разработки Windows-приложений.
Проблемно-ориентированный язык – компьютерный язык, разработанный для программирования особого типа задач. Проблемно-ориентированные языки – это формальные языки связи человека с ЭВМ, предназначенные для описания данных (информации) и алгоритмов их обработки (программ) на вычислительной машине. Они определяются спецификой задач, а не особенностями машины.
Проблемно-ориентированные языки, которые используются на Интернет-серверах и клиентских Интернет-приложениях : PHP, Perl, JavaScript, VBScript.
Большой вклад в программирование на начальных этапах внесли языки Fortran, Cobol, Algol и C.
Объектно-ориентированные языки
Объектно-ориентированный язык программирования (ОО-язык) — язык, построенный на принципах объектно-ориентированного программирования.
Объектно-ориентированные языки стали дальнейшим уровнем развития процедурных языков, основывается на представлении программы в виде множества объектов. Каждый объект относится к какому-либо классу, который, в свою очередь, занимает свое место в наследуемой иерархии. Использование ООП минимизирует избыточные данные, это улучшает управляемость, понимание программы. Написание программы на языке представляется в виде последовательности создания экземпляров объектов и использование их методов. Например, объект человек может иметь поля имя, фамилия и методы есть и спать. Соответственно, в программе можем использовать операторы Человек.Имя:="Иван" и Человек.Есть(пища)
Примеры объектно-ориентированных языков:
- Pascal. С выходом Delphi 7 на официальном уровне стал называться Delphi. Основная область использования Object Pascal - написание прикладного ПО.
- C++ широко используется для разработки программного обеспечения, является одним из самых популярных языков. Применяется для создания ОС, прикладных программ, драйверов устройств, приложений, серверов, игр.
- Java - транслируется в байт-код, обрабатывается виртуальной машиной Java. Преимуществом такого способа выполнения является независимость от операционной системой и оборудования. Существующие семейства: Standard Edition, Enterprise Edition, Micro Edition, Card.
- JavaScript применяется в качестве языка сценариев для web-страниц. Синтаксис во многом напоминает Си и Java. Является реализацией Ecmascript. Сам Ecmascript используется в качестве основы для построения других скриптовых языков, таких как JScript, ActionScript.
- Objective-C построен на основе языка Си, а сам код Си понятен компилятору Objective-C.
- Perl - высокоуровневый интерпретируемый динамический язык общего назначения. Имеет богатые возможности для работы с текстом, изначально разработан именно для манипуляций с текстом. Сейчас используется в системном администрировании, разработке, сетевом программировании, биоинформатике и т. д.
- PHP. Аббревиатура переводится как препроцессор гипертекста. Применяется для разработки веб-приложений, в частности серверной части. С его помощью можно создавать gui-приложения с помощью пакетов PHP-GTK, PHP-Qt, WinBinder.
- Python - язык общего назначения, ориентирован на повышение производительности разработчика и читаемость кода. Был разработан проект Cython, с помощью которого осуществляется трансляция программ, написанных на Python в код на языке Си.
Один из главных принципов объектно-ориентированных языков - абстракция. Идея состоит в разделении деталей или характеристик реализации программы на важные и неважные. Необходима для крупных проектов, позволяет работать на разных уровнях представления системы, не уточняя детали.
Абстрактный тип данных представляется как интерфейс или структура. Позволяет не задумываться над уровнем детализации реализации. АТД не зависит от других участков кода.
Известный афоризм Дэвида Уилера гласит: Все проблемы в информатике можно решить на другом уровне абстракции.
FB.ru: https://fb.ru/article/381310/obyektno-orientirovannyie-yazyiki-osnovyi-obyektno-orientirovannogo-programmirovaniya
Декларативные языки программирования
Декларативные языки́ программирования — это языки программирования высокого уровня, в которых программистом не задается пошаговый алгоритм решения задачи ("как" решить задачу), а некоторым образом описывается, "что" требуется получить в качестве результата. Механизм обработки сопоставления с образцом декларативных утверждений уже реализован в устройстве языка. Типичным примером таких языков являются языки логического программирования (языки, основанные на системе правил).
В программах на языках логического программирования соответствующие действия выполняются только при наличии необходимого разрешающего условия.
Характерной особенностью декларативных языков является их декларативная семантика. Основная концепция декларативной семантики заключается в том, что смысл каждого оператора не зависит от того, как этот оператор используется в программе. Декларативная семантика намного проще семантики императивных языков, что может рассматриваться как преимущество декларативных языков перед императивными.
Наиболее распространённым языком логического программирования является язык Пролог.
https://dic.academic.ru/dic.nsf/ruwiki/113515
Функциональные языки программирования
Функциональное программирование — раздел дискретной математики и парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном программировании).
Противопоставляется парадигме императивного программирования, которая описывает процесс вычислений как последовательное изменение состояний (в значении, подобном таковому в теории автоматов). При необходимости, в функциональном программировании вся совокупность последовательных состояний вычислительного процесса представляется явным образом, например, как список.
Функциональное программирование предполагает обходиться вычислением результатов функций от исходных данных и результатов других функций, и не предполагает явного хранения состояния программы. Соответственно, не предполагает оно и изменяемость этого состояния (в отличие от императивного, где одной из базовых концепций является переменная, хранящая своё значение и позволяющая менять его по мере выполнения алгоритма).
На практике отличие математической функции от понятия «функции» в императивном программировании заключается в том, что императивные функции могут опираться не только на аргументы, но и на состояние внешних по отношению к функции переменных, а также иметь побочные эффекты и менять состояние внешних переменных. Таким образом, в императивном программировании при вызове одной и той же функции с одинаковыми параметрами, но на разных этапах выполнения алгоритма, можно получить разные данные на выходе из-за влияния на функцию состояния переменных.
А в функциональном языке при вызове функции с одними и теми же аргументами мы всегда получим одинаковый результат: выходные данные зависят только от входных. Это позволяет средам выполнения программ на функциональных языках кешировать результаты функций и вызывать их в порядке, не определяемом алгоритмом
и распараллеливать их без каких-либо дополнительных действий со стороны программиста (что обеспечивают функции без побочных эффектов — чистые функции.
Лямбда-исчисление являются основой для функционального программирования, многие функциональные языки можно рассматривать как «надстройку» над ними.
https://ru.wikipedia.org/wiki/Функциональное_программирование
https://www.itweek.ru/business/article/detail.php?ID=209957
Логические языки программирования
Логическое программирование — парадигма программирования, основанная на автоматическом доказательстве теорем, а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода. Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов резолюций.