- Программа. Программирование.
- Язык программирования. Синтаксис, семантика.
- Способы представления алгоритмов. Язык блок-схем.
- Этапы решения задач на эвм.
- Информационная модель. Система.
- Декомпозиция, композиция, редукция.
- 3. Объекты данных в языках программирования
- 3.1. Имена
- 3.2. Константы
- 3.3. Переменные
- 4. Механизмы типизации
- Атрибуты переменной. Объявление, определение и инициализация переменной.
- Область видимости переменной. Время жизни переменной.
- Типы данных в языках программирования. Переполнение типа данных.
- 07 Языки программирования высокого уровня
Программа. Программирование.
Программа — это комбинация последовательности инструкций и данных, которая предназначена для исполнения на вычислительной машине.
Программирование — процесс создания компьютерных программ
Язык программирования. Синтаксис, семантика.
Язык программирования — формальный язык, предназначенный для записи компьютерных программ.
Синтаксис языка программирования — набор правил, описывающий комбинации символов алфавита, считающиеся правильно структурированной программой или её фрагментом.
Семантика в программировании — дисциплина, изучающая формализации значений конструкций языков программирования посредством построения их формальных математических моделей.
Способы представления алгоритмов. Язык блок-схем.
Способы представления алгоритмов:
- словесная запись (на естественном языке). Алгоритм записывается в виде последовательности пронумерованных команд, каждая из которых представляет собой произвольное изложение действия;
- блок–схема (графическое изображение). Алгоритм представляется с помощью специальных значков (геометрических фигур) — блоков;
- формальные алгоритмические языки. Для записи алгоритма используется специальная система обозначений (искусственный язык, называемый алгоритмическим);
- псевдокод. Запись алгоритма на основе синтеза алгоритмического и обычного языков. Базовые структуры алгоритма записываются строго с помощью элементов некоторого базового алгоритмического языка.
Язык блок-схем прост (хотя существуют его расширенные варианты):
- Прямоугольник – выполнение действия (например, c = a + b)
- Ромб – проверка условия (например, a > b). Если условие выполняется, то алгоритм идет по линии «да», если не выполняется – то по линии «нет».
- Скругленный прямоугольник – начало и конец алгоритма
- Скошенный прямоугольник – ввод-вывод данных (например, получение значения переменной, вывод результата на экран монитора). Это не полное описание языка блок-схем.
Этапы решения задач на эвм.
Этапы решения задач на ЭВМ:
- анализ требований и формальная постановка задачи
- выбор или разработка математической модели
- анализ способов решения
- логическое проектирование и разработка алгоритма
- кодирование (написание программы)
- тестирование и отладка программного обеспечения
- внедрение, использование и сопровождение программного обеспечения
Информационная модель. Система.
Информационная модель — модель объекта, представленная в виде информации, описывающей существенные для данного рассмотрения параметры и переменные величины объекта, связи между ними, входы и выходы объекта и позволяющая путём подачи на модель информации об изменениях входных величин моделировать возможные состояния объекта.
Система программирования — это система для разработки новых программ на конкретном языке программирования.
Декомпозиция, композиция, редукция.
Декомпозиция — разделение целого на части.
Композиция — это составление целого из частей.
Редукция – это основной шаг вычислений в логическом программировании, который состоит в замене текущей цели на новую цель, заданную правой частью правила
Переменная — поименованная, либо адресуемая иным способом область памяти, адрес которой можно использовать для осуществления доступа к данным. Данные, находящиеся в переменной называются значением этой переменной
В языке С++ все переменные имеют определенный тип данных. Например, переменная, имеющая целочисленный тип не может содержать ничего кроме целых чисел, а переменная с плавающей точкой — только дробные числа. Тип данных присваивается переменной при ее объявлении или инициализации.
3. Объекты данных в языках программирования
Язык программирования представляет собой абстрактную модель, в которой объекты данных и операции специфицированы в проблемно-ориентированных терминах.
Объект данных – один или несколько однотипных элементов данных, объединенных в одно целое.
Объект данных называется элементарным, если представляющее его значение является единым целым.
Объект данных называется структурным, если он представляет собой совокупность некоторых других объектов.
3.1. Имена
Имя (идентификатор) – строка символов, используемая для обозначения некоторой сущности в программе.
Пример: переменные, типы, метки, подпрограммы, формальные параметры и др.
Ключевые слова – это имена, имеющие особое значение только в определенном контексте, например, begin, end, if.
Возможность переопределения ключевых слов ухудшает надежность и удобочитаемость языка, усложняет процесс компиляции.
Предопределенные имена – имеют конкретный смысл, но не являются ключевыми словами.
Пример: имена встроенных типов данных и функций.
Предопределенные имена можно переопределять.
3.2. Константы
Константа – объект данных, имя которого связано со значением в течение всего времени жизни.
Литерал – буквальная запись значения константы.
Пример: 25, ‘a’, 34.56
Именованная константа – объект данных, который связывает имя с буквальным значением константы.
3.3. Переменные
Переменная – объект данных, который явным образом определен и именован в программе.
Простая переменная – именованный элементарный объект данных.
- Имя;
- Адрес;
- Значение;
- Тип;
- Время жизни;
- Область видимости.
Имя переменной – идентификатор, используемый в программах для ссылки на значение переменной.
Переменная представляет собой абстракцию области памяти – ячейки или совокупности ячеек памяти компьютера.
Адрес переменной – это адрес области памяти, с которой связана данная переменная.
Выделение памяти – для связывания с переменной свободная область памяти соответствующего размера извлекается из пула доступной памяти.
Освобождение памяти – разрыв связи между переменной и областью памяти, которая возвращается обратно в пул доступной памяти.
Выделение и освобождение памяти выполняется специальными программами управления памятью.
Альтернативные переменные (alias-имена) – несколько имен переменных связаны с одной и той же областью памяти.
Пример: FORTRAN – оператор EQUIVALENCE;
C++ – объединения union; Ada, Pascal – записи с вариантами.
Значение переменной – содержимое ячейки или совокупности ячеек памяти (определенная комбинация битов), связанных с данной переменной.
Тип переменной связывает переменную с множеством значений, которые она может принимать.
Время жизни переменной – время, в течение которого переменная связана с определенной областью памяти.
Область видимости переменной – последовательность операторов программы, из которых можно обратиться к этой переменной.
4. Механизмы типизации
Типы могут определяться статически и динамически. При статическом определении типа связывание осуществляется при трансляции программы, при динамическом – во время выполнения программы.
Атрибуты переменной. Объявление, определение и инициализация переменной.
Определение — это определение ранее объявленного имени (или это может быть как определение, так и объявление).
Инициализация – присвоение переменной начального значения при помощи оператора =
Область видимости переменной. Время жизни переменной.
Область видимости переменной — это те процедуры, в которых переменная может быть использована, т.е. в которых доступно значение переменной.
«Время жизни» представляет собой период во время выполнения программы, в течение которого существует переменная или функция. Время жизни идентификатора определяется длительностью его хранения.
Операции делятся на унарные, бинарные и тернарную по количеству участвующих в них операндов.
- Арифметические операторы
- Реляционные операторы
- Логические операторы
- Побитовые операторы
- Операторы присваивания
- Другие операторы
Операнд — это сущность, с которой оператор выполняет какие-либо действия. (Вычисление значения, назначение объекта или функции, создание побочных эффектов)
Арность операции — это количество задействованных в операции операндов. Например 2 + 3 — бинарная (двуместная) операция, -4 — унарная (одноместная) операция.
Типы данных в языках программирования. Переполнение типа данных.
Типы данных — атрибут, определяющий, какого рода данные могут храниться в объекте
Целочисленное переполнение — ситуация, при которой вычисленное в результате операции значение не может быть помещено в n-битный целочисленный тип данных. Различают переполнение через верхнюю границу представления и через нижнюю
В C++ определено семь основных типов данных: символьный, символьный двубайтовый, целочисленный, с плавающей точкой, с плавающей точкой двойной точности, логический (или булев) и «не имеющий значения». Для объявления переменных этих типов используются ключевые слова char, wchar_t, int, float, double, bool и void соответственно.
Приведение типов — это явление, при котором тип данных преобразуется из одного типа в другой, чтобы упростить вычисление исходного кода.
В С++ для приведения типов используются следующие функции:
Во всех случаях синтаксис приведения будет выглядеть следующим образом: . _cast (переменная)
Литерал — это некоторое выражение, создающее объект. (Целочисленные, с плавающей запятой, булевы, символов, строковые)
Массив — это последовательность объектов того же типа, которые занимают смежную область памяти.
Массив переменной длины (VLA) даёт возможность создания массивов заранее неизвестного размера в локальной памяти, т.е. в стеке
07 Языки программирования высокого уровня
Декларативными языками программирования высокого уровня являются:
Изображенная на рисунке структура данных
Лексический анализатор осуществляет .
○ поиск только служебных слов в тексте программы
○ выделение и кодирование только идентификаторов и чисел
○ анализ правильности текста программ в соответствии с грамматикой языка
● преобразование исходного текста программы в последовательность специальных символов, кодирующих слова языка
Объектно-ориентированными языками программирования высокого уровня являются:
Отличительными особенностями языков программирования высокого уровня являются
□ близость к машинному языку
□ возможность непосредственного (без дополнительного преобразования) выполнения на ЭВМ
□ ориентация на систему команд той или иной ЭВМ
■ близость к естественному языку
Пошаговый перевод программы, написанной на языке программирования, в машинные команды, которые сразу исполняются, называется .
Преимуществами языков программирования высокого уровня перед машинно-ориентированными языками являются:
□ возможность непосредственного (без дополнительного преобразования) выполнения на ЭВМ
□ ориентация на систему команд той или иной ЭВМ
□ большая эффективность по времени выполнения
■ лучшая читаемость программы
■ меньшее время разработки программы
Процедурными языками программирования являются:
Разбор текста программы на языке программирования высокого уровня в соответствии с правилами грамматики входного языка осуществляет .
Результатом синтаксического анализа программы на языке программирования высокого уровня в процессе её компиляции является .
○ граф разбора с синтаксическими атрибутами
● дерево разбора со ссылками на таблицы идентификаторов
Сообщение об ошибке в программе на языке программирования высокого уровня «Идентификатор abc не описан» выдается .
Способ описания формального языка, задающий некоторое подмножество «правильных» последовательностей из множества последовательностей символов алфавита этого языка, называется формальной .
Структура данных, изображенная на рисунке,
Тип данных языка программирования характеризуется .
○ набором методов обработки данных
○ правилами преобразования значений, заданными в описании языка программирования
● множеством допустимых значений и набором допустимых над этими значениями операций
Тип переменной в языках программирования высокого уровня определяет:
□ время её поиска в программе
□ востребованность в программе
■ диапазон возможных значений
Транслятор, который осуществляет перевод исходной программы в эквивалентную ей результирующую программу на языке машинных команд, называется .
Языками поддержки параллельных вычислений являются:
Языками программирования высокого уровня являются:
Языки программирования делятся на языки:
Языком логического программирования является .
Языком программирования высокого уровня является .
○ система обозначений, принятая в блок-схемах
○ искусственный язык, алфавит, словарный запас и синтаксис которого понятны компьютеру
○ искусственный язык, алфавит, словарный запас и семантика которого понятны компьютеру
● фиксированная система обозначений и правил для описания алгоритмов и структур данных
Языком сценариев является .
Языком сценариев является .
Языком, название которого является аббревиатурой от «универсальный символический код для начинающих» является .