Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Топ:
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Интересное:
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Дисциплины:
2021-01-31 | 81 |
5.00
из
|
Заказать работу |
Параметр | Конкретика |
Эксплуатационная прагматика ЯП | Язык учебного назначения, созданный для обучения студентов методам программирования решений задач, готовых для эффективной реализации при поддержке автоматным моделированием |
Особенности системы понятий | Программа и данные – раздельные сущности. Выпол- нение программы сводится к шагам изменения состоя- ний памяти, хранящей данные. Используемые в про- грамме идентификаторы подчинены иерархии обла- стей видимости, задаваемых вложенностью определений процедур и функций. Процедуры и типы данных не являются значениями. Возможно конструи- рование новых типов данных и приведение типа дан- ных к заданному |
Перечень понятий, распознаваемых на уровне абстрактного синтаксиса | Скаляр, вектор, значение, ключевые слова, константа, переменная, тип данных, операция, выражение, опе- ранд, элемент вектора, сравнение, действие, последова- тельность действий, ветвление, цикл, определение про- цедуры/функции, вызов процедуры/функции |
|
39 Роль языка в формировании поддерживаемой им парадигмы и/или перечень поддер- живаемых парадигм.
|
Параметр | Конкретика |
Базовые средства ЯП | TRUE, FALSE, перечислимые значения,:=, a[i ], IF, WHILE, PROCEDURE, st1; st2 |
Семантические рас- ширения | Разные виды чисел, записи, множества, указатели, метки, передачи управления, функции, переключатели, конструирование типов данных, ввод-вывод, файлы, строки, библиотеки |
Регистры абстрактной машины | Стеки промежуточных результатов, локальных пере- менных и параметров, выполняемой процедуры и век- тор памяти (S E C M) |
Категории команд аб- страктной машины | Засылки в стек, вычисления над стеком и памятью, пе- ресылки из стека и локальных переменных, ветвления, передачи управления, вызовы процедур |
Реализационная праг- матика СП | Память распределяется статически по блокам задан- ного размера, обработка векторов использует вычисле- ние смещений от базового адреса и подразумевает кон- троль границ отведенной под вектор памяти, при необ- ходимости привлекаются библиотеки, поддерживаю- щие ввод-вывод, работу с файлами и динамической па- мятью |
Парадигмаальная спе- цифика ЯСП | Прецедент строго определения языка программирова- ния, обладающего не слишком высокой сложностью в реализации, поддерживающего методику результа- тивного структурного программирования. Может вы- полнять роль эталонного монопарадигматического языка при сравнительном анализе языков и определе- нии их парадигматической характеристики |
|
|
– программируемые решения представляются в императивной или в де- кларативной форме;
– обрабатываемые элементы данных позиционируются как адресуемые блоки памяти или независимо размещаемые значения;
– программа может быть защищена от изменений в процессе ее выполне- ния или допускать программируемые модификации по ходу получения ре- зультатов вычисления;
– программа может быть целостной или собираться из типовых компо- нент и шаблонов;
– представленные в программе функции могут быть частичными, типизи- рованными, обрабатывающими значения заданного домена или универсаль- ными, дающими разумную реакцию на любой элемент данных;
– управления вычислениями выполняется последовательно или парал- лельно;
– порядок действий может быть определенным или недетерминирован- ным;
– вычисления могут быть энергичными или ленивыми;
– области видимости имен могут быть глобальными или локализован- ными по иерархии конструкций с возможностью восстановления контекста;
– распределение и повторное использование памяти может быть дей- ствием в программе или выполняться автоматически СП;
– инициирование памяти первоначально размещаемыми значениями мо- жет требовать программируемых действий или выполняться в СП по умол- чанию;
–
|
– результат выполнения программы может быть рассредоточен по ряду переменных или сконцентрирован в специальном регистре;
– контроль правильности может выполняться статически – при анализе текста программы или динамически – при выполнении кода программы.
Выбор между так противопоставленными характеристиками в представ- лении программы выражается синтаксически или с помощью спецификато- ров.
ЗАКЛЮЧЕНИЕ
Средства и методы программирования складывались на фоне быстрого расширения сферы применения компьютерных технологий и стремительного взлета эффективности элементной базы. Наряду с расслоением парадигм про- граммирования в зависимости от глубины и общности технических решений по организации процессов обработки данных происходит их интеграция в рамках новых языков программирования, все более полно поддерживаю- щих жизненный цикл программ. В результате обнаружились явные сложно- сти классификации языков программирования и определения их принадлеж- ности конкретной парадигме программирования. Рассмотрение технических особенностей языков и систем программирования через их парадигмальную характеристику может дать достаточно лаконичные формы их определения относительно ряда простых концептуальных языков.
Выбор парадигмы программирования – это выбор концептуальной схемы постановки проблем и методов их решения, инструмент «грамотного» описа- ния фактов, событий, явлений и процессов, выделения частных и общих по- нятий. Альтернативные подходы к обработке информации, накопленные и сложившиеся в форме языков и систем программирования, принято называть парадигмами программирования. Изучение и четкая классификация уже сло- жившихся и новых компьютерных парадигм призваны помочь обоснован- ному выбору компьютерных языков при формировании новых программных проектов и создании новых информационных технологий.
|
ПРИЛОЖЕНИЕ
ТЕРМИНЫ И ОБОЗНАЧЕНИЯ
Ассоциативный список – список пар, предназначенный для хранения со- ответствия между именами и их определениями (значения переменных, кон- стант, определения функций).
Атом – данное, не разделяемое на части средствами ЯП.
Дамп – резервная память для хранения промежуточных результатов, ко- торые могут понадобиться при дальнейших вычислениях.
Деструктивные операции – выполняются на памяти операндов, что мо- жет повлечь потерю данных.
Замыкание функции – конструкция из определения функции и таблицы значений используемых в ней свободных переменных.
Клауза – предикат и соответствующая ему ветвь для вывода цели вычис- ления.
Ленивое вычисление – отложенное действие, выполняемое лишь если оно необходимо для получения результата.
Мера организованности программы – зависимость объема отладки мо- дифицируемой программы от объема вносимых изменений.
|
Область видимости имен – участки программы, на которых имена имеют определение.
Показатель отлаженности программы – частота обнаружения дефектов в программе или длина интервала между внесением исправлений в про- грамму.
Псевдо-функции – кроме значения производят дополнительные дей- ствия.
Рабочие переменные – видимы в пределах блока.
Раздельная компиляция – методика создания кода частей программы для их многократного использования в других программах.
Ранг работоспособности программы – полнота множества возможных данных, на которые программа реагирует разумно.
Реализационное замыкание ЯП – расширение определения ЯП, созда- ваемое для его эффективной реализации.
Свободные переменные – получают значение или определение вне зада- ваемого фрагмента.
Семантическая декомпозиция – разложение определения на части, смысл каждой из которых может быть выражен на естественном языке.
|
Семантический спуск определения ЯП – исключение из определения ЯП компонентов, сводимых к более простым или общим средствам, что фор- мально не влияет на полноту ЯП.
Список свободной памяти – структура данных, обеспечивающая дина- мический доступ к памяти.
Степень изученности задачи – оценка готовности к программированию постановки задачи и методов ее решения.
Структурное программирование – методика представления импера- тивно-процедурных программ, упрощающая их отладку.
Универсальная семантическая функция ЯП – функция вычисления ре- зультата любой правильно представленной на ЯП функции от допустимых данных.
|
Хэш-функции – методика хранения динамически изменяемого конеч- ного множества из элементов бесконечного множества.
АББРЕВИАТУРЫ
Обозначение | Расшифровка |
АК | Абстрактный комплекс |
АМ | Абстрактная машина |
АС | Абстрактный синтаксис |
БД | Базы данных |
БНФ | Формы Бэкуса-Наура |
БС | Базовые средства |
ВС | Вспомогательная семантика |
ЖЦП | Жизненный цикл программ |
ЗШ | Заочная школа юных программистов |
ЗШЮП | Заочная школа юных программистов |
ИП | Императивно-процедурное программирование |
ИС | Информационная система |
ИТ | Информационные технологии |
КМ | Конкретная машина |
КП | Компонентное программирование |
КС | Конкретный синтаксис |
КЯ | Концептуальные языки программирования |
ЛП | Логическое программирование |
ЛШ | Летняя школа юных программистов |
ЛШЮП | Летняя школа юных программистов |
НФ | Нормализованная форма |
| ||||
|
ОИВТ | Основы информатики и вычислительной техники |
ООП | Объектно-ориентированное программирование |
ОС | Операционная семантика |
ПЖЦП | Полный жизненный цикл программ |
ПИП | Процедурно-императивное программирование |
ПП | Парадигма программирования |
РБНФ | Расширенные формы Бэкуса-Наура |
РИС | Распределенная информационная система |
РП | Реализационная прагматика |
СД | Структуры данных |
СП | Система программирования |
СПП | Стандартное прикладное программирование |
СУ | Синтаксическое управление |
ТА | Таблица атомов |
ТД | Типы данных |
ТИ | Таблица идентификаторов/имен |
ТП | Технология программирования |
УФ | Универсальная функция языка программирования |
УЯ | Учебный язык программирования |
ФП | Функциональное программирование |
ШИ | Школьная информатика |
ШЮП | Школа юных программистов |
ЯНОП | Язык начального обучения программированию |
ЭП | Эксплуатационная прагматика |
ЯВУ | Язык высокого уровня |
ЯНОП | Язык начального обучения программированию |
ЯНУ | Язык низкого уровня |
ЯП | Язык программирования |
ЯПП | Язык параллельного программирования |
ЯСВУ | Язык сверхвысокого уровня |
ЯСП | Язык и система программирования |
ЯФП | Язык функционального программирования |
AMA | Абстрактная машина ассемблера |
AMF | Абстрактная машина языка Forth |
AML | Абстрактная машина языка Lisp |
AMM | Абстрактная машина макрогенератора |
AMP | Абстрактная машина языка Pascal |
AMQ | Абстрактная машина управления процессами |
BIOS | basic input/output system – «базовая система ввода-вывода» |
CSP | Communicating Sequential Processes – теория взаимодействующих последовательных процессов, разработанная Чарльзом Э. Хоаром в 1969 году |
CCS | Calculus of Communicating Systems – исчисление общающихся систем, разработанное Робином Милнером в 1980 году |
FDD | Функционально-ориентированное проектирование |
LAP | Ассемблер языка Lisp |
PID | Идентификатор процесса |
RISC | restricted (reduced) instruction set computer – компьютер С сокращенным набором команд |
SECD | Абстрактная машина языка Lisp |
SECM | Абстрактная машина языка Pascal |
SSA | Однократное присваивание |
UML | Универсальный язык моделирования UML |
XP | Экстремальное программирование |
|
(X. Y) – работает как (cons X Y) – X становится «головой» списка Y.
|
(x y. l) – первый элемент списка – x, второй элемент списка – y, остальные находятся в списке l.
([XL. YL]. AL) – работает как (pairlis XL YL AL) – функция аргументов XL,YL, AL строит список пар-консолидаций соответствующих элементов из списков XL, YL и присоединяет их к списку AL. Полученный список пар, похожий на таблицу с двумя столбцами, называется ассоциативным списком или таблицей атомов. Такой список может использоваться дл я связывания имен переменных и функций при организации вычислений интерпретатором. (X | Y) – работает как (append X Y) – сцепляет списки в один общий спи-
сок.
AL[X] – работает как (assoc X AL) – функция двух аргументов, X и AL. Если AL – таблица атомов, подобная тому, что формирует функция pairlis, то assoc выбирает из него первую пару, начинающуюся с X. Таким образом, это функция поиска определения или значения в таблице атомов.
[x] – содержимое памяти по адресу x.
e[n] – содержимое n-го элемента контекста.
{A | B | … | Z} – множество вариантов.
A(Pr) – число аргументов процедуры Pr.
L(Pr) – число локальных переменных процедуры Pr.
@F – адрес подпрограммы, выполняющей функцию F.
@c – адрес позиции «c» в программе.
_ – произвольное значение (_ подчерк).
(Expr) – результат вычисления выражения или успех выполнения про- цесса.
$ – переменная для кода успеха/результата процесса.
$* – все аргументы, переданные скрипту (выводятся в строку).
|
$$ – PID самого скрипта.
NN(d) – список номеров и имен элементов очереди. [<Num, Name, Text>, … ] - очереди процессов.
NULL – пустой файл.
H(d) – голова очереди, точнее – процесс с наивысшим приоритетом. T(d) – хвост очереди, остаток после удаления головы. d = H(d) • T(d). PN – имя текущего процесса.
СПИСОК ЛИТЕРАТУРЫ
1. Айлиф, Дж. Принципы построения базовой машины. – М.: Мир, 1973. – 119 с.
2. Баранов, С. Н. Феномен Форта / С. Н. Баранов, М. Ю. Колодин // Си- стемная информатика. Вып. 4. Методы теоретического и системного про- граммирования. – Новосибирск: Наука, 1995. – С. 193–271.
3. Браун, П. Макропроцессоры и мобильность программного обеспече- ния. – М.: Мир, 1977. – 253 с.
4. Вирт, Н. От Модулы к Оберону // Системная информатика. Вып. 1. Проблемы современнного программирования. – Новосибирск: Наука, 1991.
– С. 63–75.
5. Воеводин, В. В. Параллельные вычисления. / В. В. Воеводин, Вл. В. Во- еводин. – СПб.: БХВ-Петербург, 2002. – 608 с.
6. Городняя, Л. В. Функциональный подход к описанию парадигм про- граммирования // Препринт № 152. Надзаг.: ИСИ СО РАН. – Новосибирск, 2009. – С. 66.
7. Дейкстра, Э. Дисциплина программирования. – М.: Мир, 1978.
8. Иртегов, Д. В. Введение в операционные системы. – СПб.: БХВ-Пе- тербург, 2008. – 1040 с.
9. Лавров, С. С. Методы задания семантики языков программирования // Программирование. – 1978. – № 6. – С. 3–10.
10.
|
11. Леман, М. М. Программы, жизненные циклы и законы эволюции про- граммного обеспечения. – М.: Мир, ТИИЭР, 1980. – Т. 68-9. – С. 26–45.
12. Мейер, Б. Основы объектно-ориентированного проектирования [Элек- тронный ресурс]. – М.: Интернет-Университет Информационных техноло- гий. – Режим доступа: http://www.intuit.ru/department/se/oopbases/, 2007. – Дата доступа: 01.12.2014.
13. Пратт, Т. Языки программирования. Разработка и реализация / Т. Пратт, М. Зелковиц; под общ. ред. А. Матросова. – СПб.: Питер, 2002. – 688 с.
14. Сошников, Д. В. Функциональное программирование на языке F#. – М.: ДМК Пресс, 2011.
15. Хендерсон, П. Функциональное программирование. – М.: Мир, 1983. – 349 с.
16. Хоар, Ч. Взаимодействующие последовательные процессы. – М.: Мир, 1989. – 264 с.
17.
|
18. Черноножкин, С. К. Методы тестирования программ. – Новосибирск: НГУ, 2004. – 166 с.
19. Backus, J. Can programming be liberated from the von Neumann style? A functional style and its algebra of programs // Comm. ACM. – 1978. – V. 21,
№ 8. – P. 613–641.
20. Floyd, R. W. The paradigms of Programming // Communications of the ACM 22. – 1979. – № 8. – P. 455.
21. Knoop, J. Compiler Construction / 20th International Conference, CC 2011. Held as Part of the Joint European Conferences on Theory and Practice of Soft- ware, ETAPS 2011 Saarbrücken, Germany, March 26 – April 3, 2011 // Lecture Notes in Computer Science. Springer V. – 2011. – V. 6601. – 330 p.
22. McCarthy, J. LISP 1.5 Programming Manual. – Cambridge: The MIT Press, 1963. – 106 p.
23. Russian Lisp User Group [Электронный ресурс]. – Режим доступа: http://lisp.ru/.
24. Примеры на языке Prolog [Электронный ресурс]. – Режим доступа: http://www.cs.bham.ac.uk/~pjh/modules/current/25433/examples/l15_example3.html.
|
ПАРАДИГМА ПРОГРАММИРОВАНИЯ
Учебное пособие
Зав. редакцией
литературы по информационным технологиям и системам связи О. Е. Гайнутдинова Ответственный редактор С. В. Макаров Корректор Н. Я. Селиванова
Выпускающий В. А. Иутин
ЛР № 065466 от 21.10.97
Гигиенический сертификат 78.01.10.953.П.1028 от 14.04.2016 г., выдан ЦГСЭН в СПб
Издательство «ЛАНЬ»
[email protected]; www.lanbook.com;
196105, Санкт Петербург, пр. Юрия Гагарина, 1, лит. А. Тел.: (812) 412 92 72, 336 25 09.
Бесплатный звонок по России: 8 800 700 40 71
ГДЕ КУПИТЬ
ДЛЯ ОРГАНИЗАЦИЙ:
Для того, чтобы заказать необходимые Вам книги, достаточно обратиться в любую из торговых компаний Издательского Дома «ЛАНЬ»:
По России и зарубежью
«ЛАНЬ ТРЕЙД». 196105, Санкт Петербург, пр. Юрия Гагарина, 1, лит. А тел.: (812) 412 85 78, 412 14 45, 412 85 82; тел./факс: (812) 412 54 93
e mail: [email protected]; ICQ: 446 869 967
www.lanbook.com
пункт меню «Где купить»
|
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!