Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть1_лексические основы языка.doc
Скачиваний:
5
Добавлен:
16.09.2019
Размер:
397.31 Кб
Скачать

Введение

Написание хороших программ требует ума, вкуса и терпения.

Б. Страуструп.

Мы начинаем изучение базового курса, общепрофессиональной дисциплины по специальности «Математическое обеспечение и администрирование информационных систем». В данном курсе мы будем использовать знания, полученные при изучение дисциплин «Информатика» и «Структуры и алгоритмы данных». В свою очередь эта дисциплина является базисом для изучения таких дисциплин как «Технология разработки программного обеспечения», «Функциональное программирование», «Параллельное программирование», «Рекурсивно-логическое программирование», «Базы данных и СУБД», «Теория вычислительных процессов и структур». Наш курс будет изучаться в течении трех семестров и состоять из лекционных занятий (90 часов), практических занятий (108) и, подчеркиваю, самостоятельной работы (160 часов). В первом семестре у нас будет 16 часов лекций и 32 часа практики.

Будем преследовать две основные цели:

  1. получить представление о программировании как науки и как творческом процессе, о многообразии современных языков программирования, их областях применения и особенностях, познакомиться с основными конструкциями языков программирования и способами записи алгоритмов решения задач с их помощью Подчеркиваю, что в рамках решения этой задачи речь идет не о конкретном языке программирования, а об основных концепциях. Разумеется, иллюстрация этих конструкций будет приводиться на конкретных языках программирования (С++, Pascal), но изучение синтаксиса конкретного языка – не является целью лекционных занятий;

  2. научиться работать в интегрированной среде программирования, составлять, отлаживать, тестировать и документировать программы хотя бы на одном из современным языков программирования (на практических занятиях мы будем работать в среде Borland С++ 5.01, изучать синтаксис языка С++).

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

Энциклопедический словарь Брокгауза и Эфрона 1898 года издания трактовал понятие программа как «краткое изложение того, что должно быть исполнено». Разумеется, никакого отношения к вычислительным методам такое определение не имело, однако в основе своей понимание программы как предварительного составления некоторого плана действий не противоречит современному понятию сущности программирования.

Большая советская энциклопедия (1975 г.) определила программу как «упорядоченную последовательность действий для ЭВМ, реализующую алгоритм решения задачи», а программирование – и как «процесс составления программы для ЭВМ» и как научную дисциплину, «изучающую программы для ЭВМ и способы их написания, проверки и улучшения».

Никлаус Вирт (создатель языка Паскаль, названного в честь Блеза Паскаля 17 век) определил программу следующим образом: «Программа – это конкретное, основанное на некотором реальном представлении и строении данных, воплощение абстрактного алгоритма». (Книга «алгоритмы + структуры данных = программы»).

Необходимо четко осознавать, что фактически, программа – это последовательность команд процесса ЭВМ, реализующая алгоритм решения некоторой задачи. В современном мире большинство программ создаются с помощью интегрированной система программирования. Это система содержащая текстовый редактор (где создается исходный текст программы на языке высокого уровня), транслятор (программу, формирующую объектные модули на основе исходного текста), редактор связей (программу, формирующую исполняемый модуль на основе объектных), библиотеки функций, и отладчик. (В нашем курсе лекций мы будем подробно рассматривать функции интегрированной среды программирования и этапы создания программы на языке высокого уровня во втором разделе курса).

Сегодня, когда мир вступает в информационную эпоху, программа в большинстве случае рассматривает как товар (роль Б. Гейтса!), а программирование превратилось в отрасль, которая производит самую передовую в технологическом аспекте продукцию, востребованную современной цивилизацией.

К сожалению, в России на рынке программного обеспечения наблюдается весьма плачевная картина (исключение - бухгалтерские программы). Так было не всегда. В СССР существовала мощная школа программирования (Киев, Москва, Новосибирск, Минск), которая не отставала от американской, а по ряду параметров и превосходила ее. В начале 60-х годов именно в СССР была создана самая производительная в Европе и одна из самых лучших машин в мире БЭСМ, имеющая оригинальную архитектуру. Но в конце 60-х годов руководство СССР приняло ошибочное решение начать производство машин, архитектура которых повторяла архитектуру IBM-360. После этого началось отставание по элементарной базе. Отечественные программы необходимо было вместить в меньший объем памяти и заставить работать на процессорах с меньшей производительностью. А потом была перестройка. Однако школа русского программирования сохранила свое неповторимое лицо.

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

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

Как научиться писать хорошие программы? Точно также как научиться писать хорошую прозу. Существует два совета:

  1. Знай, что хочешь сказать

  2. Тренируйся. Подражай хорошему стилю.

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

Раздел 1.Основы программирования на языке высокого уровня (на примере С++).

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

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

Первая цель в идеале требует языка близкого к компьютеру, чтобы все важные и элементы компьютера управлялись просто и эффективно способом, достаточно очевидны для программиста. Язык С создавался, отталкиваясь именно от этой идеи. Вторая цель в идеале требует языка, близкого к решаемой задачи, чтобы концепции решения были могли быть выражены понятно и непосредственно. Эта идей привела к пополнению языка с свойствами, превратившими его в С++.

Сегодня С++ самый распространенный из языков программирования. Он используется сотнями тысяч программистов практически во всех прикладных областях. В том числе С++ широко используется для обучения основам программирования. Это вызвано, прежде всего его свойствами:

  • ясен для обучения основным концепциям,

  • эффективен и гибок для реализации проектов,

  • содержателен, чтобы служить инструментом обучения сложным концепциям и методам,

  • позволяет эффективно применять полученные в процессе обучения знания.

Язык программирования С++ был разработан на основе языка С  Бьярном Страуструпом (Bjarne Strousrup) и вышел за пределы его исследовательской группы в начале 80-х годов. На первых этапах разработки язык носил условное название «С с классами», а в 1983 г. Риком Масситти (Rick Mascitti) предложил название С++, что образно отразило происхождение этого языка от языка С. Язык С++ является расширением (надмножеством) языка С, поэтому программы, написанные на С, могут обрабатываться компиляторами языка С++, а в программах, написанных на С++, можно обращаться к библиотечным функциям языкам С. Однако, язык C++ существенно отличается от C, так как поддерживает абстракцию данных и обеспечивает объектно-ориентрованное программирование. В августе 1998 г. был ратифицирован стандарт языка С++. (ISO/IES 14882). С++ поддерживает постепенный подход к обучению.