- •Введение в
- •Программирование — процесс создания компьютерных программ.
- •-Большая часть работы программистов связана с написанием исходного кода, тестированием и отладкой программ
- •Единственный язык, напрямую выполняемый ЭВМ — это машинный язык (также называемый машинным кодом
- •Тема 1. Основные методологии
- •Ядро классификации определяет парадигма программирования
- •Парадигма программирования определяет то, в каких терминах программист описывает логику программы.
- •Замечание
- •Примеры мультипарадигмальных языков программирования, разделённых по числу поддерживаемых парадигм
- •Процедурное программирование Парадигма: императивная
- •Структурное программирование
- •Декларативное программирование
- •Согласно второму определению, программа «декларативна», если она написана на функциональном языке программирования,
- •Функциональное программирование
- ••Математические функции выражают связь между
- ••Функциональное программирование не предполагает изменяемость данных (отсутствует такое понятие, как переменная). Основой для
- •Логическое
- ••Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов.
- •ориентированное
- •Обобщенное
- ••ОП– это создание кода программы независимого от типа данных
- •ИНФОРМАЦИОННАЯ СИСТЕМА-
- •Язык программирования
- •Язык программирования
- •Синтаксис и семантика формального языка
- •Классификация языков программирования
- •Высокоуровневый язык программирования — язык
- •Языкам высокого уровня свойственно умение работать с комплексными структурами данных. В большинстве из
- •Сверхвысокоуровневый язык программирования
- •Так Icon (и его диалект Unicon ) являются VHLL. К языкам сверхвысокого уровня
- •Машинно-зависимые
- •1.Машинный язык. Отдельный компьютер имеет свой определенный Машинный язык , ему предписывают выполнение
- •Системы
- •Системы
- •Схема процесса обработки программы в ЭВМ
- •Рафаэль. Афинская школа
- •Рафаэль. Афинская школа
- •Функциональное программирование
- •Функциональное программирование
- ••Функциональное программирование не предполагает изменяемость данных (отсутствует такое понятие, как переменная). Основой для
- •Логическое
- •Обобщенное
- ••ОП– это создание кода программы независимого от типа данных
- •Синтаксис и семантика формального языка
Введение в
алгоритмизацию и программирование
ЛЕКЦИЯ 3
Основные методологии программирования. Язык программирования.
Синтаксис и семантика формального языка. Классификация языков программирования. Системы программирования
1
Программирование — процесс создания компьютерных программ.
По выражению одного из основателей языков программирования Никлауса Вирта «Программы = алгоритмы + структуры данных».
Программирование основывается на использовании языков программирования, на которых записываются исходные тексты программ.
2
-Большая часть работы программистов связана с написанием исходного кода, тестированием и отладкой программ на одном из языков программирования.
-Различные языки программирования поддерживают различные стили программирования (парадигмы программирования).
-Выбор нужного языка программирования для некоторых частей алгоритма позволяет сократить время написания программы и решить задачу описания алгоритма наиболее эффективно.
-Разные языки требуют от программиста различного уровня внимания к деталям при реализации алгоритма, результатом чего часто бывает компромисс между простотой и производительностью (или между «временем программиста» и «временем пользователя»).
3
Единственный язык, напрямую выполняемый ЭВМ — это машинный язык (также называемый машинным кодом и языком машинных команд).
Изначально все программы писались в машинном коде, но сейчас этого практически уже не делается.
Вместо этого программисты пишут исходный код на том или ином языке программирования, затем, используя компилятор, транслируют его в один или несколько этапов в машинный код, готовый к исполнению на целевом процессоре, или в промежуточное представление, которое может быть исполнено специальным интерпретатором — виртуальной машиной.
Но это справедливо только для языков высокого уровня. Если требуется полный низкоуровневый контроль над системой на уровне машинных команд и отдельных ячеек памяти, программы пишут на языке ассемблера (низкоуровневый язык), мнемонические инструкции которого преобразуются один к одному в соответствующие инструкции машинного языка целевого процессора ЭВМ.
4
Тема 1. Основные методологии
программирования:
•Императивное программирование
•Структурное программирование
•Функциональное программирование
•Логическое программирование
•Объектно-ориентированное программирован ие 
–Программирование, основанное на классах
–Программирование, основанное на прототипах
•Обобщенное программирование
5
Ядро классификации определяет парадигма программирования
•Что такое парадигма?
•Парадигма программирования — это совокупность идей и
понятий, определяющих стиль написания программ.
• |
Парадигма в первую очередь определяется базовой программной |
||||||||
|
единицей и самим принципом написания программы. |
||||||||
• |
В качестве этой единицы выступают определение (декларативное, |
||||||||
|
|
|
|
|
|
|
|
|
|
|
функциональное программирование), действие ( |
||||||||
|
|
|
|
|
|
|
|
||
|
императивное программирование), правило (продукционное |
||||||||
|
|
|
|
|
|
||||
|
программирование), диаграмма переходов ( |
||||||||
|
|
|
|
|
|||||
|
автоматное программирование) и др. сущности. |
||||||||
• |
В современной индустрии программирования очень часто |
||||||||
|
парадигма программирования определяется набором |
||||||||
|
инструментов программиста, а именно, |
||||||||
|
языком программирования и используемыми библиотеками. |
||||||||
6
Парадигма программирования определяет то, в каких терминах программист описывает логику программы.
Например,
-в императивном программировании программа описывается как последовательность действий,
-в функциональном программировании программа представляется в виде выражения и множества определений функций (слово определение
(англ. definition) следует понимать в математическом смысле),
-в популярном объектно-ориентированном
программировании (в дальнейшем ООП) |
7 |
программу принято рассматривать как |
|
Замечание
Важно отметить, что парадигма
программирования не определяется однозначно языком программирования — многие современные языки
программирования являются
мультипарадигменными, то есть допускают использование различных парадигм.
Так на языке С, который не является объектно-ориентированным, можно писать
объектно-ориентированным образом, а на С+ +, в основу которого в значительной степени
положена объектно-ориентированная
парадигма, можно писать согласно стилю функционального программирования.
8
Примеры мультипарадигмальных языков программирования, разделённых по числу поддерживаемых парадигм
Две парадигмы[
Функциональная, объектно-ориентированная:
oDylan;
oScala.
Функциональная, процедурная:
oAPL.
Функциональная, логическая:
oAFL;
oCurry;
oMercury.
Четыре парадигмы
Функциональная, обобщённая, процедурная,
объектно-ориентированная:
oOCaml.
oCommon Lisp;
Пять парадигм
Объектноориентированная, обобщённая,процедурная, аспектно-ориентированная,конкурентная:
oJava.
Три парадигмы
Функциональная, процедурная, объектно-ориентированная:
oPerl; (с версии 5)
oPython;
oJavaScript;
oTcl;
oPHP; (с версии PHP 5.3 частично поддерживается функциональное программирование)
oRuby.
обобщённая, процедурная, объектно-ориентированная:
oC++;
oD.
Шесть парадигм
Объектно-ориентированная, обобщённая,
процедурная, функциональная, событийно-ориентированная, рефлексивная:
oC#.
Семь парадигм
логическая, программирование с ограничениями, функциона
(как ленивые, так и «энергичные» вычисления), процедурная (императивная), объектно-ориентированная, распределённ параллельная
oOz
9
Процедурное программирование Парадигма: императивная
•Императивная парадигма программирования описывает процесс вычислений посредством описания управляющей логики
программы, т.е. в виде последовательности отдельных команд,
которые должен выполнить компьютер. Каждая команда является
инструкцией, изменяющей состояние программы.
•Машинный код является наиболее низкоуровневым примером реализации этой парадигмы: состояние программы определяется содержимым памяти, а команды — инструкциями машинного кода. Поскольку эта парадигма естественна для человеческого понимания большинство языков программирования
придерживаются именно ее: Ada, Algol, Basic, C/ C++, Cobol,
Fortran, Java, Modula, Pascal, Perl, ,PHP и так далее.
10
