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



Лекция 1

В учебные планы всех инженерных специальностей высшей школы включена дисциплина «Информатика».

Информатика включает в себя следующие разделы: ТОИ, ВТ, программирование, искусственный интеллект, информационные системы.

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

. Термин информатика появился во французском языке и произошел от французских слов information (информация) и automatique(автоматика) и переводится как «автоматическая работа с информацией». Распространен также англоязычный вариант Computer Science - наука о компьютерах.

Наука информатика зародилась в 60-х годах ХХ века.

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

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

Язык программирования – это формальная знаковая система, предназначенная для написания программ.

Программа –последовательность компьютерных инструкций и данных, позволяющая аппаратному обеспечению вычислительной системы выполнять вычисления или функции управления (стандарт ISO/IEC/IEEE 24765:2010); 2).

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

Команда (инструкция) — это указание, которое определяет, какое действие (операцию) следует выполнять исполнителю.

Данные это формализованное представление информации.

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

Интерфейс – это средство общения или взаимодействие с объектом.

Алгоритмы

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

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

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

1. Дискретность – разбиение алгоритма на последовательность простейших шагов; каждый следующий шаг выполняется после завершения предыдущего.

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

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

4. Эффективность – результат должен быть получен за минимальное машинное время при использовании минимального объема памяти.

5. Результативность – за конечное число шагов должен быть получен результат или сообщение о невозможности получения результата при данном наборе исходных данных.

Способы записи алгоритма

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

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

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

 

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

К 2010 г. в мире было разработано более 8500 языков программирования. Первая программа была написана Адой Лавлейс ещё в 1843 г. для Аналитической машины Чарльза Бэббиджа.

Языки программирования можно классифицировать по различным признакам: эволюционным – по поколениям языков; функциональным – по назначению и исполняемым функциям (описательные, логические, математические); уровню языка – низкого, высокого; области применения – системные, сетевые и пр.

Формальный язык – это система правил для описания процесса обработки информации. В понятие языка входит алфавит и набор синтаксических правил и семантикой (смысл).

Поколения языков сложились исторически и связаны с эволюцией вычислительной техники.

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

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

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

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

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

По уровням языки программирования можно разделить на языки низкого уровня и высокого уровня (ЯВУ).

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

ЯВУ машинно-независимы, так как они ориентированы не на систему команд конкретной ЭВМ, а на систему операторов, характерных для данного языка.

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

Скопировать первое число из ячейки памяти в регистр 1 процессора

Скопировать второе число из ячейки памяти в регистр 2 процессора

Сложить два числа и оставить результат сложения в первом регистре.

Скопировать содержимое регистра 1 в третью ячейку памяти.

В языке высокого уровня этот же текст будет выглядеть так:

Summa=one+two.

По области применения языков программирования выделяют профессиональные языки общего назначения (Java, C, Object Pascal, Visual Basic), языки для программирования интернет-сайтов (PHP, JavaScript, Perl), языки для решения задач искусственного интеллекта (Лисп, Пролог), языки для обучения программированию (Бейсик, Паскаль, Python).

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

С помощью процедурных языков описывается алгоритм решения задачи. Программа состоит из последовательности команд, явно задающих, какие преобразования надо выполнять над данными. Данные хранятся в виде переменных. Такие языки также называют алгоритмическими. К ним относится большинство ЯВУ. Например, язык Си используется при создании системного программного обеспечения.

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

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


Дата добавления: 2020-11-27; просмотров: 132; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!