Реферат на тему современные системы программирования

Обновлено: 30.06.2024

ИНФОРМАТИКА- НАУКА, ИЗУЧАЮЩАЯ СПОСОБЫ АВТОМАТИЗИРОВАННОГО СОЗДАНИЯ, ХРАНЕНИЯ, ОБРАБОТКИ, ИСПОЛЬЗОВАНИЯ, ПЕРЕДАЧИ И ЗАЩИТЫ ИНФОРМАЦИИ.

ИНФОРМАЦИЯ – ЭТО НАБОР СИМВОЛОВ, ГРАФИЧЕСКИХ ОБРАЗОВ ИЛИ ЗВУКОВЫХ СИГНАЛОВ, НЕСУЩИХ ОПРЕДЕЛЕННУЮ СМЫСЛОВУЮ НАГРУЗКУ.

ЭЛЕКТРОННО-ВЫЧИСЛИТЕЛЬНАЯ МАШИНА (ЭВМ) ИЛИ КОМПЬЮТЕР (англ. computer- -вычислитель)-УСТРОЙСТВО ДЛЯ АВТОМАТИЗИРОВАННОЙ ОБРАБОТКИ ИНФОРМАЦИИ. Принципиальное отличие использования ЭВМ от всех других способов обработки информации заключается в способности выполнения определенных операций без непосредственного участия человека, но по заранее составленной им программе. Информация в современном мире приравнивается по своему значению для развития общества или страны к важнейшим ресурсам наряду с сырьем и энергией. Еще в 1971 году президент Академии наук США Ф.Хандлер говорил: "Наша экономика основана не на естественных ресурсах, а на умах и применении научного знания".

В развитых странах большинство работающих заняты не в сфере производства, а в той или иной степени занимаются обработкой информации. Поэтому философы называют нашу эпоху постиндустриальной. В 1983 году американский сенатор Г.Харт охарактеризовал этот процесс так: "Мы переходим от экономики, основанной на тяжелой промышленности, к экономике, которая все больше ориентируется на информацию, новейшую технику и технологию, средства связи и услуги.."

2. КРАТКАЯ ИСТОРИЯ РАЗВИТИЯ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ.

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

В вычислительных машинах первого поколения основными элементами были электронные лампы. Эти машины занимали громадные залы, весили сотни тонн и расходовали сотни киловатт электроэнергии. Их быстродействие и надежность были низкими, а стоимость достигала 500-700 тысяч долларов.

Появление более мощных и дешевых ЭВМ второго поколения стало возможным благодаря изобретению в 1948 году полупроводниковых устройств- транзисторов. Главный недостаток машин первого и второго поколений заключался в том, что они собирались из большого числа компонент, соединяемых между собой. Точки соединения (пайки) являются самыми ненадежными местами в электронной технике, поэтому эти ЭВМ часто выходили из строя.

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

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

СОВРЕМЕННЫЕ КОМПЬТЕРЫ- ЭТО ЭВМ ЧЕТВЕРТОГО ПОКОЛЕНИЯ, В КОТОРЫХ ИСПОЛЬЗУЮТСЯ БОЛЬШИЕ ИНТЕГРАЛЬНЫЕ СХЕМЫ.

90-ые годы ХХ-го века ознаменовались бурным развитием компьютерных сетей, охватывающих весь мир. Именно к началу 90-ых количество подключенных к ним компьютеров достигло такого большого значения, что объем ресурсов доступных пользователям сетей привел к переходу ЭВМ в новое качество. Компьютеры стали инструментом для принципиально нового способа общения людей через сети, обеспечивающего практически неограниченный доступ к информации, находящейся на огромном множестве компьюторов во всем мире - "глобальной информационной среде обитания".

6.ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ В КОМПЬЮТЕРЕ И ЕЕ ОБЪЕМ.

ЭТО СВЯЗАНО С ТЕМ, ЧТО ИНФОРМАЦИЮ, ПРЕДСТАВЛЕННУЮ В ТАКОМ ВИДЕ, ЛЕГКО ТЕХНИЧЕСКИ СМОДЕЛИРОВАТЬ, НАПРИМЕР, В ВИДЕ ЭЛЕКТРИЧЕСКИХ СИГНАЛОВ. Если в какой-то момент времени по проводнику идет ток, то по нему передается единица, если тока нет- ноль. Аналогично, если направление магнитного поля на каком-то участке поверхности магнитного диска одно- на этом участке записан ноль, другое- единица. Если определенный участок поверхности оптического диска отражает лазерный луч- на нем записан ноль, не отражает- единица.

ОБЪЕМ ИНФОРМАЦИИ, НЕОБХОДИМЫЙ ДЛЯ ЗАПОМИНАНИЯ ОДНОГО ИЗ ДВУХ СИМВОЛОВ-0 ИЛИ 1, НАЗЫВАЕТСЯ 1 БИТ (англ. binary digit- двоичная единица). 1 бит- минимально возможный объем информации. Он соответствует промежутку времени, в течение которого по проводнику передается или не передается электрический сигнал, участку поверхности магнитного диска, частицы которого намагничены в том или другом направлении, участку поверхности оптического диска, который отражает или не отражает лазерный луч, одному триггеру, находящемуся в одном из двух возможных состояний.

Итак, если у нас есть один бит, то с его помощью мы можем закодировать один из двух символов- либо 0, либо 1.

Если же есть 2 бита, то из них можно составить один из четырех вариантов кодов: 00 , 01 , 10 , 11 .

Если есть 3 бита- один из восьми: 000 , 001 , 010 , 100 , 110 , 101 , 011 , 111 .

1 бит- 2 варианта,

2 бита- 4 варианта,

3 бита- 8 вариантов;

Продолжая дальше, получим:

4 бита- 16 вариантов,

5 бит- 32 варианта,

6 бит- 64 варианта,

7 бит- 128 вариантов,

8 бит- 256 вариантов,

9 бит- 512 вариантов,

10 бит- 1024 варианта,

N бит - 2 в степени N вариантов.

В обычной жизни нам достаточно 150-160 стандартных символов (больших и маленьких русских и латинских букв, цифр, знаков препинания, арифметических действий и т.п.). Если каждому из них будет соответствовать свой код из нулей и единиц, то 7 бит для этого будет недостаточно (7 бит позволят закодировать только 128 различных символов), поэтому используют 8 бит.

ДЛЯ КОДИРОВАНИЯ ОДНОГО ПРИВЫЧНОГО ЧЕЛОВЕКУ СИМВОЛА В КОМПЬЮТЕРЕ ИСПОЛЬЗУЕТСЯ 8 БИТ, ЧТО ПОЗВОЛЯЕТ ЗАКОДИРОВАТЬ 256 РАЗЛИЧНЫХ СИМВОЛОВ.

СТАНДАРТНЫЙ НАБОР ИЗ 256 СИМВОЛОВ НАЗЫВАЕТСЯ ASCII ( произносится "аски", означает "Американский Стандартный Код для Обмена Информацией"- англ. American Standart Code for Information Interchange).

ОН ВКЛЮЧАЕТ В СЕБЯ БОЛЬШИЕ И МАЛЕНЬКИЕ РУССКИЕ И ЛАТИНСКИЕ БУКВЫ, ЦИФРЫ, ЗНАКИ ПРЕПИНАНИЯ И АРИФМЕТИЧЕСКИХ ДЕЙСТВИЙ И Т.П.

A - 01000001, B - 01000010, C - 01000011, D - 01000100, и т.д.

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

Набор ASCII был разработан в США Американским Национальным Институтом Стандартов (ANSI), но может быть использован и в других странах, поскольку вторая половина из 256 стандартных символов, т.е. 128 символов, могут быть с помощью специальных программ заменены на другие, в частности на символы национального алфавита, в нашем случае - буквы кириллицы. Поэтому, например, передавать по электронной почте за границу тексты, содержащие русские буквы, бессмысленно. В англоязычных странах на экране дисплея вместо русской буквы Ь будет высвечиваться символ английского фунта стерлинга, вместо буквы р - греческая буква альфа, вместо буквы л - одна вторая и т.д.

ОБЪЕМ ИНФОРМАЦИИ, НЕОБХОДИМЫЙ ДЛЯ ЗАПОМИНАНИЯ ОДНОГО СИМВОЛА ASCII НАЗЫВАЕТСЯ 1 БАЙТ.

Очевидно что, поскольку под один стандартный ASCII-символ отводится 8 бит,

Остальные единицы объема информации являются производными от байта:

1 КИЛОБАЙТ = 1024 БАЙТА И СООТВЕТСТВУЕТ ПРИМЕРНО ПОЛОВИНЕ СТРАНИЦЫ ТЕКСТА,

1 МЕГАБАЙТ = 1024 КИЛОБАЙТАМ И СООТВЕТСТВУЕТ ПРИМЕРНО 500 СТРАНИЦАМ ТЕКСТА,

1 ГИГАБАЙТ = 1024 МЕГАБАЙТАМ И СООТВЕТСТВУЕТ ПРИМЕРНО 2 КОМПЛЕКТАМ ЭНЦИКЛОПЕДИИ,

1 ТЕРАБАЙТ = 1024 ГИГАБАЙТАМ И СООТВЕТСТВУЕТ ПРИМЕРНО 2000 КОМПЛЕКТАМ ЭНЦИКЛОПЕДИИ.

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

СКОРОСТЬ ПЕРЕДАЧИ ИНФОРМАЦИИ ПО ЛИНИЯМ СВЯЗИ ИЗМЕРЯЕТСЯ В БОДАХ.

1 БОД = 1 БИТ/СЕК.

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

7. СЖАТИЕ ИНФОРМАЦИИ НА ДИСКЕ

ИНФОРМАЦИЮ НА ДИСКЕ МОЖНО ОБРАБОТАТЬ С ПОМОЩЬЮ СПЕЦИАЛЬНЫХ ПРОГРАММ ТАКИМ ОБРАЗОМ, ЧТОБЫ ОНА ЗАНИМАЛА МЕНЬШИЙ ОБЪЕМ.

Существуют различные методы сжатия информации. Некоторые из них ориентированы на сжатие текстовых файлов, другие - графических, и т.д. Однако во всех них используется общая идея, заключающаяся в замене повторяющихся последовательностей бит более короткими кодами. Например, в романе Л.Н.Толстого "Война и мир" несколько миллионов слов, но большинство из них повторяется не один раз, а некоторые- до нескольких тысяч раз. Если все слова пронумеровать, текст можно хранить в виде последовательности чисел - по одному на слово, причем если повторяются слова, то повторяются и числа. Поэтому, такой текст (особенно очень большой, поскольку в нем чаще будут повторяться одни и те же слова) будет занимать меньше места.

Сжатие информации используют, если объем носителя информации недостаточен для хранения требуемого объема информации или информацию надо послать по электронной почте

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

Подготовка задачи для решения на ЭВМ состоит из нескольких этапов:

формулировка условия задачи;

выбор метода ее решения (например, численного для математических задач);

разработка схемы алгоритма;

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

Алгоритм - это система правил, описывающая последовательность действий, которые необходимо выполнить, чтобы решить задачу [3]. Алгоритм - некоторая последовательность предписаний (правил), однозначно определяющих процесс преобразования исходных и промежуточных данных в результат решения задачи.

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

Основные характеристики алгоритма: дискретность, определенность, результативность, массовость.

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

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

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

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

2. Формы представления алгоритмов

Существуют различные формы представления алгоритмов:

словесное описание алгоритма на естественном языке (вербальная форма);

построчная запись алгоритма;

запись на каком-либо языке программирования.

Рассмотрим особенности первых двух форм на примере алгоритма Евклида - нахождения наибольшего общего делителя (НОД) для двух целых положительных чисел.

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

Например, если числа равны, НОД равен одному из них. В противном случае надо из большего числа вычесть меньшее, полученную разность запомнить вместо значения большего числа и повторить все сначала.

Построчная запись алгоритма - это запись на естественном языке, но с соблюдением некоторых дополнительных правил:

шаги (предписания) нумеруются;

исполнение шагов происходит в порядке возрастания номеров шагов, начиная с первого (если не встречается никаких специальных указаний);

Пример: [1] Чтение А, В

[2] Если А=В, идти к [8]

[3] Если А>В, идти к [6]

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

Наиболее наглядный способ представления алгоритмов - их изображение в виде схем - последовательности блоков (рис.14), предписывающих выполнение определенных функций, и связей между ними [6]. Внутри блоков указывается поясняющая информация, характеризующая выполняемые ими действия. Конфигурацию и размер блоков, а также порядок построения схем определяет ГОСТ 19002 и 19003.

Выполнение алгоритма всегда начинается с блока начала и оканчивается при попадании на блок конца. Порядок вычисление определяется стрелками.

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

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

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

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

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

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

Блок модификация задает условия для выполнения одной и той же последовательности шагов с изменяемой информацией.

3.Основные алгоритмические структуры

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

Линейный вычислительный процесс - это процесс, блоки которого выполняются последовательно один за другим (порядок выполнения блоков естественный).

Например, составить структурную схему алгоритма для вычисления по формуле:

Вычисление по формуле представляет собой линейный вычислительный процесс. Исходные данные a, b, c, x. Cтруктурная схема алгоритма представлена на рис. 15.

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

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

Схема циклического процесса в общем виде приведена на рис.17.

В данной схеме блоки имеют следующее назначение:

1 - блок задания начального значения параметра цикла;

2 - тело цикла, то есть участок вычислительного процесса, который многократно повторяется;

3 - блок изменения параметра цикла;

4 - блок проверки условия выхода из цикла.

Циклическая разветвляющаяся структура

Схема алгоритма циклического разветвляющегося процесса представлена на рис.19.

4. Структурное программирование

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

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

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

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

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

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

4.2. Нисходящее проектирование

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

Такой подход удобен тем, что позволяет человеку постоянно мыслить на предмет-ном уровне, не опускаясь до конкретных операторов и переменных. Кроме того, появляется возможность некоторые подпрограммы не реализовывать сразу, а вре-менно откладывать, пока не будут закончены другие части. Например, если имеется необходимость вычисления сложной математической функции, то выделяется отдельная подпрограмма такого вычисления, но реализуется она временно одним оператором, который просто присваивает заранее выбранное значение (например, 5). Когда все приложение будет написано и отлажено, тогда можно приступить к реа-лизации этой функции.

Немаловажно, что небольшие подпрограммы значительно проще отлаживать, что существенно повышает общую надежность всей программы.

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

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

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

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

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

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

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

Подпрограмма состоит из нескольких частей: заголовка с параметрами, тела под-программы (операторов, которые будут выполняться при ее вызове) и завершения подпрограммы.

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

После того как функция рассчитала нужное значение, ей требуется явно вернуть его в вызывающую программу. Для этого может использоваться специальный опе-ратор (return в Си++) или особая форма оператора присваивания, когда в левой части указывается имя функции, а справа -- возвращаемое значение.

Пример функции, вычисляющей значение квадрата аргумента в Бейсике:

FUNCTION SQR% (X AS INTEGER)

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

Параметры, которые указываются в заголовке подпрограммы, называются фор-мальными. Они нужны только для описания тела подпрограммы. А параметры (кон-кретные значения), которые указываются в момент вызова подпрограммы, назы-ваются фактическими параметрами. При выполнении операторов подпрограммы формальные параметры как бы временно заменятся на фактические.

5. Событийно-ориентированное программирование

С активным распространением системы Windows и появлением визуальных RAD-сред широкую популярность приобрел событийный подход к созданию программ -- событийно-ориентированное программирование.

События могут быть пользовательскими, возникшими в результате действий поль-зователя, системными, возникающими в операционной системе (например, сообще-ния от таймера), и программными, генерируемыми самой программой (например, обнаружена ошибка и ее надо обработать).

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

6. Объектно-ориентированное программирование.

6.1. Понятие объекта

Развитие идей структурного и событийного программирования существенно под-няло производительность труда программистов и позволило в разумные сроки (несколько месяцев) создавать приложения объемом в сотни тысяч строк. Однако такой объем уже приблизился к пределу возможностей человека, и потребовались новые технологии разработки программ.

В начале 80-х годов в программировании возникло новое направление, основанное на понятии объекта. До того времени основные ограничения на возможность созда-ния больших систем накладывала разобщенность в программе данных и методов их обработки.

Реальные объекты окружающего мира обладают тремя базовыми характеристиками: они имеют набор свойств, способны разными методами изменять эти свойства и реагировать на события, возникающие как в окружающем мире, так и внутри самого объекта. Именно в таком виде в языках программирования и реализовано понятие объекта как совокупности свойств (структур данных, характерных для этого объекта), методов их обработки (подпрограмм изменения свойств) и событий, на которые данный объект может реагировать и которые приводят, как правило, к изменению свойств объекта.

Появление возможности создания объектов в программах качественно повлияло на производительность труда программистов. Максимальный объем приложений, которые стали доступны для создания группой программистов из 10 человек, за несколько лет увеличился до миллионов строк кода, при этом одновременно удалось добиться высокой надежности программ и, что немаловажно, повторно использо-вать ранее созданные объекты в других задачах.

Объекты могут иметь идентичную структуру и отличаться только значениями свойств. В таких случаях в программе создается новый тип, основанный на единой структуре объекта (по аналогии с тем, как создаются новые типы для структур данных). Он называется классом, а каждый конкретный объект, имеющий струк-туру этого класса, называется экземпляром класса.

Описание нового класса похоже на описание новой структуры данных, только к полям (свойствам) добавляются методы -- подпрограммы.

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

Класс -- это тип данных, такой же, как любой другой базовый или сложный тип. На его основе можно описывать конкретные объекты (экземпляры классов).

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

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

Важнейшая характеристика класса -- возможность создания на его основе новых классов с наследованием всех его свойств и методов и добавлением собственных. Класс, не имеющий предшественника, называется базовым.

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

Технологии объектного, событийного и структурного программирования сегодня объединены в RAD-системах, которые содержат множество готовых классов, пред-ставленных в виде визуальных компонентов, которые добавляются в программу одним щелчком мыши. Программисту надо только спроектировать внешний вид окон своего приложения и определить обработку основных событий -- какие опера-торы будут выполняться при нажатии на кнопки, при выборе пунктов меню или щелч-ках мышкой. Весь вспомогательный исходный код среда сгенерирует сама, позво-ляя программисту полностью сосредоточиться только на реализации алгоритма.

Современные языки программирования [19.03.13]

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

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

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

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

Наименование задачи, которая будет решена в практической части:

- произвести расчет стоимости междугородних телефонных разговоров абонента по заданным значениям;

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

Для оформления курсовой работы использован пакет прикладных программ Microsoft Office 2007: приложения Microsoft Word 2007 и Microsoft Excel 2007.

Применяемые технические средства: компьютер: Intel Pentium E2180 2.00GHz, 1,00 ГБ ОЗУ, система Microsoft Windows XP Professional 32-bit Service Pack 3 версия 2002.

1.Теоретическая часть

Вариант № 44

1.1.Основные понятия и классификация языков программирования

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

Поэтому сегодня практически все программы создаются с помощью языков программирования. Теоретически программу можно написать и средствами обычного человеческого (естественного) языка — это называется программированием на метаязыке (подобный подход обычно используется на этапе составления алгоритма), но автоматически перевести такую программу в машинный код пока невозможно из-за высокой неоднозначности естественного языка. [2, С.569]

Языки программирования – это формальные искусственные языки. Как и естественные языки,они имеют алфавит, словарный запас, грамматику и синтаксис, а также семантику.

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

Синтаксис – система правил, определяющих допустимые конструкции языка программирования из букв алфавита.

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

Взаимодействие синтаксических и семантических правил определяет основные понятия языка, такие как операторы, идентификаторы, константы, переменные, функции, процедуры и т.д. В отличие от естественных, язык программирования имеет ограниченный запас слов (операторов) и строгие правила их написания, а правила грамматики и семантики, как и для любого формального языка, явно однозначно и четко сформулированы. [4, С.319]

Классификация языков программирования:

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

По факту созданию процесса языки программирования делятся на создающие процесс и сценарные.

  • Языки создающие процесс. После запуска программы создается отдельный процесс выполнения этой программы. Так происходит в языках C, C++, Object Pascal.
  • Сценарные языки. Сценарий, или скрипт, - это программа, которую выполняет другая программа. В качестве примеров можно привести скрипты оболочки в UNIX, программы на языках PHP, Python, Ruby.

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

  • Автономные языки программирования (C, C++, Java) являются автономным инструментом для создания программ.
  • Встроенные языки программирования являются частью какой-то системы и позволяют создавать программы, предназначенные для работы только в этой системе. Пример наиболее известного встроенного языка – VBA (Visual Basic for Application), который используется только внутри приложений Microsoft Office для автоматизации и расширения их функциональности. Встроенными являются также язык программирования системы 1C и язык JavaScript, который выполняется только внутри интернет-приложений.

По уровню отдаленности языка программирования от естественных языков их делят на низкоуровневые и высокоуровневые.

  • Языки низкого уровня ближе к логике процессора вычислительной машины, например, машинный язык, ассемблер.
  • Языки высокого уровня ближе лингвистически к человеческому языку. Это все остальные языки программирования.

По парадигмам языки программирования делятся на императивные (процедурные), функциональные, логические и объектно-ориентированные.

  • Императивные (процедурные) языки описывают решение задачи как последовательность процедур. К императивным относится большинство современных языков программирования.
  • Функциональные языки описывают требуемый результат в виде набора вложенных друг в друга функций (Haskell).
  • Логические языки описывают требуемый результат в виде суммы логических операций (Prolog).
  • Объектно-ориентированные языки способны определять абстрактные типы данных и реализовывать основные парадигмы объектно-ориентированного программирования (ООП): инкапсуляцию, наследование и полиморфизм (C++, Java, Object Pascal, и др.). [5, С. 557-559]

1.2.История развития языков программирования

История программ начина­ется с далеких 20-х годов 19 века, когда английский исследователь Ч.Бэббидж выдвинул идею о предварительной записи действий вычислительной машины.

До появления вычислительных машин делались попытки управлять ткацкими станками. Программы для станков записывались на перфокарты, которые были придуманы Чарлзом Бэббиджем и французским изобретателем Жозефом Жаккаром. С этих первых программ началась история программирования, несколько позднее стали закладываться теоретические основы этой науки.

В 20 веке появились электронные вычислительные машины. Первые про­граммы, которые составлялись для них, записывались в машинных кодах. Про­граммист, чтобы написать правильную программу, должен был в деталях представлять себе работу ЭВМ. Это сильно затрудняло общение человека с компьютером, поэтому программисты стали серьезно задумываться над коди­рованием программ. Они пришли к выводу, что программа должна состав­ляться на языке, более доступном человеку, чем язык машинных команд. Возникла необходимость в создании языков программирования.

В 50-е годы был создан язык Форт­ран (FORTRAN от FORmula TRANslator — переводчик фор­мул). Так же, как и первые вычислительные машины, этот язык предназначался, в основном, для проведения естественнонаучных и математичес­ких расчетов. В усовершенствованном виде этот язык сохранил­ся до настоящего времени. Среди современных языков высокого уровня он является одним из наиболее используемых при про­ведении научных исследований.

После Фортрана в 1957 году появился язык Алгол (ALGOL от ALGOrithmic Language — алгоритмический язык). Этот язык так же, как и Фортран, предназначался для решения науч­но-технических задач. Кроме того, этот язык применялся как средство обучения основам программирования.

Лисп (LISP от LISt Processing – обработка списков), созданный в 1960 году Джоном Маккарти. Этот язык широ­ко используется для обработки символьной информации и при­меняется для создания программного обеспечения, имитирующего деятельность человеческого мозга.

В середине 60-х годов разработан в качестве учебного языка язык Бейсик (Beginners All-Purpose Symbolic Instruction Code, или, сокращенно, BASIC).

PL/I (Programming Language One) создан в 1967 году. По своим возможностям ПЛ/1 значительно мощнее многих других языков (Си, Паскаля).

В конце 60-х – начале 70-х гг. появился язык Форт (FORTH — четвертый). Этот язык стал применяться в задачах управления различными системами после того, как его автор Чарльз Мур написал на нем программу, предназначенную для управления радиотелескопом Аризонской обсерватории.

Появившийся в 1971 году язык Паскаль был назван так в честь великого французского математика XVII века, изобрета­теля первой в мире арифметической машины Блеза Паскаля. Этот язык был создан швейцарским ученым, специалистом в области информатики Никлаусом Виртом.

На основе языка Паскаль в конце 70-х гг. был создан язык Ада, названный в честь одаренного математика Ады Лавлейс.

В настоящее время популярным среди программистов явля­ется язык С (Си). Данный язык был создан в лаборатории Bell в 1972 году и первоначально не рассматривался как массовый. Он планировался для замены ассемблера, чтобы иметь возможность создавать столь же эффективные и компактные программы и в то же время не зависеть от конкретного типа процессора. На этом языке в 70-е годы написано множество прикладных и системных программ и ряд известных операционных систем (UNIX).

C++ (Си++). Си++ — это объектно-ориентированное расширение языка Си, созданное Бьярном Страуструпом в 1980 году.

Java (Джава, Ява). Этот язык был создан компанией Sun в начале 90-х годов на основе C++. Он призван упростить разработку приложений на основе C++ путем исключения из него всех низкоуровневых возможностей. Но главная особенность этого языка — компиляция не в машинный код, а в платформно-независимый байт-код (каждая команда занимает один байт). [6, С.25]

В последние десятилетия в программировании возник и полу­чил существенное развитие объектно-ориентированный под­ход. Это метод программирования, имитирующий реальную кар­тину мира: информация, используемая для решения задачи, представляется в виде множества взаимодействующих объектов.

Большинство современных языков программиро­вания — объектно-ориентированные. Среди них последние вер­сии языка Turbo Pascal, C++, Ada и др. В настоящее время ши­роко используются системы визуального программирования Visual Basic, Visual C++, Delphi и др. Они позволяют создавать сложные прикладные пакеты, обладающие простым и удобным пользовательским интерфейсом.[2]

1.3.Обзор и краткая характеристика современных языков программирования

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

- Кобол и PL/1 – для обработки экономической информации;

- Фортран (исторически первый язык высокого уровня) – для решения инженерных и научных задач;

- Бейсик, Паскаль, Лого – для обучения программированию;

- Пролог, Лисп – для решения задач искусственного интеллекта;

- Симула-1, Смолток – для описания задач моделирования дискретных событий;

- Модула-2,Ада – для управления реальными объектами;

- Снобол,Комит и др. – для манипуляции с текстами.

Исторически одним из самых распространенных языков стал Бейсик. Это объясняется прежде всего тем, что Бейсик прост в освоении и испльзовании. Чтобы освоить какую-нибудь особенность или режим работы аппаратных средств, проще всего написать и выполнить соответствующую программу на этом языке.

Язык Паскаль можно считать одним из самых распространенных, хотя он и создавался как учебный. Со временем Паскаль зарекомендовал себя в качестве отличного инструмента для решения серьезных задач, так как его разработчик специально крнструировал язык, позволяющий создавать хорошо структуированные программы. Широкое применение языка Паскаль пользователями IBM PC и совместимых с ними ПЭВМ обусловлено появлением его оригинальной версии – Турбо Паскаль фирмы Borland International. Турбо Паскаль характеризуется такими важными особенностями, как полноэкранное редактирование и убавление, графика, звуковое сопровождение и связь с дисковой ОС.

Модула-2 предложен автором языка Паскаль Н.Виртом. Основная цель, поставленная при его создании, - обеспечить высокоуровневыми языковыми средствами коллективную разработку надежных, эффективных инструментов программирования и использовать возможности аппаратуры.

Язык Кобол был разработан специально для решения экономических задач. Язык позволяет эффективно работать с большим количеством данных, он насыщен разнообразными возможностями поиска, сортировки и распределения. Наиболее удачной версией языка Кобол на сегодняшний день является Кобол/U, в который встроены средства генерации отчетов с использованием языка РПГ.

PL/1 разработан в 1964-1965 годах фирмой IBM. PL /1 относится к числу универсальных языков, т. е. позволяет решать задачи из разных областей: численные расчеты, текстовая обработка, экономические задачи и т. д. По своим возможностям он перекрывает такие языки, как Фортран, Алгол-60 и Кобол, хотя в силу ряда причин вытеснить эти языки PL /1 не смог. [1]

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

Язык РПГ, или генератор отчетов, включает многие понятия и выражения, связанные с машинными методами составления отчетов и проектирования форм выходных документов. Он имеет ограниченную область применения и используется главным образом для печати отчетов, записанных в одном или нескольких файлах базы данных.

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

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

Язык Лисп предназначен для манипулирования перечнями элементов данных. Используется преимущественно в университетских лабораториях США для решения задач, связанных с искусственным интеллектом. В Европе для работ по искусственному интеллекту предпочитают использовать Пролог.

Пролог – язык программирования высокого уровня, предназначенный для разработки систем и программ искусственного интеллекта. Пролог принят в качестве основного языка в японских ЭВМ пятого поколения. Относится к числу широко используемых и постоянно развиваемых языков. Последняя его версия Prolog 6.0. [7, С.311, 312]

Язык СНОБОЛ располагает мощными средствами манипулирования строками и сравнения с образцом. В основном он используется для обработки текстов на естественном языке и применяется в экспертных системах. Известны некоторые версии языка СНОБОЛ, реализованные для ПК, но его применение ограничено сферой искусственного интеллекта. [3 С.583]

2. Практическая часть

Вариант № 5

2.1 Постановка задачи

Произвести расчет стоимости междугородних телефонных разговоров абонента по заданным значениям. Для определения дня недели, когда производился звонок, следует использовать функцию ДЕНЬНЕД(), а также функции ЕСЛИ() и ИЛИ() (рис. 1, рис. 2.).

Дмитриева Елена Матвеевна

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

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

ВложениеРазмер
yazyki_programmirovaniya.docx 109.48 КБ
yazyki_programmirovaniya.pptx 1.56 МБ

Предварительный просмотр:

Муниципальное бюджетное общеобразовательное учреждение -

средняя общеобразовательная школа №2 города Аркадака

ИНДИВИДУАЛЬНЫЙ ИТОГОВЫЙ ПРОЕКТ

Сивохин Владислав Иванович

Е.М. Дмитриева, учитель информатики

ГЛАВА I. ПОНЯТИЕ О ЯЗЫКАХ ПРОГРАММИРОВАНИЯ ………………………….………. 4

1.2 История развития языков программирования………………………………………………………………….6

Список использованных информационных источников…… …………………………… …….15

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

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

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

Объект исследования – компьютерные технологии.

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

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

1. Развитие познавательного интереса,

2. Воспитание информационной культуры.

3. Ознакомление с основными языками программирования.

4. Расширение кругозора.

Вид проекта по содержанию – информационно - исследовательский. Вид проекта по комплектности – межпредметный. Методы исследования:

Работа с научной литературой и интернет ресурсами. Систематизация найденных сведений об информационных технологиях.

Продукты проекта: материалы работы, презентация в формате MicrosoftPowerPoint.

Глава I. ПОНЯТИЕ О ЯЗЫКАХ ПРОГРАММИРОВАНИЯ

1.1. ЯЗЫКИ ПРОГРАММИРОВАНИЯ

Язык программирования - это система обозначений, служащая для точного описания программ или алгоритмов для ЭВМ. Языки программирования являются искусственными языками. От естественных языков они отличаются ограниченным числом “слов” и очень строгими правилами записи команд (операторов). Поэтому при применении их по назначению они не допускают свободного толкования выражений, характерного для естественного языка.

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

Основные требования, предъявляемые к языкам программирования:

1) наглядность - использование в языке по возможности уже существующих символов, хорошо известных и понятных как программистам, так и пользователям ЭВМ;

2) единство - использование одних и тех же символов для обозначения одних и тех же или родственных понятий в разных частях алгоритма. Количество этих символов должно быть как можно меньше;

3) гибкость - возможность описания распространенных приемов математических вычислений с помощью имеющегося в языке ограниченного набора изобразительных средств;

4) однозначность - недвусмысленность записи любого алгоритма. Отсутствие ее могло бы привести к неправильным ответам при решении задач.

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

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

По этому критерию можно выделить следующие уровни языков программирования:

  • машинные;
  • машинно-ориентированные (ассемблеры);
  • машинно-независимые (языки высокого уровня).

Разные типы процессоров имеют разные наборы команд. Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня. В данном случае “низкий уровень” не значит “плохой”. Имеется в виду, что операторы языка близки к машинному коду и ориентированы на конкретные команды процессора.

Основные компоненты алгоритмического языка:

  • алфавит,
  • синтаксис,
  • семантика.

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

Синтаксис — это правила построения фраз, позволяющие определить, правильно или неправильно написана та или иная фраза.

Разнообразие классов задач привело к тому, что на сегодняшний день разработано несколько сотен алгоритмических языков. Правда, широкое распространение и международное признание получили лишь 10-15 языков. Среди них в первую очередь следует отметить: Fortran и Algol - языки, предназначенные для решения научно-технических задач, Cobol – для решения экономических задач, Basic – для решения небольших вычислительных задач в диалоговом режиме. В принципе каждый из этих языков можно использовать для решения задач не своего класса. Однако, как правило, применение оказывается неудобным.

1.2 ИСТОРИЯ РАЗВИТИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

Программа – алгоритм, записанный на языке программирования. Программа – последовательность операторов языка. Языки программирования – искусственные языки, строго формализованные: существует правила записи операторов языка – синтаксис языка.

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

Вместо 1 и 0 программисты теперь могли пользоваться операторами (MOV, ADD, SUB и т.д.), которые похожи на английские слова. Программы на ассемблере также являются машинно-зависимыми. Для преобразования в машинный код использовался компилятор (спец. программа – переводчик в машинный код). Язык ассемблера — это машинно-зависимый язык низкого уровня, в котором короткие имена соответствуют отдельным машинным командам. Используется для представления в форме программ, записанных в машинном коде.

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

С середины 50-ых гг. XX в. начали создавать первые языки программирования высокого уровня (high-level language). Эти языки были машинно-независимыми (не привязаны к определённому типу ЭВМ). Но для каждого языка были разработаны собственные компиляторы. Языки высокого уровня были разработаны для того, чтобы освободить программиста от учета технических особенностей конкретных компьютеров. Уровень языка характеризуется степенью его близости к естественному языку. Машинный язык не похож на человеческий, он крайне беден в своих изобразительных средствах.

Примеры таких языков: FORTRAN (FORmula TRANslator; 1954) предназначен для научных и технических расчетов; COBOL (1959) был предназначен в основном для коммерческих приложений (обрабатывал большие объемы нечисловых данных) – Common Business-Oriented Language)); язык BASIC (Beginner’s All Purpose Instuction Code – универсальный язык символьных инструкций для начинающих; 1964)

С начала 80-ых г. XX в. начали создаваться языки программирования, которые позволили перейти к структурному программированию (использование операторов ветвления, выбора цикла). К этим языкам относятся: язык Pascal (назван его создателем Никлаусом Виртом в честь великого физика Блеза Паскаля; 1970); язык Си, позволяющий быстро и эффективно создавать программный код (1971)

  1. Языки объектно-ориентированного программирования (90-ые г. XX в.).
    В основу этих языков положены программные объекты, которые объединяют данные и методы их обработки. В этих языках сохранялся алгоритмический стиль программирования. Для них были разработаны среды программирования, позволяющие визуально конструировать графический интерфейс приложений:

язык С++ (1983) - продолжение алгоритма языка Си;

язык Object Pascal (1989) был создан на основе языка Pascal. После создания среды программирования – Delphi (1995);

язык Visual Basic(1991) был создан корпорацией Microsoft на основе языка Qbasic (1975) для разработки приложений с графическим интерфейсом в среде ОС Windows.

  1. Языки программирования для компьютерных сетей.

В 90-ые годы XX в. в связи с бурным развитием Интернета были созданы языки, обеспечивающие межплатформенную совместимость. На подключенных к Интернету компьютерах с различными ОС (Windows, Linux, Mac OS и др.) могли выполняться одни и те же программы. Исходная программа компилируется в промежуточный код, который исполняется на компьютере встроенной в браузер виртуальной машиной:

язык Java - объектно-ориентированный язык был разработан фирмой Sun Microsystems для создания сетевого программного обеспечения (1995);

язык JavaScript – язык сценариев Web-страниц (компания Netscape; 1995)

Для того, чтобы процессор мог выполнить программу, данные должны быть загружены в оперативную память. Необходимо, чтобы в ОП была размещена программа-транслятор, автоматически переводящая с языка программирования в машинные коды. Трансляторы бывают двух типов: интерпретаторы и компиляторы. Интерпретатор – программа, которая обеспечивает последовательный перевод операторов программы с одновременным их выполнением. Достоинством интерпретатора является удобство отладки (поиск ошибок), недостатком – малая скорость выполнения. Компилятор переводит весь текст программы на машинный язык и сохраняет его в исполнимом файле (обычно с расширением .exe).

Алгоритмический язык (язык программирования) представляет собой один из способов записи алгоритма. Язык программирования является строго формализованным, то есть все команды записываются по определенным правилам и отступления от этих правил не допускаются. Например, в русском языке можно при разделении элементов перечисления поставить запятую (,) или точку с запятой (;). А в языке программирования при записи команд нельзя изменить ни одного знака - возникает ошибка.

Программа, написанная на языке программирования, состоит из команд (операторов), задающих последовательность действий. Эти действия выполняются над некоторыми объектами. Объектами могут быть числа, текстовые строки, переменные. Языки отличаются друг от друга множеством допустимых объектов и набором операций, которые можно выполнять над этими объектами.

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

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

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

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

  • Си [C] - Многоцелевой язык программирования высокого уровня, разработанный Деннисом Ритчи в начале 1970-х гг. на базе языка BCPL. Используется на мини-ЭВМ и ПЭВМ. Является базовым языком операционной системы Unix, однако применяется и вне этой системы, для написания быстродействующих и эффективных программных продуктов, включая и операционные системы. Для IBM PC имеется ряд популярных версий языка Си, в том числе - Turbo C (фирмы Borland), Microsoft C и Quick C (фирмы Microsoft ), а также Zortech C (фирмы Symantec). Многие из указанных версий обеспечивают также работу с Си и Си++.

Язык Си разрабатывался как язык системного программирования, для которого можно создать однопроходный компилятор. Стандартная библиотека также невелика. Как следствие данных факторов — компиляторы разрабатываются сравнительно легко [2] . Поэтому данный язык доступен на самых различных платформах. К тому же, несмотря на свою низкоуровневую природу, язык ориентирован на переносимость. Программы, соответствующие стандарту языка, могут компилироваться под различные архитектуры компьютеров.

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

Паскаль [PASCAL] - процедурно-ориентированный язык программирования высокого уровня, разработанный в конце 1960-х гг. Никлаусом Виртом, первоначально для обучения программированию в университетах. Назван в честь французского физика, математика и философа XVII века Блеза Паскаля.

В своей начальной версии Паскаль имел довольно ограниченные возможности, поскольку предназначался для учебных целей, однако последующие его доработки позволили сделать его хорошим универсальным языком, широко используемым для написания больших и сложных программ. Существует ряд версий языка (например, ETH Pascal, USD Pascal, Turbo Pascal) и систем программирования на этом языке для разных типов ЭВМ. Для IBM PC наиболее популярной является система Turbo Pascal фирмы Borland (США).

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

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

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

Java — строго типизированный объектно-ориентированный язык программирования , разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle ). Разработка ведётся сообществом, организованным через Java Community Process , язык и основные реализующие его технологии распространяются по лицензии GPL . Права на торговую марку принадлежат корпорации Oracle.

Java — это серьёзный объектно-ориентированный язык, на котором пишут программы для компьютеров и мобильные приложения. Он интересен тем, что один и тот же код можно скомпилировать под множество разных платформ. Java — один из основных языков для разработки под Android.

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

Перечислить все бренды, которые используют Java, невозможно. В качестве примера можно взять YouTube, Netflix, Facebook, EBay, PayPal.

То, что в свое время Google выбрал Java для разработки Android, подогрело интерес к этому языку среди разработчиков. Сегодня это самая популярная операционная система, и практически все мобильные приложения для нее написаны на Java.

Python — активно развивающийся язык программирования , новые версии с добавлением/изменением языковых свойств выходят примерно раз в два с половиной года. Язык не подвергался официальной стандартизации, роль стандарта де-факто выполняет CPython , разрабатываемый под контролем автора языка. В настоящий момент Python занимает третье место в рейтинге TIOBE с показателем 8,5 %. Аналитики отмечают, что это самый высокий балл Python за все время его присутствия в рейтинге.

Разработка языка Python была начата в конце 1980-х годов сотрудником голландского института CWI Гвидо ван Россумом . Для распределённой ОС Amoeba требовался расширяемый скриптовый язык , и Гвидо начал писать Python на досуге, позаимствовав некоторые наработки для языка ABC (Гвидо участвовал в разработке этого языка, ориентированного на обучение программированию). В феврале 1991 года Гвидо опубликовал исходный текст в группе новостей alt.sources. С самого начала Python проектировался как объектно-ориентированный язык .

В начале учебного года, как только я определился с темой своего проекта, я решил провести небольшой опрос среди учеников своего класса. Целью опроса было выяснить, знают ли девятиклассники, что такое языки программирования. Также учащимся было предложено перечислить языки, которые им известны. В ходе эксперимента было опрошено 26 девятиклассников. Результаты, полученные в ходе опроса, приведены в таблице 1 и диаграммах 1-5.

Читайте также: