Статья:

Устаревшие языки программирования и их влияние на современные парадигмы программирования

Конференция: XLV Студенческая международная заочная научно-практическая конференция «Молодежный научный форум: технические и математические науки»

Секция: Технические науки

Выходные данные
Кожахметова А.С. Устаревшие языки программирования и их влияние на современные парадигмы программирования // Молодежный научный форум: Технические и математические науки: электр. сб. ст. по мат. XLV междунар. студ. науч.-практ. конф. № 5(45). URL: https://nauchforum.ru/archive/MNF_tech/5(45).pdf (дата обращения: 21.08.2018)
Лауреаты определены. Конференция завершена
Эта статья набрала 0 голосов
Мне нравится
Дипломы
лауреатов
Сертификаты
участников
Дипломы
лауреатов
Сертификаты
участников
на печатьскачать .pdfподелиться

Устаревшие языки программирования и их влияние на современные парадигмы программирования

Кожахметова Акмарал Сулейменовна
магистрант, Алматинский Университет Энергетики и Связи, Республика Казахстан, г.Алматы
Ахметова Майра Ахметовна
научный руководитель, канд. тех. наук, доцент, Алматинский Университет Энергетики и Связи, Республика Казахстан, г.Алматы

 

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

Языки программирования быстро эволюционировали, чтобы упростить программирование и снизить вероятность ошибок. Формы, которые возникли, считались языками высокого уровня, потому что программы не были тесно связаны с внутренними характеристиками компьютера, позволяя людям писать программы с использованием привычных терминов вместо сложных машинных инструкций. Эти языки программирования высокого уровня включали COBOL, FORTRAN, BASIC и C. Кроме того, они поддерживали переносимость и могли работать на разных компьютерах[6].

Парадигмы программирования

Наиболее влиятельные парадигмы программирования включают процедурные (также известные как императивные), структурированные, функциональные, логические и объектно-ориентированные парадигмы [3].

Парадигма параллельного программирования

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

Мультипарадигмы

Можно комбинировать парадигмы, чтобы получить преимущества каждой из них. Однако это также увеличивает сложность программы. Программист должен взвесить преимущества и недостатки, чтобы определить, выгодно ли комбинирование парадигм. Цель языка с несколькими парадигмами состоит в том, чтобы использовать конструкции из разных парадигм, чтобы создать программу, которая бы соответствовала природе конкретной проблемы. C ++, Leda, Common Lisp и Scala являются примерами сочетания парадигм [5].

В примере Java императивный стиль очевиден, так как найденная переменная переназначается во время выполнения цикла, который выполняет итерацию через символы в строке c индексированием [2]. В примере Scala метод exists выполняет итерацию через коллекцию символов и передает каждый символ в функцию. Если метод exists обнаруживает, что строка содержит прописную букву, она возвращает true. В противном случае возвращается false. Таким образом, найденная переменная никогда не переназначается.

Сдвиги между парадигмами программирования

Природа проблемы

Большинство проблем можно решить, начиная с известного состояния и достигая неизвестного состояния. Тем не менее, некоторые из них могут быть решены более легко, в обратном порядке, начиная с неизвестного состояния и достигая известного состояния из-за способности отследить назад к фактам, которые уже известны. Это называется восходящим подходом, и в основном используется парадигмой объектно-ориентированного программирования[1].

Проектирование аппаратного обеспечения

Архитектура фон Неймана[3] рассматривает один процессор, обрабатывающий последовательные задачи и обладающий следующими свойствами:

·     Данные и программы хранятся в одной и той же памяти.

·     Память отделена от центрального процессора.

·     Инструкции и данные передаются из памяти в CPU.

·     Результаты операций в CPU должны быть возвращены в память.

Таким образом, в этом типе архитектуры основное внимание уделяется операторам изменения состояния, в основном с использованием чтений и назначений, которые наилучшим образом соответствуют парадигме процедурного программирования [4].

Эволюция исключения / обработки ошибок

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

Обработка исключений была впервые введена языком PL / I в 1960-х годах и была значительно усовершенствована в CLU в 1970-х годах. BASIC также предоставил ограниченную обработку исключений. В Бейсике программы были написаны с номерами, обозначающими каждую строку кода. Управление выполнением было передано путем перехода к конкретной строке с помощью оператора GOTO, а исключения обрабатывались с использованием оператора On Error Goto.

Ada, разработанная в 1983 году, обычно считается первым языком с четко определенной и удобной обработкой исключений [3]. Массовое принятие позднее пришло в 1990-х годах с C ++. Обработка исключений появилась почти во всех языках, включая Smalltalk, C ++, Java и C #. Языки типа PL / I, Ada, Mesa и CLU предоставляют явные механизмы обработки исключений, в то время как такие языки, как Pascal, C и FORTRAN – нет [5].

Обработка исключений в PL / I

PL / I был разработан корпорацией IBM в 1960-х годах, хотя он не был стандартизирован до 1976 года [4]. Механизм исключения PL / I позволил пользователю писать обработчики для как определяемых языком, так и пользовательских исключений. Программист мог указать исключения, используя строки кода ниже:

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

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

 

Список литературы:
1. Апплеби Д. Языки программирования: парадигмы и практика // МакГроу Хилл – 1991.
2. Гослинг Д. Йеллин Ф. Команда Java. Интерфейс прикладного программирования Java // Эддисон-Уэсли – 1996.
3. Лукам Д.С. Полак В. Обработка исключений языка АДА: аксиоматический подход. АСМ транзакции на языках программирования и системах // Апрель 1980.
4. МакЛарен М.Д. Обработка исключений в PL/I. Технические отчеты, Корпорация цифрового оборудования. // Мэйнард.
5. Саммет Д. Е. Языки программирование: прошлое и будущее, Коммуникация АСМ // 7 ноября, июль 1972.
6. Сэйд Г. Р. Основы языков программирования: проектирование и реализация // Томсон / Брукс / Коул – 2002.