Программирование на языке высокого уровня Программирование на языке высокого уровня Рассмотрены общие принципы высокоуровневого программирования, непосредственным образом связанного с изучением алгоритмов, в рамках технологического процесса. Излагаемый материал можно рассматривать как синтез трех аспектов: технологического, вычислительного и языкового. Технология определяет этапы решения задач, отвечает на вопрос, что программировать, позволяет оценить результаты. Алгоритмизация дает ответ на вопрос, как возможно решить поставленные задачи. Высокоуровневый язык обеспечивает программистов средствами реализации решения поставленных задач. При подготовке учебника использован опыт передовых предприятий, занимающихся промышленной разработкой программного обеспечения и специализирующихся на высокоточных программных системах. Для студентов высших учебных заведений. Академия, Academia 978-5-7695-6673-8
1043 руб.
Russian
Каталог товаров

Программирование на языке высокого уровня

Временно отсутствует
?
  • Описание
  • Характеристики
  • Отзывы о товаре
  • Отзывы ReadRate
Рассмотрены общие принципы высокоуровневого программирования, непосредственным образом связанного с изучением алгоритмов, в рамках технологического процесса. Излагаемый материал можно рассматривать как синтез трех аспектов: технологического, вычислительного и языкового. Технология определяет этапы решения задач, отвечает на вопрос, что программировать, позволяет оценить результаты. Алгоритмизация дает ответ на вопрос, как возможно решить поставленные задачи. Высокоуровневый язык обеспечивает программистов средствами реализации решения поставленных задач. При подготовке учебника использован опыт передовых предприятий, занимающихся промышленной разработкой программного обеспечения и специализирующихся на высокоточных программных системах.

Для студентов высших учебных заведений.
Отрывок из книги «Программирование на языке высокого уровня»
ВВЕДЕНИЕ
Что такое программирование и какова роль языка
программирования в этом процессе
Давайте под программированием понимать процесс составления инструкций для их последующего выполнения формальным механизмом, именуемым в быту компьютером. В данном случае это электронное устройство, которое может хранить в своей памяти инструкцию (программу), выполнять в определенной последовательности отдельные части (команды) этой инструкции и изменять в соответствии с этими командами состояние своей памяти и, возможно, подключенных к этому компьютеру внешних устройств.
Как правило, конечной целью является не сама программа
(инструкция), а тот эффект, который вызывает ее исполнение.
Это может быть перевод самого компьютера в некоторое новое состояние (изменение состояния памяти), внешние эффекты, производимые внешними устройствами (звуки, краски на экране, печать символов на бумаге) и т. д. Часто это называют решением некоторой задачи: показ видеоролика, обмен сообщениями, начисление заработной платы, расчет орбиты космического аппарата и пр.
В этой трактовке процесс программирования и решение задачи можно сравнить с процессом приготовления пиццы. Представьте себе, что вам потребовалось накормить пиццей своих друзей. Исключим из рассмотрения собственно процесс кормления и поедания, а посмотрим, что ему предшествует, т. е. наша задача — приготовить пиццу.
Самый простой вариант — запросить доставку пиццы по телефону. Это предполагает, что в вашем городе имеется служба, которая обладает всеми необходимыми ресурсами и инструкциями по приготовлению и доставке готовой продукции. От вас требуется только определить параметры необходимого продукта (большая или маленькая, с грибами или с мясом, тип соуса и т. д.). Это можно рассматривать как программу (инструкцию), предполагается, что все остальное (сколько и чего класть, сколько запекать
и прочее) ваш компьютер знает сам.
Другими словами, вам потребовался язык программирования
с очень мощными командами (изготовить такую-то пиццу, привезти ее по такому-то адресу), параметры которых и определили процесс решения задачи. А если у вас не столь продвинутый компьютер (в городе нет службы доставки пиццы, и вам придется готовить ее самому)? Что тогда?
Тогда ваша программа (инструкция) решения задачи будет
намного длиннее. В свою очередь, команды ее будут проще. Они будут описывать, сколько взять муки, как приготовить начинку, в каком режиме запекать и т. п.
Таким образом, существенную роль в понимании программирования играет понятие уровня языка, на котором пишутся программы. Упрощенно можно сказать, что уровень языка тем выше, чем меньшим числом его команд можно выразить решение задачи. На нижнем уровне языков находятся языки кодов вычислительной машины. В конечном итоге именно она выполняет составленную программистом программу.
Следует иметь в виду, что и эти, так называемые машинные
языки тоже отличаются по своему уровню. Так, в одной машине операция по вычислению суммы двух чисел может выглядеть следующим образом: взять первое число, прибавить к нему второе, записать результат, т.е. машина последовательно выполнит три команды своего машинного языка (кода). В другой машине для этого действия потребуется всего одна команда (сложить операнды с записью результата).
Зарождение языков программирования
Для лучшего понимания текущего момента в области языков
программирования давайте проследим пути их развития.
Первые программы составлялись программистами непосредственно на машинных языках (в кодах). Отсутствие единообразия в парке вычислительных машин не позволяло переносить программы, составленные для одной машины на другую, из-за различия в системе команд (отсутствие мобильности). Кроме того,процесс кодирования программы требовал от программиста детального знания нескольких десятков (100—200) машинных кодов и правил их применения, что требовало его длительного специального обучения. В результате процесс составления программы был чрезвычайно трудоемок, а ее понимание другим программистом — весьма затруднительным.
Первый шаг к автоматизации программирования был сделан
по пути создания машинно-ориентированного языка, в котором коды команд были заменены их мнемоническими обозначениями. Например, не 17, а сл (сложить), не 37, а выч (вычесть) и т. д.
Кроме того, вместо явного указания адресов операндов стало возможным использовать мнемоничные названия (идентификаторы).
Вычисление площади прямоугольника могло быть теперь записано в форме: УМ ВЫСОТА,ШИРИНА,ПЛОЩАДЬ
Языки подобного рода стали называть мнемокодами, автокодами, ассемблерами. Последнее название чаще всего используется и сейчас. В ряде случаев создавались специализированные автокоды, инструкциям которых соответствовали десятки машинных команд. Программирование на подобных языках существенно сократило сроки подготовки программ и упростило обучение
программистов.
Перевод с языка мнемонических команд в машинные коды
стал выполняться специальными программами — трансляторами. Программа-транслятор отображает символические имена операндов в адреса памяти вычислительной машины и заменяет мнемонические названия операций на соответствующие машинные коды.

Оставить заявку на описание
?
Содержание
Принятые сокращения
Введение
ЧАСТЬ I
ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ
Гл а в а 1. Процесс создания программного обеспечения 12
1.1. Появление технологии программирования 12
1.2. Жизненный цикл разработки ПО 13
1.2.1. Каскадная модель 13
1.2.2. Процессная, или поэтапная, модель с промежуточным
контролем 15
1.2.3. Спиральная модель 16
1.2.4. Формальные преобразования 18
1.2.5. Интеграция ранее созданных компонент 19
1.3. Жизненный цикл ПО 20
1.4. Документация 21
Гл а в а 2. Управление разработкой 26
2.1. Коллективы разработчиков 26
2.1.1. Операционная бригада 27
2.1.2. Распределенная разработка 27
2.1.3. Разработка программ с открытыми кодами
(Open Source) 28
2.1.4. Гибкие методологии разработки 29
2.1.5. Методология Scrum 31
2.1.6. Экстремальное программирование 33
2.2. Управление качеством 35
Гл а в а 3. Разработка требований 38
3.1. Специфицирование 38
3.2. Модели систем 40
3.2.1. Методология SADT 41
3.2.2. Унифицированный язык моделирования UML 45
3.2.3. ER-модель данных 48
3.2.4. Язык спецификации и описания SDL 50
3.3. Прототипирование 50
ЧАСТЬ II
АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ
Гл а в а 4. Вычислимость 54
4.1. Вычислимость и программирование 54
4.2. Ламбда-исчисление 55
4.2.1. Грамматика ламбда-исчисления 55
4.2.2. Каррирование 56
4.2.3. Использование скобок 56
4.2.4. Свободные и связанные переменные 57
4.2.5. Подстановка 57
4.2.6. Переименование переменных 58
4.2.7. Парадокс вывода любого равенства 58
4.2.8. Конверсия 59
4.2.9. Редукция 60
4.3. Рекурсивные функции 61
4.4. Машины Тьюринга 64
4.5. Другие системы вычислимости 69
4.5.1. Машина Поста 69
4.5.2. Нормальные алгоритмы А.А.Маркова 70
4.5.3. Аппликативные вычисления 72
4.6. Неразрешимые задачи 72
Гл а в а 5. Языки высокого уровня 80
5.1. Причины появления ЯВУ 80
5.2. Электронные вычислительные машины 81
5.2.1. Краткая история развития ЭВМ 81
5.2.2. Структура вычислительной системы 83
5.3. История развития ЯВУ 88
5.4. Классификация ЯВУ 89
5.5. Какой язык следует считать хорошим 91
5.5.1. Простота языка 92
5.5.2. Ясность программы 92
5.5.3. Естественность в приложениях 92
5.5.4. Легкость расширения 93
5.5.5. Внешнее обеспечение 93
5.5.6. Эффективность 94
5.6. Структура программы 95
5.7. Управляющие операторы 97
5.8. Процедуры и функции 100
5.9. Модули 105
5.10. Компиляция и трансляция 106
5.11. Надежность и надежное программирование 110
5.11.1. Написание программы, работающей без ошибок 112
5.11.2. Обнаружение и устранение ошибок в ходе
выполнения программы 120
5.11.3. Устойчивость 121
Гл а в а 6. Основы программирования 124
6.1. Язык программирования 124
6.2. Первая программа 125
6.3. Объявление переменных 133
6.4. Основные операторы 135
6.4.1. Арифметические операторы 136
6.4.2. Логические операторы 140
6.4.3. Операторы сравнения 146
6.4.4. Индексирование 148
6.5. Управляющие операторы 151
6.5.1. Оператор if 152
6.5.2. Оператор switch 155
6.5.3. Оператор while 157
6.5.4. Оператор for 160
6.6. Инструкции прерывания 161
6.6.1. Инструкция break 161
6.6.2. Инструкция continue 162
6.6.3. Инструкция return 163
6.7. Ламбда-выражения 166
Гл а в а 7. Введение в объектно-ориентированное
программирование 168
7.1. Основные принципы 168
7.2. Создание объектов 169
7.3. Члены класса 170
7.4. Модификаторы доступа 171
7.5. Статические члены класса 174
7.6. Наследование 175
7.7. Виртуальные методы 181
Гл а в а 8. Методы проектирования 184
8.1. Цель проектирования 184
8.2. Структурное проектирование 184
8.3. Объектно-ориентированное проектирование 186
8.4. Нисходящий и восходящий подходы 193
Гл а в а 9. Типизация данных 196
9.1. Основные сведения 196
9.2. Стек, очередь и дек 201
9.3. Стандартные типы данных 202
9.3.1. Логический тип 202
9.3.2. Целые числа 203
9.3.3. Вещественные числа 208
9.3.4. Символьный тип 210
9.3.5. Множества 211
9.3.6. Файлы 213
9.4. Пользовательские типы данных 214
9.4.1. Перечислимый тип 214
9.4.2. Тип «диапазон» 216
9.4.3. Массивы 216
9.4.4. Записи 217
9.4.5. Записи с вариантной частью 217
9.5. Динамические типы 219
9.5.1. Динамическая память 219
9.5.2. Указатели 220
9.5.3. Преобразование типов и коллизии 221
9.5.4. Статика и динамика — различия в работе
с переменными 222
9.5.5. Динамические переменные 222
9.6. Абстрактные типы 227
9.6.1. Понятие абстрактного типа данных 227
9.6.2. Операции абстрактного типа данных 230
9.6.3. Реализация абстрактного типа 234
9.6.4. Проблемы абстрактных типов данных 235
9.6.5. Уровни абстракции 237
9.7. Скрытые типы 238
9.8. Вывод и сообщения об ошибках 241
Гл а в а 10. Алгоритмы 243
10.1. Понятие алгоритма 243
10.2. Вычислительная сложность алгоритмов 245
10.3. Рекурсия 251
10.3.1. Расширенный алгоритм Евклида 256
10.4. Поиск 260
10.4.1. Устройства С.Н.Корсакова 260
10.4.2. Поиск элемента в последовательности 263
10.4.3. Поиск подстроки 265
10.5. Сортировка 270
10.5.1. Метод простых вставок 273
10.5.2. Метод Шелла 275
10.5.3. Сортировка с вычислением адреса 277
10.5.4. Слияние 280
10.5.5. Метод пузырька 281
10.5.6. Параллельная сортировка Бэтчера 282
10.5.7. Быстрая сортировка (Хоара) 284
10.5.8. Поразрядная обменная сортировка 286
10.5.9. Простой выбор 288
10.5.10. Сортировка при помощи дерева 289
10.5.11. Пирамидальная сортировка 290
ЧАСТЬ III
АНАЛИЗ И ТЕСТИРОВАНИЕ
Гл а в а 11. Тестирование и верификация 295
11.1. Введение в тестирование 295
11.2. Качество программного обеспечения 296
11.3. Инспекции 297
11.4. Тестовые примеры и тест-план 299
11.5. Основные подходы и полнота тестирования 301
11.6. Метод «черного ящика» 305
11.7. Метод «белого ящика» 310
11.8. Заглушки 312
11.9. Тестирование реализации протокола Нидхема—Шредера 313
11.10. Этапы тестирования. Нисходящий и восходящий подходы 319
11.11. Сопровождение тестов 322
11.12. Валидация 325
Гл а в а 12. Анализ моделей 328
12.1. Задачи моделирования 328
12.2. Модель Долева—Яy 330
12.3. BAN-логика 333
12.3.1. Основные принципы 333
12.3.2. Нотация 334
12.3.3. Формальное определение требований 335
12.3.4. Анализ протокола Нидхема—Шредера 335
12.4. CSP-алгебра 337
12.4.1. Процессы и события 338
12.4.2. Трассы 345
12.4.3. Коммуникации 350
12.4.4. Спецификации требований 352
12.4.5. Анализ протокола Нидхема—Шредера 353
12.5. PI-исчисление и его расширения 356
12.5.1. Основные определения 356
12.5.2. Операционная семантика 360
12.5.3. SPI-исчисление 362
12.6.Область применения методов анализа моделей 365
12.7. Практический анализ моделей протоколов 367
Приложение 369
Пример реализации протокола Нидхема—Шредера 369
Список литературы 385
Штрихкод:   9785769566738
Аудитория:   18 и старше
Бумага:   Офсет
Масса:   465 г
Размеры:   217x 145x 20 мм
Тираж:   2 500
Литературная форма:   Учебник
Тип иллюстраций:   Схемы, Таблицы
Отзывы
Найти пункт
 Выбрать станцию:
жирным выделены станции, где есть пункты самовывоза
Выбрать пункт:
Поиск по названию улиц:
Подписка 
Введите Reader's код или e-mail
Периодичность
При каждом поступлении товара
Не чаще 1 раза в неделю
Не чаще 1 раза в месяц
Мы перезвоним

Возникли сложности с дозвоном? Оформите заявку, и в течение часа мы перезвоним Вам сами!

Captcha
Обновить
Сообщение об ошибке

Обрамите звездочками (*) место ошибки или опишите саму ошибку.

Скриншот ошибки:

Введите код:*

Captcha
Обновить