Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 8 лет назад пользователемВалерия Андогская
1 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 1 (32) Бублик Володимир Васильович кафедра мультимедійних систем кімн. 1/204 консультації віторок 13 год. Процедурне програмування С/С++ Лекція 1. Парадигми і мови програмування Ресурси: distedu.ukma.kiev.ua
2 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 2 (32) Література Передумова: Н.Вирт, Систематическое программирование, М., Мир, В.В.Бублик, Конспект лекцій С++, С.Б.Липпман, Ж.Лажойе, Язык программирования С++, вводный курс, ДМК, М., Б.Страуструп, Язык программирования С++. Специальное издание, БИНОМ, М., Т.А.Павловская, С/С++ Программирование на языке высокого уровня, Питер, СПб, Г.Шилдт, Полный справочник по С, Вильямс, Б.Страуструп, Программирование. Принципы и практика использования С++, Вильямс, 2011
3 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 3 (32) Література Передумова: Н.Вирт, Систематическое программирование, М., Мир, В.В.Бублик, Конспект лекцій С++, С.Б.Липпман, Ж.Лажойе, Язык программирования С++, вводный курс, ДМК, М., Б.Страуструп, Язык программирования С++. Специальное издание, БИНОМ, М., Т.А.Павловская, С/С++ Программирование на языке высокого уровня, Питер, СПб, Г.Шилдт, Полный справочник по С, Вильямс, Б.Страуструп, Программирование. Принципы и практика использования С++, Вильямс, 2011 Adieu summer!
4 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 4 (32) Ресурси Шукайте цікаві нові ресурси, діліться ними з товаришами, але не забувайте класику…
5 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 5 (32) Важлива книга про С The White Book
6 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 6 (32) Нова книга Страуструпа
7 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 7 (32) Корисні книги про С++
8 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 8 (32) Мови програмування (повторення) Формальна мова в тому числі мова програмування - це множина слів у заданому алфавіті Слова мовою програмування – це програми, здатні керувати певними виконавцями (головним чином комп'ютерами) Запам'ятайте! В першу чергу програми пишуться для того, щоб їх читали люди (колеги по роботі, члени команди програмістів, рецензенти, супроводжувачі, студенти тощо)
9 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 9 (32) Мови програмування (повторення) This page has been intentively left blank
10 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 10 (32) Визначення мови програмування Синтаксис визначає граматично правильні слова (програми) –begin real 123x; end. Семантика наділяє програми змістом –begin writeln(Hello, world!); end. Прагматика визначає призначення і умови застосування мови програмування –Мову програмування ФОРТРАН використовують для математичних розрахунків, а КОБОЛ - для економічних.
11 Формальний синтаксис Контекстно-вільна граматика G = Т – множина термінальних символів N – множина нетермінальних символів (понять) ξ -> w – граматичне правило: ξ є N, w є (T U N)* R – множина граматичних правил ξ 0 – початковий символ Формальна мова L c T* - множина усіх слів в термінальному алфавіті T, що виводяться з початкового символу ξ 0 застосуванням правил із заданого набору R © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 11 (32)
12 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 12 (32) Практичні способи визначення синтаксису Форми Бекуса-Наура Діаграми Вірта
13 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 13 (32) Форми Бекуса-Наура Нетермінальні символи беруть у кутові дужки ::= ::= a|b|c|d||e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z ::=0|1|2|3|4|5|6|7|8|9 ::= | | Завдання. Записати систему форм Бекуса-Наура для визначення чисел з рухомою крапкою.
14 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 14 (32) Синтаксичні діаграми Вірта Буква Цифра Ідетифікатор Число
15 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 15 (32) Семантика мов програмування Глока куздра штеко будланула бокра i курдячить бокреня …Варчилось… Хлив'язкі тхурки Викрули, свербчись навкрузі, Жасумновілі худоки Гривіли зехряки у чузі Не кожній синтаксично коректній конструкції можна надати семантику –begin real x; boolean x; integer x; end. Потрібні додаткові семантичні обмеження
16 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 16 (32) Види семантики Операційна семантика визначає правила, за якими програма мовою програмування перетворюється на послідовність машинних команд Денотаційна (математична) семантика ставить програмі у відповідність функцію, що визначає перетворення вхідних даних у вихідні –z =max(x,y) Аксіоматична (логічна) семантика визначає спосіб виведення заключної умови на вихідні данні із заданих початкових умов на вхідні –{x>0} y := sqrt(x); {y = x 2 }
17 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 17 (32) Прагматика Умови застосування мови програмування значною мірою визначаються парадигмою (парадигмами), що підтримується (підтримуються) цією мовою Якщо прогрес мистецтва програмування в цілому вимагає постійного винайдення і вдосконалення парадигм, то вдосконалення умінь окремого програміста вимагає розширення свого репертуару парадигм. Роберт Флойд Robert Floyd ( )
18 Парадигми програмування Описова (декларативна) що? що шукати? що будувати? що рахувати? Наказова (імперативна) спочатку роби одне, а потім інше –Процедурна Структурована –Об'єктна (модульна, абстрактні типи даних) –Ієрархічна (об'єктно-орієнтована) © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 18 (32)
19 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 19 (32) Парадигми і мови програмування Paradigm From Wikipedia, the free encyclopedia Since the late 1800s, the word paradigm has referred to a thought pattern in any scientific discipline1800sscientificdiscipline (in computing) a paradigm is a style of programming, usually enforced by the programming language usedparadigmprogrammingprogramming language
20 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 20 (32) Наша мета reuse Reuse це здатність коду легко налаштовуватися на нові застосування в нових умовах (легко = без перепрограмування) Помилковий переклад: повторне використання Not reusable: Процедурна парадигма надто конкретна function max(x:integer, y:integer): integer; max (1, 2); max (pi,e)? max (прикладна математика, програмна інженерія)?
21 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 21 (32) Простір для інтерпретацій в процедурній парадигмі Піди туди, не знаю куди, принеси таке, не знаю яке Народна алгоритмічна творчість Не роби сьогодні те, що можна відкласти до завтра
22 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 22 (32) Мови програмування
23 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 23 (32) FORmula TRANSlator CКВАДРАТНИЙ КОРІНЬ З ДІЙСНОГО ЧИСЛА REAL FUCTION ROOT (A) S=A*.5 IF (A.EQ.0) GO TO 20 10T=(S+A/S)*.5 IF (ABS((T-S)/T).LE.1.T-6) GO TO 20 S=T GO TO 10 20ROOT=S END John Backus ( )
24 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 24 (32) Структуроване програмування Структури керування Послідовне виконання дій P;Q Розгалуження if F then P else Q Цикл while F do P; do P until F; for i:=a to b do P; NB DO 1 I= A(I) = B(I) Edsger Wybe Dijkstra
25
© Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 25 (32) Control structures + Data structures = Pascal function root(a: real,eps:real): real; var s, t: real; begin s:=a*0.5; if a<>0 then repeat t:=s; s:=(s+a/s)*O.5; until abs(s-t)/s
26 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 26 (32) Back to Hardware! Мова програмування C double root (double x, double eps) { double s=0.5*x; double t; if (x!=0) do { t=s; s=(s+x/s)*0.5; } while ((fabs(s-t)/s)>eps); return s; }; Dennis Ritchie
27 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 27 (32) The White Book: K&R Brian Kernighan
28 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 28 (32) Incrementing C to C++ Мультипарадигменне програмування –Процедурна парадигма (++С підмножина С++) –Об'єктна парадигма (класи+об'єкти) –Ієрархічна парадигма (ієрархії об'єктів + ієрархії класів) –Узагальнене програмування (типи самі стали параметрами) template Type max (Type x, Type y) { return (x>y? x: y); } Bjarne Stroustrup
29 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 29 (32) Роздільна компіляція # відкомпілювати prog.c cc -c prog.c # визначити залежності: table.o : table.c table.h # відкомпілювати prog.c cc -c table.c # визначити залежності: prog.o: prog.o table.o func.o # зібрати робочу програму ld prog.o table.o func.o -o prog
30 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 30 (32) Підготовка і виконання програм Програмний проект Система програмування: Текстовий редактор Препроцесор Компілятор Компонувальник Налагоджувач Будемо використовувати Microsoft Visual Studio 2008, але досить Microsoft Visual Studio 6.0
31 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 31 (32) Висновки Навіть процедурна парадигма допускає певну міру нових застосувань, якщо не робити надто жорстких припущень, уникати зайвої деталізації і правильно визначати інтерфейси Не можна навчитися плавати, сидячи на березі і слухаючи поради тренера. Щоб не плавати на іспиті, пускайтеся плавом прямо зараз! 31
32 © Бублик В.В. Процедурне програмування. 1. Парадигми і мови програмування 32 (32) Висновки Навіть процедурна парадигма допускає певну міру нових застосувань, якщо не робити надто жорстких припущень, уникати зайвої деталізації і правильно визначати інтерфейси Не можна навчитися плавати, сидячи на березі і слухаючи поради тренера. Щоб не плавати на іспиті, пускайтеся плавом прямо зараз! Нагадую консультації: віторок з 13 год 32 Глядіть мені!
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.