Программирование
.pdfЗАКЛЮЧЕНИЕ
Для того чтобы что-то понять — надо это уже знать. . .
Те виды информации, для которых у нас нет готовых когнитивных схем, мы просто не воспринимаем. . . В пустую голову ничего поместить нельзя.
М. Холодная Психология интеллекта: парадоксы исследования
Вы научились основам программирования, даже менее того, основам программирования на Паскале. И даже если Ваши программы при создании не требовали от Вас значительных усилий — знайте, что Вы еще новичок в программировании.
Чтобы стать экспертом, Вам предстоит написать множество различных программ на различных языках программирования. Программирование требует значительных интеллектуальных усилий. И императивное (или процедурное) программирование на таких языках, как Паскаль и C++, требует мыслить в компьютерных терминах. Со временем Вы познакомитесь с другими парадигмами программирования, для которых достаточно мышления в терминах задачи. Программировать станет легче, но никогда творческий акт, лежащий в основе программирования, не удастся передать самим компьютерам. И поэтому, возможно, ваше умение и опыт будут всегда востребованы!
ГЛОССАРИЙ
Аксиоматическая семантика — логические формулы, которые определяют («аксиоматизируют») определенные свойства программ.
Алгоритм — свод конечного числа правил, задающих последовательность выполнения операций при решении той или иной специфической задачи.
Алфавит — набор основных символов, «букв алфавита», никакие другие символы в предложениях языка не допускаются.
Булевский (логический) тип используется для представлений значений двузначной логики — всего два значения: истина, ложь.
Вещественные типы обозначают множества вещественных чисел в различных диапазонах.
Вызов подпрограммы — выполнение действий, заданных в подпрограмме, может быть произведен в некоторой точке программы посредством указания имени этой подпрограммы.
Выражение — понятие языка программирования — представляет собой формальное правило для вычисления некоторого (нового) значения.
Вычислительная структура состоит из одного или нескольких типов и некоторых основных (элементарных, базовых) операций над этими типами, каждая с результатом одного из этих типов.
Глобальные объекты — константы, типы, переменные и т. п., описанные в программе, но не являющиеся локальными.
Динамическое распределение памяти, т. е. выделение памяти для отдельных элементов данных в тот момент, когда они появляются во время выполнения программы, а не во время трансляции.
Записи — составной тип; есть абстракция конечной последовательности элементов, но в отличие от массивов объединяет значения различных типов.
Интерпретатор — транслятор, который преобразует лишь небольшой фрагмент исходной программы в машинные команды, а затем, дождавшись, когда компьютер их выполнит, переходит к обработке следующего фрагмента.
Интерпретация — переход (часто только воображаемый, мыслимый) от представления к абстрактной информации, т. е. к значению представления.
Глоссарий |
183 |
Информатика — это наука и техника, связанные с машинной обработкой, хранением и передачей информации.
Информация — называют абстрактное содержание («содержательное значение», «семантика») какого-либо высказывания, описания, указания, сообщения или известия. Внешняя форма сообщения — представление.
Компилятор — транслятор, который читает всю программу целиком и делает ее перевод на машинный язык и помещает команды в память компьютера. После того, как программа откомпилирована, исходная программа больше не нужна.
Конкатенация (сцепление) — операция со строками; применяется для соединения (сцепления) нескольких строк в одну результирующую строку.
Константа — понятие алгоритмического языка, имеет имя (обозначение) и значение (элемент данных), но в отличие от переменной значение не может измениться.
Локальные объекты — константы, типы, переменные и т. п., описанные в подпрограмме.
Массив — составной тип; каждое значение массива состоит из фиксированного числа элементов одного и того же базового типа (т. е. значение содержит фиксированное число однотипных компонент).
Множество — составной тип; возможными значениями переменных множественного типа являются все подмножества значений базового типа.
Модули — независимо хранимые и разрабатываемые, независимо компилируемые и тестируемые программные единицы со строго определенными интерфейсами, которые могут объединяться с главной программой.
Ограниченный тип определяется сужением (ограничением) допустимого диапазона значений некоторого стандартного дискретного типа. Задается минимальное и максимальное значение диапазона.
Оператор — фрагмент программы: представляет законченную фразу языка и определяет некоторый вполне законченный этап обработки данных.
Оператор ввода (чтения) — оператор, предназначенный для ввода в программу входных данных;
Оператор вывода (записи) — оператор, предназначенный для вывода из программы результатов работы.
Оператор присваивания — оператор, предназначенный для изменения значений переменных.
Оператор цикла с предусловием (цикл while) используется в случае, когда циклическими действиями управляет логическое условие и, как правило, к моменту выполнения цикла не ясно, сколько нужно повторить циклические действия.
Операционная семантика — описание последствий отдельных шагов вычислений, которые имеют место при выполнении программы.
Отладка — деятельность, направленная на установление точной природы известной ошибки в программе, а затем на исправление этой ошибки.
184 |
Глоссарий |
Параметр-значение — формальный параметр подпрограммы; передает значение внутрь подпрограммы. Вычисленное значение внутри подпрограммы невозможно с помощью параметра-значения передать наружу.
Параметр-переменная — формальный параметр подпрограммы; передает значение внутрь подпрограммы, и вычисленное значение внутри подпрограммы с помощью параметра-переменной передается наружу.
Переменная — понятие алгоритмического языка, имеет имя (обозначение) и значение (элемент данных).
Перечислимый тип — тип, который задается путем явного перечисления всех его возможных значений, причем каждое такое значение будет определяться только именем.
Подпрограмма — обособленная именованная часть программы со своим собственным локальным контекстом имен.
Программа— запись алгоритма на языке программирования.
Процедура — подпрограмма; служит для задания совокупности действий, направленных на изменение внешней по отношению к подпрограмме программной обстановки и, как следствие, определение новых значений переменных в программе. Вызов процедуры играет роль оператора.
Пустой оператор — не имеет «графического» начертания, и не производит никаких действий. Необходимость введения такого понятия диктуется в первую очередь синтаксическими причинами.
Рекурсия — организация повторения выполнения фрагмента программы, равносильная циклам.
Семантические правила определяют свойства данного понятия алгоритмического языка в зависимости от свойств используемых в них понятий.
Символьный (литерный) тип — значениями этого типа являются элементы набора литер, определяемого реализацией языка.
Синтаксис — система правил, определяющая допустимые конструкции из букв алфавита. Синтаксис отвечает на вопрос: является ли последовательность символов программой на данном языке или нет?
Синтаксические правила показывают, как образуется данное понятие алгоритмического языка из других понятий и (или) букв алфавита.
Списки — рекурсивные структуры данных; список может быть либо пустым, либо не пустым. В последнем случае он имеет голову (произвольный элемент данных) и хвост, который в свою очередь является списком.
Ссылочный тип — тип, применяемый при динамическом распределении памяти. Значение ссылочного типа (неформально) — адрес в памяти, где располагается конкретное значение базового типа.
Старшинство (приоритеты) операций — задает очередность выполнения операций, указанных в выражении.
Глоссарий |
185 |
Строковый тип данных определяет множество символьных цепочек произвольной длины от нуля символов до заданного их числа.
Структурное программирование — программирование, ориентированное на общение с людьми, а не с машиной.
Тестирование — процесс выполнения программы с намерением найти ошибки.
Технология программирования — это совокупность методов и средств разработки (написания) программ и порядок применения этих методов и средств.
Тип переменной — множество значений, которые может принимать переменная, и, как следствие, множество операций, допустимых над данной переменной.
Транслятор — программа, переводящая с алгоритмического языка на машинный язык.
Условный оператор применяется для задания разветвления в программе, т. е. выбора действий в зависимости от истинности или ложности какого-либо условия.
Файловый тип — составной тип; файл интерпретируется как потенциально бесконечный список значений одного и того же (базового) типа.
Функциональная семантика — описание функций программы, т. е. установление отношения между входными и выходными данными (экстенсиональное или наблюдаемое отношение).
Функция — подпрограмма; служит для определения алгоритма вычисления нового значения некоторого простого типа, и вызов функции должен быть операндом в выражении.
Целые типы обозначают множества целых чисел в различных диапазонах.
Цикл с параметром — оператор, позволяющий задать автоматическое изменение значения некоторой переменной и использовать эти значения в последовательных итерациях.
Язык металингвистических формул Бэкуса-Наура (язык БНФ) позволяет описывать формальные языки (в том числе и языки программирования) в виде некоторых формул.
Учебное издание
Зюзьков Валентин Михайлович
ПРОГРАММИРОВАНИЕ
Учебное пособие
Корректор Осипова Е. А. Компьютерная верстка Насынова Н. Е.
Подписано в печать 05.12.13. Формат 60х84/8. Усл. печ. л. 21,86. Тираж 300 экз. Заказ
Издано в ООО «Эль Контент» 634029, г. Томск, ул. Кузнецова д. 11 оф. 17
Отпечатано в Томском государственном университете систем управления и радиоэлектроники.
634050, г. Томск, пр. Ленина, 40 Тел. (3822) 533018.