Понятие о непроцедурных языках программирования и парадигмах программирования. Изучение второго языка программирования
Непроцедурные (декларативные) языки — это языки, при использовании которых в программе в явном виде указывается, какими свойствами должен обладать результат, но не говорится, каким способом он должен быть получен. Непроцедурные языки делятся на две группы: функциональные и логические.
Декларативные языки программирования — это языки программирования высокого уровня, в которых операторы представляют собой объявления или высказывания в символьной логике. Типичным примером таких языков являются языки логического программирования (языки, основанные на системе правил и фактов). Характерной особенностью декларативных языков является их декларативная семантика. Основная концепция декларативной семантики заключается в том, что смысл каждого оператора не зависит от того, как этот оператор используется в программе. Декларативная семантика намного проще семантики императивных языков, что может рассматриваться как преимущество декларативных языков над императивными.
Парадиигма программиирования — это совокупность идей и понятий, определяющих стиль написания компьютерных программ (подход к программированию). Это способ концептуализации , определяющий организацию вычислений и структурирование работы, выполняемой компьютером.
Парадигма программирования не определяется однозначно языком программирования; практически все современные языки программирования в той или иной мере допускают использование различных парадигм ( мультипарадигмальное программирование ). Так, на языке Си , который не является объектно-ориентированным, можно работать в соответствии с принципами объектно-ориентированного программирования, хотя это и сопряжено с определёнными сложностями; функциональное программирование можно применять при работе на любом императивном языке, в котором имеются функции, и т. д.
1. Опишите основную структуру языка Паскаль
2. Укажите подразделы раздела описаний в программе
3. Из каких элементов состоит алфавит языка Паскаль?
4. Укажите раздел операторов
5. Укажите операторы вывода
Критерии оценивания
Поляков К.Ю. Информатика. Углубленный уровень: учебник для 10 класса: в 2 ч., Ч.1/ К.Ю.Поляков, Е.А.Еремин. – М. БИНОМ. Лаборатория знаний, 2015 – 433 стр., ил — ISBN 978-5-9963-1416-4. — https://may.alleng.org/d/comp/comp111.htm
4. Электронные ресурсы: Youtube
Классификация языков программирования по поколениям и уровням. Что такое машинный код и ассемблер — https://www.youtube.com/watch?v=vtuqJKeaGmM
5.Внеаудиторная самостоятельная работа: Изучение второго языка программирования — презентация
6.Адрес почты: Выполненные задания присылать на электронную почту
Галкиной Г.С. — galkinag2020@gmail.com
Догадаевой Т.Ю. – dogadaevat@mail.ru
Дата добавления: 2020-11-23 ; просмотров: 1035 ; Мы поможем в написании вашей работы!
2.2.4. Непроцедурные языки
Непроцедурные языки составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов), и языков связи с операционными системами.
Позволяя четко описывать как задачу, так и необходимые для её решения действия, таблицы решений дают возможность в наглядной форме определить, какие условия должны быть выполнены прежде чем переходить к какому-либо действию. Одна таблица решений, описывающая некоторую ситуацию, содержит все возможные блок-схемы реализаций алгоритмов решения.
Табличные методы легко осваиваются специалистами любых профессий.
Программы, составленные на табличном языке, удобно описывают сложные ситуации, возникающие при системном анализе.
Развитие языков программирования
Ассемблер
Язык Ассемблера – это символическое представление машинного языка. Он облегчает процесс программирования по сравнению с программированием в машинных кодах.
Программисту не обязательно употреблять настоящие адреса ячеек памяти с размещенными в них данными, участвующими в операции, и вычисляемые результаты, а также адреса тех команд, к которым программа не обращается.
Некоторые задачи, например, обмен с нестандартными устройствами обработки данных сложных структур невозможно решить с помощью языков программирования высокого уровня. Это под силу ассемблеру.
В принципе, язык Ассемблер является машинным языком. И программист реализующий какую-либо задачу на языках высокого уровня, с помощью Ассемблера может определить осмыслено ли решение данной задачи, с точки зрения использования ЭВМ.
Умея разобраться в распечатке языка ассемблера, дает возможность облегчить поиск ошибок в программах, т.к. некоторые языки являются компиляторами (см. п. 1.2.).
- Лисп Один из самых старых языков программирования Фортран был создан в 50-х гг. нашего века. Фортран и подобные ему языки программирования (Алгол, ПЛ/1) предназначались для решения вычислительных задач, возникающих в математике, физике, инженерных расчетах, экономике и т.п. Эти языки в основном работают с числами.
Второй старейший язык программирования Лисп (List Information Symbol Processing), Дж. Маккарти в 1962 г. скорее для работы со строками символов, нежели для работы с числами. Это особое предназначение Лиспа открыло для программистов новую область деятельности, известную ныне, как «искусственный интеллект». В настоящее время Лисп успешно применяется в экспертных системах, системах аналитических вычислений и т.п.
Обширность области возможных приложений Лиспа вызвала появление множества различных диалектов Лиспа. Это легко объяснимо: применение Лиспа для понимания естественного языка требует определенного набора базисных функций, отличных, например, от используемого в задачах медицинской диагностики.
Существование множества различных диалектов Лиспа привело к созданию в начале 80-х гг. Common LISP Комитета, который должен был выбрать наиболее подходящий диалект Лиспа и предложить его в качестве основного. Этот диалект, выбранный Комитетом в 1985г., получил название Common LISP . В дальнейшем он был принят в университетах США, а также многими разработчиками систем искусственного интеллекта, в качестве основного диалекта языка Лисп.
Язык программирования Лисп существенно отличается от других языков программирования, таких, как Паскаль, Си и т.п. Работа с символами и работа с числами как с основными элементами требует разных способов мышления.
Первоначально Лисп был задуман как теоретическое средство для рекурсивных построений, а сегодня он превратился в мощное средство, обеспечивающее программиста разнообразной поддержкой, позволяющей ему быстро строить прототипы весьма и весьма серьезных систем.
Профессор Массачусетского технологического института Дж. Самман заметил, что математическая ясность и предельная четкость Лиспа – это еще не все. Главное – Лисп позволяет сформулировать и запомнить «идиомы», столь характерные для проектов по искусственному интеллекту.
лекция_непроцедурные_яп
Не-процедурные языки программирования Не-процедурные языки более эффективны для написания программ по поиску больших объёмов данных, а так же когда невозможно точно описать процесс решения задачи. К языкам не-процедурным относятся декларативные и объектно-ориентированные языки программирования. При использовании декларативных языков подробно описываются критерии, которым должен соответствовать искомый результат, имеющийся исходной структуры и связи между ними, но не указываются способы достижения (т.е. нет готового алгоритма). Делятся декларативные языки на две группы: 1. логические (например, Prolog ) 2. Функциональные ( Lisp ) При использовании логического программирования, разработчик задаёт совокупность определённых фактов , логических правил , отношений между ними в виде формул , создаёт запросы по искомой проблеме. Далее, система сама решает данную проблему, применяя механизмы логического вывода, основанные на математической логике . Программа, написанная на Prolog , состоит из двух частей: 1. Факты , совокупность которых составляет реляционную базу данных.
2. Правила, состоящие из заголовка и подцелей. Функциональное программирование основано на формулировании задачи в качестве совокупности определённых функций . Здесь программа выглядит как набор уравнений, которые определяют функции и значение . Причём значения являются функциями от других значений . Объектно-ориентированное программирование . Данная методика появилась в конце 20 века, основное понятие здесь — объект . С помощью ООП создаётся окружение в виде большого кол-ва объектов, каждый из которых является независимым блоком. Блоки используют для решения задач, не вникая в принципы их внутреннего функционирования. Наиболее популярным сегодня языком ООП является C++ . По ориентации на класс задач По ориентации на класс задач языки делятся на: 1. Универсальные — нацеленные на решение широкого спектра задач ( Python, C++, Delphi ) 2. Специализированные — многие ЯП разрабатывались для решения строго определённого круга задач , с учётом специфики конкретной области. ( Экономика , WEB программирование , Скрипты , языки разметки , для работы с БД , для решения учебных задач ,