Материал: Программирование на языке высокого уровня Лекции 09.03.01

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Раздел 2. Язык программирования С/С++ как язык программирования высокого уровня. Лекции 8-

22.

Тема 8. Понятие о языке программирования и среде программирования. Виды реализаций языков программирования.

Средой (или системой) программирования называют комплекс программ, предназначенный для создания, отладки и выполнения программ, создаваемых программистом на том или ином языке.

В состав среды программирования входят транслятор с языка программирования, компоновщик, отладчик, редактор, система помощи, библиотека стандартных подпрограмм и т.д.

Язык программирования – это набор правил, определяющих систему записей, составляющих программу, синтаксис и семантику используемых грамматических конструкций.

Синтаксис

языка

программирования –

совокупность

правил

записи, которым должна удовлетворять любая программа.

 

 

Семантика

языка

программирования

набор

правил,

определяющих

 

смысловое

содержание

элементов

 

языка

программирования.

 

 

 

 

 

 

Реализация языка – это программа, которая преобразует текст

программы

на

каком-либо

языке

программирования

в

последовательность машинных команд.

Имеется два вида средств реализации (трансляторов) – компиляторы и интерпретаторы.

Компилятор осуществляет перевод в несколько этапов, причем для перехода к следующему этапу требуется, чтобы предыдущий этап был полностью и успешно завершен. При переводе программы с языка C компилятор работает в три прохода – препроцессорная обработка, синтаксический анализ, перевод в машинный код. После компиляции производится компоновка, во время которой устанавливаются смысловые связи между отдельными частями программы и соединяются модули, откомпилированные отдельно. Результатом компиляции и компоновки является программа в машинных кодах, которая затем выполняется без участия среды программирования.

Интерпретатор работает с программой построчно. Каждая строка программы проверяется на наличие ошибок, если их нет, то сразу переводится и выполняется.

Тема 9. Характеристики и свойства языков программирования.

Основными характеристиками , позволяющими сравнивать языки программирования и выбирать наилучшие для решения той или иной

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

6

задачи, являются мощность, уровень, надежность, удобочитаемость, полнота, гибкость, простота, мобильность и эффективность.

Мощность языка характеризуется количеством и разнообразием задач, алгоритмы решения которых можно записать, используя этот язык. Любую задачу, запрограммированную на каком-либо языке, можно запрограммировать и на машинном языке.

Уровень языка характеризуется сложностью решения задач с помощью этого языка. Чем проще для человека записать решение задачи, тем выше уровень языка.

Надежность языка обеспечивает при написании программ минимум

ошибок, которые не обнаруживаются при компиляции.

 

Удобочитаемость языка – это свойство,

обеспечивающее

легкость восприятия программ человеком.

 

 

Полнота языка обеспечивает описание на языке решений как

можно большего числа задач определенной предметной области.

Гибкость языка обеспечивает легкость выражения на языке

необходимых

для

решения

задач

действий,

предоставляет

программисту достаточно возможностей для выражения всех операций в программе.

Простота языка обеспечивает легкость понимания семантики языковых конструкций и запоминания их синтаксиса.

Мобильность языка обеспечивает независимость его от аппаратных средств, позволяет переносить программное обеспечение с одного типа компьютера на другой с относительной легкостью.

Эффективность языка обеспечивает высокоэффективную работу программ, написанных на этом языке.

Темы 10-11. Программа на языке программирования С/С++. Понятие о структурном программировании. Стандартные типы данных.

С – это универсальный язык программирования, сочетающий в себе как высокоуровневые, так и низкоуровневые черты. В частности, низкоуровневой является возможность в некоторых ситуациях принудительно назначать место в памяти для хранения данных. К высокоуровневым особенностям, например, относится отсутствие механизмов ввода-вывода, которые реализованы с помощью явно вызываемых функций.

Этот язык был создан в 1972 году Деннисом Ритчи (Bell Laboratories). Основными его предшественниками являются:

Algol – 1960 год – разработан специально созданным международным комитетом – большое внимание было уделено модульной структуре программы;

CPL (Combined Programming Language) – 1963 год – разработка

Лондонского и Кембриджского университетов;

 

BCPL – 1967

год – разработан Мартином Ричардсом – получен

выделением из CPL

его основных свойств;

 

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

7

В – 1970 год – разработан Кеном Томпсоном из Bell Laboratories – еще большее упрощение – пригоден для узкого круга системных задач.

Впоследствии Деннис Ритчи дополнил систему типов данных языка В без потери его простоты.

Программа на языке С состоит из произвольного количества функций, причем одна из них должна называться main(). Выполнение программы начинается с первой инструкции этой функции.

Тело функции представляет из себя перечень действий, которые необходимо выполнить. Этот список действий заключается в фигурные скобки. Перед телом функции помещается заголовок.

Как правило, функция main() среди своих действий содержит вызовы других функций, которые могут создаваться самим программистом или содержаться в библиотеках, входящих в комплект поставки.

# include <stdio.h> main()

{

printf(“Здравствуй, мир!\n”);

}

 

Вначале программы помещается конструкция, позволяющая

подключить информацию о стандартной библиотеке ввода-вывода. Знак # показывает, что данная строка должна быть выполнена до начала процесса перевода программы в машинный код.

Если необходимо в теле одной функции вызвать другую, то к

ней надо обратиться по имени,

указав в скобках после имени

список параметров, которые надо

передать в вызываемую функцию

для работы. Если функции не надо ничего передавать, то в строке вызова круглые скобки остаются, но в них ничего не будет.

Комбинация “\n” внутри строки означает на необходимость перейти на новую строку при печати. Существует несколько таких последовательностей, начинающихся с наклонной черты, которые служат для печати трудно представимых символов.

В языке C существует четыре базовых типа данных:

-символьный (char);

-целый (int);

-действительный (float);

-двойной точности(double).

Имеется также несколько квалификаторов, которые можно использовать для расширения числа типов данных. Это квалификаторы long (длинный), short (короткий), unsigned (беззнаковый) и signed (со знаком). Знаковым или беззнаковым может объявляться любой целый тип (в том числе и тип char), а long и short применяются к типу int. Кроме этого существует тп long double.

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

8

Стандарт языка С не устанавливает размер памяти, который должен быть выделен на тот или иной тип. При этом некоторые соотношения между типами в стандарте описаны. Например,

short int <= int <= long int.

Реально выделенный размер можно узнать при помощи конструкции sizeof(тип) или sizeof(переменная).

Кроме переменных в программах на С используются константы. Целую константу от действительной можно отличить по наличию десятичной точки.

Символьная константа – это целое число, записанное в виде символа, заключенного в одиночные кавычки. Значением символьной константы является код символа, зависящий от используемой системы кодировки. Символьные константы могут участвовать в операциях по тем же правилам, что и целые переменные или константы.

Некоторые трудно представимые символы записываются как комбинация нескольких других символов. Такие комбинации называются Esc-последовательностями. К ним, например, относятся:

\n – переход на новую строку \a –

звонок

\t

– горизонтальная табуляция \f –

перевод страницы

\\

- собственно наклонная черта.

 

Строковая константа – это произвольное количество символов, заключенных в двойные кавычки, которые не являются составной частью строки. Такая строка фактически воспринимается как массив символов, а в конце этого массива присутствует специальный невидимый символ завершения строки \0.

Символьная константа и строка, содержащая один символ, воспринимаются компьютером совершенно по разному. Так, “a” воспринимается как массив из двух символов, а ‘a’ – как число, равное коду буквы a.

Константы перечисления – это список целых констант. Первое имя в списке имеет значение 0, следующее – 1 и т.д. Если значение какой-нибудь константы явно определено, то следующие константы продолжаю прогрессию с шагом 1.

enum aaa {A,B=8,C}.

Все переменные должны быть описаны до их использования, при своем описании переменная может быть инициализирована (то есть ей может быть присвоено начальное значение). В языке С описание переменных разрешается в начале функции или начале блока.

К любой переменной может быть применен квалификатор const для запрета в дальнейшем изменения значения этой переменной. Константы принято инициализировать при описании в обязательном порядке.

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

9

if(a<=5)
t=t+1;
r=7;

Темы 12-15. Управляющие структуры языка С/С++.

Структуры, реализующие последовательность.

Для того чтобы любое выражение языка воспринималось как действие, в конце его необходимо поставить точку с запятой.

a=5;

Если необходимо, чтобы с точки зрения синтаксиса несколько действий воспринимались как одно, то перед первым из этих

действий необходимо открыть фигурную скобку, а после

последнего

– закрыть. Такая конструкция называется составной

инструкцией

или составным оператором.

 

Структуры, реализующие развилку.

 

Основной конструкцией для реализации развилки является оператор if-else.

if (условие)

действие;

else

действие; Если по какой-то ветви необходимо выполнить более чем одно

действие, то нужны фигурные скобки. if(a>5)

{b=3;

t=4;}

else

a=29;

k=11;

Очень часто не поставленные или неверно поставленные фигурные скобки вызывают не только синтаксические ошибки, обнаруживаемые при компиляции, но и смысловые ошибки, из-за которых программа работает неверно.

else – часть может отсутствовать. В этом случае, если условие ложно, то управление передается на следующий оператор программы.

if (a>5)

;

else

t=t+1;

r=7;

В случае, когда нескольким вложенным друг в друга или идущим друг за другом операторам if соответствует один оператор else, этот else считается относящимся к ближайшем if.

if(t > t1)

if(t > t1)

{

if (n<0)

 

if (n<0)

 

n=n+m;

 

n=n+m; }

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

 

10

Источник: https://studfile.net/preview/16415559/