Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_тема1_2_лексические основы языка_СГТУ.doc
Скачиваний:
10
Добавлен:
14.08.2019
Размер:
90.62 Кб
Скачать

6

Лекции по дисциплине «Программирование»

Автор – Шульга Т.Э.

Введение

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

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

Курс «Программирование» имеет две основные цели:

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

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

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

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

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

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

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

В современном мире большинство программ создаются с помощью интегрированной система программирования (IDEIntegrated Development Environment). Это программная система, содержащая

  • текстовый редактор (где создается исходный текст программы на языке программирования),

  • транслятор (программу, формирующую объектные модули на основе исходного текста),

  • редактор связей (программу, формирующую исполняемый модуль на основе объектных),

  • библиотеки функций и классов,

  • отладчик.

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

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

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

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

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

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

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

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

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

Язык С был разработан в начале 1970-х годов сотрудниками копмании Bell Labs Кеном Томпсоном и Денисом Ритчи как развитие языка Би. Несмотря на то, что Си не разрабатывался для новичков, он числе широко используется для обучения основам программирования. Это вызвано, прежде всего его свойствами:

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

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

  • синтаксис языка является основой для многих современных языков программирования, поддерживающих сложным концепции и методы.