История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
Топ:
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Интересное:
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
| ПП | Вычисления | Память | Управление | Структуры |
| ИП | Скаляры = слова СД-ТД предвычисле- ния | Статическое рас- пределение := Области видимо- сти – динамика вызо- вов – статика вложен- ности текста – глобалы: Описания Категории имен составные имена exprt-import | Goto If Call Case Select Switch For While Until Do Trap Catch Ситуации ОС | Array Record Union Pointer |
| ФП | Длинные скаляры. Списки. Программы. Пред и пост lazy | GC – FS Без описаний До исчерпания Динамика вызо- вов – БД (атомы) Списки свойств Let Declare | Quote-eval Lazy Cond Lambda Defun Evalquote Ловушки Мультизначения Параллелизм Необязательные параметры | Списки Файлы Строки Потоки Модели мас- сивов, таблиц, вариантов |
| ЛП | Варианты с возвратами. Шаблоны в строке. Подстановка | Накопление рецептов | Обход лабиринта Параллелизм – об- ход графа в ши- рину | Иерархия принятия решений |
| ООП | Обработка полей записи | Разметка доступа Дружественный доступ | Выбор метода по ТД или по ситуа- ции Привязка к интерфейсу | Иерархия классов |
Следует обратить внимание, что наиболее успешные, долго живущие языки и системы программирования являются мультипарадигматическими.
Язык Fortran включает в себя:
–
|
– арифметические функции;
– неявные циклы форматного ввода-вывода векторов и массивов;
– вычисляемые передачи управления;
– сопрограммы – многовходовые подпрограммы. Язык Lisp 1.5 поддерживает работу:
– с таблицей свойств атомов, фактически поддерживающей статическую память с побочным эффектом;
– императивно-процедурное программирование в форме Prog.
– глобальные определения атомов в терминах свойств атомов.
– псевдо-атомы для работы со скалярами разных типов и форматов.
– мультиоперации над числами и строками.
– псевдо-функции для взаимодействия с операционной системой.
– расширение системы программирования определениями на входном языке и средствами ассемблера.
Статически типизированные языки Pascal, Си и др. поддерживают вари- антные структуры данных, позволяющие в динамике обойти контроль ТД.
Такие комментарии можно привести для всех ЯП, подтвердивших дли- тельностью своего существования разумность предложенных в них обоб- щенных решений.
|
Изначально императивно-процедурный Си и язык ООП С++ переходят на новый уровень абстрагирования:
Язык С# обогащается рядом новых возможностей:
– выражения могут содержать безымянные функции, представленные как структуры данных;
– поддержаны динамические типы данных – стеки, очереди, списки, де- ревья;
– доступны библиотеки классов, библиотеки элементов управления и библиотеки web-элементов управления;
– формируется код программы, способный учитывать особенности теку- щей платформы;
– задача сборки мусора в памяти снята не только с программистов, но и с разработчиков трансляторов; она решается в нужное время и в нужном ме- сте – исполнительной средой, ответственной за выполнение вычислений;
– каждый тип, помимо полей, методов и свойств, может содержать и со- бытия;
–
|
Язык F#, наследующий идеи функциональных языков ML, CAML, OCAML, поддерживает механизмы ЛП и ООП:
– полный свод обычных механизмов функционального программирова- ния, включая функции высших порядков; каррирование и сопоставление с образцом;
– динамическое связывание;
– ленивые и энергичные вычисления;
– замыкания функций и мемоизация;
– квотирование выражений, дающее доступ к обработке программы при ее исполнении;
– конструирование выражений, частичное применение функции и мета- компиляция;
– разреженные матрицы;
– хеш-таблицы;
– mutable-переменные (изменяемые);
– монада недетерминированных вычислений;
– асинхронные выражения и параллельное программирование;
– частичная интероперабельность с.NET.
Язык Scala объединяет механизмы ФП и ООП с резким акцентом на кон- троль ТД, удобный для разработки компиляторов, обеспечивающих надеж- ность программ:
– объекты и их поведение определяется классами с возможностью мно- жественного наследования;
– функции являются значениями и могут быть высших порядков;
– статическая типизация поддерживает обобщенные классы, встроенные классы и абстрактные типы, составные типы, полиморфные методы и др.;
– допускает включение новых языковых конструкций;
– взаимодействует с Java и.Net;
– допускает анонимные функции;
– автоматическое конструирование типозависимых замыканий функций;
– использует механизм сопоставления с образцом;
–
|
Объединение разных ПП в рамках одного ЯП или их поддержка при реа- лизации СП повышает их сферу применения и способствует производитель- ности труда программистов, смягчая избыточное разнообразие теорий и мо- делей, сложившихся на разных фазах и этапах ЖЦП.
Новые и долгоживущие ЯП как правило имеют мультипарадигмальный характер. Следует обратить внимание на появление новых мультипарадиг- мальных учебных языков программирования (A++, Oz), поддерживающих
все основные парадигмы программирования, что показывает их взаимную дополнительность и образовательное значение.
|
Определитель парадигм
Первые языки программирования обладали машинной ориентированно- стью и поддерживали принципиально важную, но небольшую по длительно- сти и трудозатратам часть ЖЦП – от 2 до 5%, заключающуюся в кодировании готовых алгоритмов в терминах автоматов. Появление ЯВУ расширило язы- ковое покрытие ЖЦП примерно до 10% для хорошо поставленных задач, имеющих алгоритмы решения над типовыми структурами данных, причем алгоритмы приспособлены для нисходящих методик программирования.
Парадигма функционального программирования посягнула на ЖЦП для задач с исследовательским компонентом и расширила его языковое покры- тие до 50% благодаря механизмам хранения и накопления информации о свойствах информационных объектов, полезной при отладке и модификации программ, составленных из небольших универсальных компонент, допус- кающих как нисходящую, так и восходящую методику разработки.
|
ложения, что довело языковое покрытие примерно до 80%.
Определитель парадигмы языка программирования содержит следующие процедуры:
– разложение языка на фрагменты по уровням и слоям с целью выделения базовых средств языка и его реализационного ядра – семантический базис;
– декомпозиция семантического базиса языка на основные и вспомога- тельные семантические системы с минимизацией их сложности и, возможно, их описание относительно концептуальных языков;
– определение АМ языка и интерпретатора, формально достаточного для построения расширений, эквивалентных исходному языку – нормализован- ное определение;
– сравнение полученного определения с описаниями известных парадигм и концептуальных языков;
– обоснование выводов относительно парадигмы исследуемого языка;
–
|
– определение уровня языка и его ниши в жизненном цикле программ и деятельности программистов (цели и задачи), базовых языков, использован- ных при его создании и реализации, как основы для рекомендаций по выбору и применению ЯП и его СП.
Примеры представления результатов парадигматического анализа языков программирования можно выразить в табличной форме.
Таблица 43
|
|
|
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!