Разделы презентаций


Современные методы и понятия программирования

Содержание

ПрограммаЛекции - экзаменСеминарские занятияПрактика на ЭВМ – зачёт (необходимое условие для экзамена)

Слайды и текст этой презентации

Слайд 1Современные методы и понятия программирования
(В круге втором)

Базовые
Бульонков Михаил Алексеевич
ИСИ СО

РАН

Современные методы и понятия программирования(В круге втором)БазовыеБульонков Михаил АлексеевичИСИ СО РАН

Слайд 2Программа
Лекции - экзамен
Семинарские занятия
Практика на ЭВМ – зачёт (необходимое условие

для экзамена)

ПрограммаЛекции - экзаменСеминарские занятияПрактика на ЭВМ – зачёт (необходимое условие для экзамена)

Слайд 3Рекомендации
Разговаривать только с лектором
исправлять замеченные ошибки лектора
задавать вопросы по ходу

лекции
Входить и выходить в любое время, не отвлекая аудиторию
Пропуски лекций

не фиксируются
Распечать конспекты
старосты групп могут получить, написав письмо по адресу mike@iis.nsk.su
РекомендацииРазговаривать только с лекторомисправлять замеченные ошибки лекторазадавать вопросы по ходу лекцииВходить и выходить в любое время, не

Слайд 4Литература
Болски М.И. Язык программирования Си. М.: «Радио и связь». 1988.
Керниган

Б., Ритчи Д., Фбюэр А. Язык программирования Си. Задачи по

языку Си. М.: «Финансы и статистика», 1985
Грогоно П. Программирование на языке Паскаль. М. «Мир», 1982
Н.Вирт. Алгоритмы + структуры данных = программы. М.: «Мир», 1985.
Пярнпуу А.А. Программирование на Алголе и Фортране. М.: «Наука»,
1978Пейган Ф. Практическое руководство по Алголу 68. М.: «Мир», 1979.

Языки программирования Ада, Си, Паскаль. М.: «Радио и связь», 1989
Геллер Д.П., Фридман Д.П. Структурное программирование на АПЛ. М.: «Машиностроение», 1982
Сафонов В.О. Автокод Эльбрус. ЛГУ, 1982.
Входной язык для системы АЛЬФА-6 (руководство к пользованию). ВЦ СО АН СССР. Новосибирск, 1976.
Ахо А., Хопкрофт Дж., Ульман Дж. Структуры данных и алгоритмы. 384 стр., с ил.; 2000, 4 кв.; Вильямс
Ахо А., Сети Р., Ульман Дж. Компиляторы: принципы, технологии и инструменты, – М.: «Вильямс». 2001.

ЛитератураБолски М.И. Язык программирования Си. М.: «Радио и связь». 1988.Керниган Б., Ритчи Д., Фбюэр А. Язык программирования

Слайд 5Что такое программирование?
Заставить кого-то сделать что-то, что нам хочется
Устав ВС
Кулинарная

книга
ПДД
Гипноз, реклама, НЛП
Программирование ЭВМ


Что такое программирование?Заставить кого-то сделать что-то, что нам хочетсяУстав ВСКулинарная книгаПДДГипноз, реклама, НЛППрограммирование ЭВМ

Слайд 6Виды программирования (1)
Пользовательское программирование – создание программ для конечных пользователей


Надёжность, устойчивость, «защита от дурака»
Интуитивность, удобство пользовательского интерфейса
Эффективность
Гуманитарные аспекты

Виды программирования (1)Пользовательское программирование – создание программ для конечных пользователей Надёжность, устойчивость, «защита от дурака»Интуитивность, удобство пользовательского

Слайд 7Виды программирования (2)
Системное программирование – создание программ для создания программ
Операционные

системы
Система управления базами данных
Системы программирования
Системы автоматизации проектирования (САПР)
Математические пакеты
...

Виды программирования (2)Системное программирование – создание программ для создания программОперационные системыСистема управления базами данныхСистемы программированияСистемы автоматизации проектирования

Слайд 8Виды программирования (3)
Технология программирования – средства организации процесса програмирования
Проектирование
Докуменирование
Отладка, тестирование
Сопровождение,

версионность

Виды программирования (3)Технология программирования – средства организации процесса програмированияПроектированиеДокуменированиеОтладка, тестированиеСопровождение, версионность

Слайд 9Виды программирования (4)
Теоретическое программирование –программа, как предмет исследования.
Дискретная математика, кибернетика

(структуры данных, алгоритмы)
Теория вероятности (сложность)
Алгебра и логика (программа – формула)
Системный

анализ (проектирование)
Виды программирования (4)Теоретическое программирование –программа, как предмет исследования.Дискретная математика, кибернетика (структуры данных, алгоритмы)Теория вероятности (сложность)Алгебра и логика

Слайд 10Логическая модель ЭВМ
Вычислитель
Исполнитель
Условие
Управление
Память
Данные
Команды
Результаты
Виды команд:
Арифметические, битовые
Присваивания, пересылки
Ввод/вывод
Управляющие

Процессор

Логическая модель ЭВМВычислительИсполнительУсловиеУправлениеПамятьДанныеКомандыРезультатыВиды команд:Арифметические, битовыеПрисваивания, пересылкиВвод/выводУправляющиеПроцессор

Слайд 11Дискретная память
Бит - элементарная единица хранения информации: 2 значения –

0 и 1 (или 3? Или 10?)
Байт – минимальная адресуемая

группа битов из 8 битов (или 6? или 9? Или 10?)
Слово – группа из 4-х байтов, с которой может оперировать одна команда (или 2? Или 6?)
Сегменты, страницы, тэгированная память ....

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

0 1

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

0 1

Бит

Байт

Байт

Слово

...

Дискретная памятьБит - элементарная единица хранения информации: 2 значения – 0 и 1 (или 3? Или 10?)Байт

Слайд 12Операционная система
Внутренние функции
Управление ресурсами (память, время, бумага)
Реакция на сигналы, аварийные

ситуации
Статистика
Внешние функции
Создание процессов и их взаимодействие
Файловая система
Интерфейс

Операционная системаВнутренние функцииУправление ресурсами (память, время, бумага)Реакция на сигналы, аварийные ситуацииСтатистикаВнешние функцииСоздание процессов и их взаимодействиеФайловая системаИнтерфейс

Слайд 13Языки программирования: машинные языки
Программа
Хранится в (кодовом сегменте) памяти
Представляется последовательностью 0

и 1
Интерпретируется процессором
Пример:
00010010 10000100

Код команды
Операнд

Языки программирования: машинные языкиПрограмма Хранится в (кодовом сегменте) памятиПредставляется последовательностью 0 и 1Интерпретируется процессоромПример:			00010010 10000100Код командыОперанд

Слайд 14Языки программирования: ассемблер
.MODEL SMALL
.DATA
b

DW 5
c

DW 3
a DW ?
.CODE
begin MOV AX,@DATA
MOV DS,AX
MOV AX,B
ADD AX,C
MOV A,AX
MOV AH,4CH
INT 21H
END begin

Мнемокод:
Мнемоники команд вместо их двоичного представления
Мнемонические названия ячеек памяти: как данных, так и команд

Языки программирования: ассемблер .MODEL SMALL      .DATAb     DW

Слайд 15Языки программирования: ассемблер
Достоинства
Понимаемость
Простота модификации кода (например, вставка команд)
Простота и прозрачность преобразования

(трансляции) в машинный язык

Языки программирования: ассемблерДостоинстваПонимаемостьПростота модификации кода (например, вставка команд)Простота и прозрачность преобразования (трансляции) в машинный язык

Слайд 16Языки программирования: макроассемблер
Определение:

MI MACRO C1,C2,CP,MP
MOV ax,C1 I
MUL C2
MOV CP,dx


MOV MP,ax
ENDM

Вызовы в программе:

MI DI,A,S1,S2
MI S,2,DI,SI
Макросредства:
Определение

макроса – текстового шаблона с параметрами
Библиотеки макросов
Условная генерация текста
Языки программирования: макроассемблерОпределение: 	MI MACRO C1,C2,CP,MPMOV ax,C1 IMUL C2 MOV CP,dx MOV MP,ax ENDMВызовы в программе: MI

Слайд 17Языки программирования: макроассемблер
Достоинства
Расширяемость, повышение уровня абстракции
Переиспользование кода (библиотеки)

Языки программирования: макроассемблерДостоинстваРасширяемость, повышение уровня абстракцииПереиспользование кода (библиотеки)

Слайд 18АЯВУ – алгоритмические языки высокого уровня
Императивные

Algol-60, Fortran, COBOL
Algol-68, Simula-67, PL/I
Pascal,

C, Ada, Modula-2, C++
Java, C#

АЯВУ – алгоритмические языки высокого уровняИмперативныеAlgol-60, Fortran, COBOLAlgol-68, Simula-67, PL/IPascal, C, Ada, Modula-2, C++Java, C#

Слайд 19АЯВУ – алгоритмические языки высокого уровня

Логические – Planner, Prolog, Gödel…
Факты

+ правила вывода => новые факты
Логический вывод
Функциональные – Lisp, Scheme,

Miranda, ML, Haskel, Рефал…
программа представляется совокупностью определений функций
λ-исчисление, унификация (сопоставление с образцом), нормальные алгорифмы Маркова.
АЯВУ – алгоритмические языки высокого уровняЛогические – Planner, Prolog, Gödel…Факты + правила вывода => новые фактыЛогический выводФункциональные

Слайд 20Реализация языков программирования
Интерпретатор языка L на языке I
Итеративно выбирает очередную

команду в программе на языке L
Немедленно выполняет соответствующую последовательность действий

в языке I.

L

I

Реализация языков программированияИнтерпретатор языка L на языке IИтеративно выбирает очередную команду в программе на языке LНемедленно выполняет

Слайд 21Реализация языков программирования
Транслятор (компилятор) с языка L1 в язык L2

на языке I
Программа на языке I
Переводит все команды программы на

языке L1 в язык L2
Составляет (компилирует) из переведённых команд программу на языке L2 (но не исполняет её!)

L1

I

L2

Реализация языков программированияТранслятор (компилятор) с языка L1 в язык L2 на языке IПрограмма на языке IПереводит все

Слайд 22Реализация языков
Трансляция транслятора


Трансляция интерпретатора
L3
I
L4
L1
L3
L2
L1
L4
L2
L
L1
L
L2
L1
I
L2

Реализация языковТрансляция транслятораТрансляция интерпретатораL3IL4L1L3L2L1L4L2LL1LL2L1IL2

Слайд 23Реализация языков
Многофазная трансляция
Пример:
L1 = С с командами препроцессора
L2 = С
L3

= внутреннее представление
L4 = макроассемблер
I = машинный язык
P – программа

на языке L1
Q – программа на языке I, эквивалентная P

L1

I

L2

L2

I

L3

L4

I

I

L3

I

L4

P

Q

Реализация языковМногофазная трансляцияПример:L1 = С с командами препроцессораL2 = СL3 = внутреннее представлениеL4 = макроассемблерI = машинный

Слайд 24Реализация языков
Многоуровневая интерпретация
Пример:
L1 = Gödel
L2 = Prolog
L3 = Lisp
L4 =

C
I – машинный язык
L2
L3
I
L3
P
L4
I
I
L3
L4
L1
L2

Реализация языковМногоуровневая интерпретацияПример:L1 = GödelL2 = PrologL3 = LispL4 = CI – машинный языкL2L3IL3PL4IIL3L4L1L2

Слайд 25Реализация языков
Раскрутка (boot-strapping)
L1 = ядро языка C (присваивания, простые выражения,

безусловный и условный переход, процедуры без параметров)
L2 = L1 +

сложные выражения
L3 = L2 + if, switch
L4 = L3 + while, loop
L5 = L4 + процедуры с параметрами
....
Ln = полный С
I = машинный язык

Li

I

I

Li+1

Li

I

Li+1

I

I

Ln

Ln

I

Результат:

Ln

I

I

Реализация языковРаскрутка (boot-strapping)L1 = ядро языка C (присваивания, простые выражения, безусловный и условный переход, процедуры без параметров)L2

Слайд 26Реализация языков
Кросс-компиляция
I0 –язык инструментальной машины
I1 –язык целевой машины
L – реализуемый

язык

L
I0
I1
L
L
I1
L
I1
I1
L
I0
I
L
L
I1
L
I0
I1

Реализация языковКросс-компиляцияI0 –язык инструментальной машиныI1 –язык целевой машиныL – реализуемый языкLI0I1LLI1LI1I1LI0ILLI1LI0I1

Слайд 27Система программирования
Текстовый редактор – текст программы (.c, .h)
Включаемые файлы –

предопределённые макросы (.h)
Транслятор – перевести программу на машинный язык (.obj)
Библиотеки

– «заготовки» программ на машинном языке (.lib)
Редактор связей – собрать готовую программу из частей (.exe)
Загрузчик – поместить программу в память на исполнение
Система программированияТекстовый редактор – текст программы (.c, .h)Включаемые файлы – предопределённые макросы (.h)Транслятор – перевести программу на

Слайд 28Система программирования
person.c
read.c
main.c
person.h
io.h
person.obj
read.obj
main.obj
Транслятор
graph.h
io.lib
Редактор связей
graph.lib
My1stProg.exe

Система программированияperson.cread.cmain.cperson.hio.hperson.objread.objmain.objТрансляторgraph.hio.libРедактор связейgraph.libMy1stProg.exe

Слайд 29Система программирования
Справочная система – контекстная помощь
Отладка – пошаговое исполнение, точки

останова, просмотр текущих значений переменных...
Тестирование – проверка правильности работы программы

на заранее заготовленных примерах
Профилирование – частота исполнения фрагментов программы
Система программированияСправочная система – контекстная помощьОтладка – пошаговое исполнение, точки останова, просмотр текущих значений переменных...Тестирование – проверка

Слайд 30Система программирования
Документирование – комментирование текста программы, создание пользовательской и системной

документации
Управление хранением исходных текстов – версионность, совместная работа
Средства анализа исходных

текстов – перекрёстные ссылки, проверка выполнения инвариантов, обнаружение потенциальных ошибок исполнения
Рефакторинг – языково-ориентированная модификация текста программы.
Система программированияДокументирование – комментирование текста программы, создание пользовательской и системной документацииУправление хранением исходных текстов – версионность, совместная

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика