- •Введение в
- •Программирование — процесс создания компьютерных программ.
- •-Большая часть работы программистов связана с написанием исходного кода, тестированием и отладкой программ
- •Единственный язык, напрямую выполняемый ЭВМ — это машинный язык (также называемый машинным кодом
- •Тема 1. Основные методологии
- •Ядро классификации определяет парадигма программирования
- •Парадигма программирования определяет то, в каких терминах программист описывает логику программы.
- •Замечание
- •Примеры мультипарадигмальных языков программирования, разделённых по числу поддерживаемых парадигм
- •Процедурное программирование Парадигма: императивная
- •Структурное программирование
- •Декларативное программирование
- •Согласно второму определению, программа «декларативна», если она написана на функциональном языке программирования,
- •Функциональное программирование
- ••Математические функции выражают связь между
- ••Функциональное программирование не предполагает изменяемость данных (отсутствует такое понятие, как переменная). Основой для
- •Логическое
- ••Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов.
- •ориентированное
- •Обобщенное
- ••ОП– это создание кода программы независимого от типа данных
- •ИНФОРМАЦИОННАЯ СИСТЕМА-
- •Язык программирования
- •Язык программирования
- •Синтаксис и семантика формального языка
- •Классификация языков программирования
- •Высокоуровневый язык программирования — язык
- •Языкам высокого уровня свойственно умение работать с комплексными структурами данных. В большинстве из
- •Сверхвысокоуровневый язык программирования
- •Так Icon (и его диалект Unicon ) являются VHLL. К языкам сверхвысокого уровня
- •Машинно-зависимые
- •1.Машинный язык. Отдельный компьютер имеет свой определенный Машинный язык , ему предписывают выполнение
- •Системы
- •Системы
- •Схема процесса обработки программы в ЭВМ
- •Рафаэль. Афинская школа
- •Рафаэль. Афинская школа
- •Функциональное программирование
- •Функциональное программирование
- ••Функциональное программирование не предполагает изменяемость данных (отсутствует такое понятие, как переменная). Основой для
- •Логическое
- •Обобщенное
- ••ОП– это создание кода программы независимого от типа данных
- •Синтаксис и семантика формального языка
Машинно-зависимые
языки
•это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.). Машино –ориентированные языки позволяют использовать все возможности и особенности этих языков:
•- высокое качество создаваемых программ (компактность и скорость выполнения);
•- возможность использования конкретных аппаратных ресурсов;
•- предсказуемость объектного кода и заказов памяти;
•- для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ;
•- трудоемкость процесса составления программ ( особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок;
•- низкая скорость программирования;
•- невозможность непосредственного использования программ, составленных на этих языках на ЭВМ других типов.
31
1.Машинный язык. Отдельный компьютер имеет свой определенный Машинный язык , ему предписывают выполнение указываемых операций над операндами, записанными в кодах. Он не требует компиляции, является командным.
2.Языки Символического Кодирования так же, как и машинный язык, являются командными. Однако коды операций и адреса в машинных командах, представляющие собой последовательность двоичных (во внутреннем коде) или восьмеричных (часто используемых при написании программ) цифр, в ЯСК заменены на символы (идентификаторы), форма написания которых помогает программисту легче запоминать смысловое содержание операции. Это обеспечивает существенное уменьшение числа ошибок при составлении программ.
3.Ассемблеры. системы используют введение макрокоманд, они используют трансляторы, используют наряду с СК наборы макрокоманд, которые являются операторами кода.
Для одного и того же процессора существует несколько видов языка ассемблера. Они совпадают в машинных командах, но различаются набором дополнительных функций (директив и макросов).
4.К языкам низкого уровня условно можно причислить CIL, применяемый в платформе Microsoft .NET, Форт, Java байт-код (англ.).
32
Системы
программирования
•Это язык и средства разработки прикладных программ
•Это интегрированная среда , строится на интерактивном принципе, обеспечивающем комфортную обстановку для программиста
•В состав среды входит: текстовой редактор, транслятор, редактор связей, библиотеки подпрограмм, программа отладчик, развитая система помощи и подсказок
•Делятся на компилирующие и интерпретирующие в соответствии с типом их транслятора:
•компилятор –транслятор, в котором трансляция и выполнение программы разнесены во времени; сначала весь текст транслируется, а затем полученная программа выполняется
•интерпретаторы –это трансляторы в которых текст транслируется и выполняется пооператорно. Трансляция и выполнение программы совмещены во времени
33
Системы
программирования
•СП определяет технологию программирования – этапы, методы, способы и приемы разработки программ.
•Основные этапы разработки программ в интегрированной среде: 1- написания текста исходных данных и программы с помощью встроенного текстового редактора , 2 -трансляция программы, 3 - редактирование связей программы с подпрограммами, 4 - выполнение программы, 5- анализ полученных результатов
34
Схема процесса обработки программы в ЭВМ
Исходный модуль |
Компилятор |
Объектный модуль |
Исходные данные |
Загрузочный, |
Редактор связей |
|
выполняемый модуль |
|
Результаты работы программы
35
Рафаэль. Афинская школа
Рафаэль. Афинская школа |
37 |
Функциональное программирование
•Функциональное программирование — парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних. Это стиль программирования, в котором особое значение придается использованию функций и неизменяемых данных.
•В функциональном программировании вычисления выполняются путем объединения функций, которые принимают аргументы и возвращают конкретное значение (или значения). Эти функции не изменяют свои входные аргументы и не изменяют состояние программы. Они просто предоставляют результат данного вычисления. Такие функции обычно называются чистыми функциями (pure functions).
•Противопоставляется парадигме императивного программирования, которая описывает процесс вычислений как последовательность изменения состояний.
38
Функциональное программирование
•Функциональное программирование — парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних.
•Противопоставляется парадигме императивного программирования, которая описывает процесс вычислений как последовательность изменения состояний.
•Математические функции выражают связь между исходными данными и итоговым продуктом некоторого процесса. Процесс вычисления также имеет вход и выход, поэтому функция — вполне подходящее средство описания вычислений. Именно этот простой принцип положен в основу функциональной парадигмы программирования.
•Функциональная программа представляет собой набор определений функций. Функции определяются через другие функции или рекурсивно через самих себя. При выполнении программы функции получают параметры, вычисляют и возвращают результат. На функциональном языке программист не должен описывать порядок вычислений. Нужно просто описать желаемый результат как систему функций.
39
•Функциональное программирование не предполагает изменяемость данных (отсутствует такое понятие, как переменная). Основой для функционального программирования является исчисление.
Недостатки функционального программирования:
•1. Отсутствие присваиваний и замена их на порождение новых данных приводят к необходимости постоянного выделения и автоматического освобождения памяти.
•2. В чистой функциональной парадигме отсутствуют циклы в привычном понимании программ. Языки : Лисп (Lisp), Miranda, Haskell, Gofer, Clean
40
