Файл: Современные языки программирования (Метапрограммирование).pdf
Добавлен: 28.03.2023
Просмотров: 130
Скачиваний: 2
Введение
Процесс работы компьютера заключается в выполнении команд и программ, то есть набора строго определённых команд в определённом порядке. Машинный код команды, состоящий из нулей и единиц, указывает, какие именно действия должен выполнить центральный процессор. Чтобы задать компьютеру последовательность действий, которые он должен выполнить, нужно задать определенную последовательность двоичных кодов соответствующих команд. Программы в машинных кодах состоят из многих команд. Создание таких программ – занятие очень сложное и утомительное, и еще сложнее поиск ошибок в них. Программист не только должен знать, но и помнить комбинацию нулей и единиц двоичного кода каждой команды, а также двоичные коды адресов данных, используемых при её исполнении. Современные языки программирования стали ближе человеку. В них гораздо проще написать программу на языке более близкому к естественному человеческому языку. А переводом этих программы в машинные коды занялись специализированные программы, то есть сам компьютер. С развитием технологий появились специальные программы и системы облегчающий написание программ.
Что такое язык программирования. Это формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (это ЭВМ) под ее управлением.
Разработчики языков программирования по-разному объясняют понятие о языках программирования. К более распространенным утверждениям, признанным большинством разработчиков, относятся следующие:
– Функция: язык программирования предназначен для написания программ для компьютеров, которые применяются для передачи компьютеру инструкций для выполнению вычислительных процессов и организации управления отдельными процессами.
– Задача: язык программирования предназначен для передачи команд и данных от человека компьютеру. Естественные языки отличается от языков программирования тем, что, он используются для общения между людьми для передачи информации. Можно дать обобщенное определение «языков программирования» – это способ передачи команд, приказов, четкого руководства к действию компьютеру, тогда как человеческие языки служат только для обмена информацией.
– Исполнение: язык программирования использует специальные конструкции для определения и манипуляции структурами данных и управления вычислительными процессами.[1]
Язык программирования чаще всего представлен в виде набора спецификаций и стандартов, определяющих их синтаксис и семантику. Некоторые языки программирования созданы по международным стандартам. Созданных специализированными комиссиями и организациями. Специализированные организации и комиссии проводят регулярное обновление спецификаций, стандартов и формальных определений соответствующего языка, а также продолжают разработку и модернизацию языков программирования.
Со времени создания первых программируемых машин человечество создало уже более несколько тысяч языков программирования, и каждый год их число увеличивается новыми. Одни языки становятся известны миллионам людей, а некоторыми умеет пользоваться только их разработчиков и небольшое число пользователей. Профессиональные программисты применяют в своих разработках несколько разнообразных языков программирования.
Глава 1. Современные языки программирования
Многие программисты мечтают создать свой собственный язык программирования который был бы самым быстрым и надежным, самым удобным и простым, а так же востребованным. Поэтому за всю свою короткую историю компьютеризации человек придумал огромное количество различных языков программирования. Одни из них послужив своим создателям, ушли в прошлое, а другие получив признание сообщества программистов и пользователей всего мира, радуют по сей день своих создателей.
Но не только программисты не единственная причина возникновения новых языков программирования. Но бурное развитие современной науки и технологии, оказывает огромное влияние на создание новых языков программирования. Так как Время не стоит на месте то, что ещё вчера было чудом и пределом научно–технического прогресса, сегодня уже вчерашний день.
На сегодняшний перед программистами стоят задачи по созданию надежных систем обработки и хранения информации такие как “Big data”, создание искусственного интеллекта которые ещё в недавнем прошлом казались невозможными. Появляются ежедневно новые устройства и технологии, которые требуют поиска новых подходов к программированию. Сильное развитие современного Интернета предоставляет новые, ещё до конца не освоенные возможности по созданию различных сетевых технологий.
На этой благодатной почве есть все предпосылки для создания новых языков программирования. Отвечающих всем требованиям современным стандартов и задач, использующие новые принципы программирования и позволяющие решать актуальные проблемы в области программирования.
Не смотря на огромное количество языков программирования, лишь некоторые из них получили широкую известность и признание среди программистов. Для определения самых популярных языков программирования воспользуемся интернет данными предоставляемые голландской компании «TIOBE SOFTWARE BV» в первую очередь известной своим регулярным составлениями рейтинга популярности языков программирования. Несмотря на все споры о составлении рейтинга данной компанией, относительно качества и достоверности, но других источников позволяющих хоть как-то отслеживать тенденции в развитии и использования языков программирования на сегодняшний день нет.
По сведениям компании «TIOBE SOFTWARE BV» десять самых популярных языков программирования на июль 2018 года представлены в таблице 1.
Таблица 1 – Рейтинг языков программирования [2]
№ |
Язык программирования |
Рейтинг |
Последний релиз |
1 |
Java |
16.139 % |
Март 2018 |
2 |
C |
14.662 % |
Декабрь 2011 |
3 |
C++ |
7.615 % |
Декабрь 2017 |
4 |
Python |
6.361 % |
Июнь 2018 |
5 |
Visual Basic.NET |
4.247 % |
Март 2017 |
6 |
C# |
3.795 % |
Ноябрь 2017 |
7 |
PHP |
2.832 % |
Апрель 2018 |
8 |
JavaScript |
2.831 % |
Июнь 2017 |
9 |
SQL |
2.334 % |
Декабрь 2016 |
10 |
Objective C |
1.453 % |
Август 2009 |
Все эти языки программирования, безусловно отличаются друг от друга. У каждого из них есть своё собственное назначение, имеет подчас уникальную среду разработки, и естественно свой семантику и синтаксис.
Сравнивать языки программирования между собой, по их по способам реализации и возможностям, и сложности освоения, задача не из легких. Оценить удобство семантических конструкций языков можно только на реальных примерах и для каждого языка программирования существуют задачи, для которых они подходят лучше, чем другие. Такие сравнения и рейтинги в основном выливаются в настоящие «войны» между сообществами разработчиков и программистов. Каждый из них защищает «свой» язык программировании и никак не хочет принимать доводы другой стороны. Как правило, эти «войны» заканчиваются «ничьей» или продолжаются по сей день.
Рассматривая языки программирования по общим для них концепциям, позволит судить только о развитии программирования в общем. Какие задачи на сегодня являются наиболее актуальны, какими методами их решают, и какие используются для этого подходы.
Я буду рассматривать эти языки программирования по некоторым основным позициям:
- Наиболее популярные парадигмы используемые в современных языках программирования.
- Виды применяемых трансляторов.
- Виды используемых типизаций.
Глава 2. Парадигмы программирования
Парадигма (от греческого слова παράδειγμα, «пример, модель, образец») – совокупность стандартов, методов и теорий которые представляют собой совместный способ организации научных знаний.
В программировании парадигма – это совокупность идей и понятий, определяющая стиль написания программ.
Парадигма программирования – это подход или модель к решению задач и проблем.
Парадигма, в свою очередь, определяется базисной программной единицей и главным принципом является достижения модульности программы. В качестве данной единицы могут выступают определения, правила, действия, и так далее. Парадигма программирования задает то, в каких терминах будут описывать логику программы разработчики. К примеру, как последовательность действий, в форме выражения и множества определений функций, рассматривать программу как набор взаимодействующих объектов.
Следует признать то что парадигма программирования определяется программистом, а не языком программирования – большинство современных языков программирования являются мультипарадигменными, что дает возможность использования различных парадигм, Как по отдельности так и совместно при написании компьютерных программ.
Самыми известными моделями программирования являются на сегодняшний день:
– Императивная
Процедурное программирование
– Декларативная
Логическое программирование
Функциональное программирование
– Структурная
Объектно-ориентированное программирование
Модульное программирование
– Метапрограммирование
Самомодифицирующийся код
Генерация кода
Рассмотрим подробнее данные модели.
2.1. Императивная модель
Императивная модель – это одна из первых парадигм программирования и наиболее распространенная, характерным принципом является последовательное изменение состояния вычислителя пошаговым образом. Управление изменениями при этом полностью определено и все целом он контролируется.
Одним из подходов реализующих императивную модель программирования является процедурное программирование. Такие программы состоят из последовательности операторов (инструкций), задающих процедуру решения задачи. Основными операторами данной модели является операторы присваивания, которые изменяют содержимое памяти. Концепция памяти как хранилища значений, содержимое которого может изменяться операторами программы, является фундаментальной основой в императивном программировании.
Императивное программирование большинстве случаев на сегодняшний день используется для реализации небольших подзадач, где главным является скорость исполнения на современных компьютерах.
2.2. Декларативная модель
Декларативная модель – это парадигма программирования, характерным принципом которого является то что программа формирует не последовательность действия при выполнении алгоритма, а содержит описание.
Вот некоторые из подходов реализующих декларативную модель программирования:
Логическое программирование – суть логической модели заключается в том что компьютеру в качестве программы не алгоритм, а формальное описание предметной области и решаемой проблемы. В логическом программировании – программа содержит описание проблемы в логических формула и фактах об объектах и их взаимодействия в предметной области, а решение поставленной задачи система выполняет при помощи встроенных механизмов логического вывода. При этом всегда можно получить результат работы программы, но точно не зная как она их нашла.
Функциональное программирование – способ написание программы, в котором единственным действием являться вызов функции. Разделение программы на части это введение имени для функции и задание для него выражения вычисляющего его значения. Функциональное программирование применяется для решения задач в которых трудно сформировать последовательность действий в терминах. Практический все задачи связанные с искусственным интеллектом, распознавание образов, реализация экспертных систем и так далее пишутся на языках с возможностями функционального программирования.