Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Топ:
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Оснащения врачебно-сестринской бригады.
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Интересное:
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Дисциплины:
2021-01-31 | 100 |
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
|
|
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!