Классификация языков программирования
Лекция 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!