maxim mozgovoy university of aizu aizu-wakamatsu,...

Post on 17-Jun-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Maxim Mozgovoy

University of Aizu

Aizu-Wakamatsu, JAPAN

О парадигмах программирования

“A programming paradigm is a fundamental style of computer programming, a way of building the structureand elements of computer programs.” -- Wikipedia

Выражение “building the structure” здесь неслучайно: программирование во многом сходно с возведением зданий. Даже термины сходны:

Проектирование ПО.

Архитектура ПО.

Программная инженерия.

(Однако программирование также во многом не сходно с возведением зданий )

Зачем нужны парадигмы?

std::string name;std::cin >> name;std::cout << "Hello, " << name << "!\n";

Для простых систем не нужны

Зачем нужны парадигмы?Сложную систему невозможно создать без комплексного подхода к процессу работы.

Парадигмы программирования

Процедурная

Объектно-ориентированная

Функциональная

Логическая

Современные языки программирования обычно поддерживают несколько парадигм.

Мы обсудим только ООП, но другие парадигмы заслуживают не меньшего внимания!

Каждая парадигма определяет собственные принципы проектирования программ.

Разные парадигмы, разные результаты

Главное – адекватность создаваемой системе!

Язык влияет на мышление

Любая парадигма заставляет мыслить в определённом направлении. Иногда это помогает, иногда мешает.

Standard MLfun fac 0 = 1

| fac n = n*fac(n – 1)

BASIC

r = 1

For i = 1 To n

r = r * i

Next

Вычисление n!

Домашнее задание:Гипотеза Сепира-УорфаТезис Чёрча-Тьюринга

Парадигмы и паттерны

Каждая парадигма определяет собственные паттерны.

“A design pattern is a general reusable solution to a commonly occurring problem within a given context” – Wikipedia

Следуя определённой парадигме, мы постоянно сталкиваемся с одними и теми же проблемами, поэтому полезно представлять себе типичные решения.

“Get into a rut early: Do the same process the same way. Accumulate idioms. Standardize. The only difference(!) between Shakespeare and you was the size of his idiom list -not the size of his vocabulary.” – Alan Perlis

Парадигмы и паттерны

Пример: готическая архитектура

паттерн: нервюры

паттерн: контрфорсы

Программирование и архитектураКаждая программа уникальна!(Незачем создавать заново то, что можно скопировать.)

Таким образом, программисты – это архитекторы.

top related