Языки программирования.
По признаку «назначение» программы бывают системные, прикладные и системы программирования. Системные и прикладные (классификация) программы изучены. Системы программирования предстоит изучить.
Компьютерные программы создают программисты — люди, обученные процессу их составления (программированию). Мы знаем, что программа — это логически упорядоченная последовательность команд, необходимых для управления компьютером (выполнения им конкретных операций), поэтому программирование сводится к созданию последовательности команд, необходимой для решения определенной задачи
Самому написать программу в машинном коде весьма сложно, причем эта сложность резко возрастает с увеличением размера программы и трудоемкости решения нужной задачи. Условно можно считать, что машинный код приемлем, если размер программы не превышает нескольких десятков байтов и нет потребности в операциях ручного ввода/вывода данных.
Поэтому сегодня практически все программы создаются с помощью языков программирования. Теоретически программу можно написать и средствами обычного человеческого (естественного) языка — это называется программированием на метаязыке, но автоматически перевести такую программу в машинный код пока невозможно из-за высокой неоднозначности естественного языка.
Языки программирования — искусственные языки. От естественных они отличаются ограниченным числом «слов», значение которых понятно транслятору, и очень строгими правилами записи команд (операторов). Совокупность подобных требований образует синтаксис языка программирования, а смысл каждой команды и других конструкций языка — его семантику. Нарушение формы записи программы приводит к тому, что транслятор не может понять назначение оператора и выдает сообщение о синтаксической ошибке, а правильно написанное, но не отвечающее алгоритму использование команд языка приводит к семантическим ошибкам (называемым еще логическими ошибками или ошибками времени выполнения).
Процесс поиска ошибок в программе называется тестированием, процесс устранения ошибок — отладкой.
ЯП – фиксированная система обозначений и правил для описания алгоритмов и структур данных.
Эволюция и классификация ЯП.
I поколение. ЯП – набор машинных команд в двоичном или восьмиричном формате. Для каждой ЭВМ требовался свой язык. От программиста требовалось не только знание ЯП, но и знание архитектуры компьютера.
II поколение. Языки ассемблерного типа, позволяющие вместо двоичного или восьмиричного кода использовать их мнемоническое символьное обозначение – имена. Это шаг вперед по сравнению с 1 поколением, но все же это машинно-ориентированные языки. По-прежнему от программиста требовалось не только знание ЯП, но и знание архитектуры компьютера. Сейчас эти ЯП используются для создания ПО по минимальному объему и с максимальной производительностью.
III поколение. В 1965 г. появился первый язык высокого уровня FORTRAN (Дж. Бэкус, фирма IBM). ЯП этого уровня человеко-ориентированные, проще в освоении. Версии FORTRAN использовались на ЭВМ всех классов. За FORTRAN появились и развились ALGOL, COBOL, BASIC, PL/1, PASCAL, APL, ADA,C, FORth, LISP, MODULA, и др. В настоящее время более 2000 ЯП.
IV поколение. ЯП
1) носят непроцедурный характер – описывают ЧТО делать, а не КАК надо делать. Пример – PROLOG, LONGIN. Свободно осваиваются и применяются непрофессионалами;
2) объектно-ориентированнные - каждый графический объект знает, что нужно делать со своими данными (SMALLTALK, его основа SIMULA-67);
3) языки запросов – извлечение информации из БД. Стандарт этих ЯП является SQL – STRUCTURED QUERY LANGUAGE;
4) языки параллельного программирования – ориентированы на создание ПО для вычислительных систем параллельной архитектуры (многомашинные, мультипроцессорные системы и т.д.). Эти языки являются модификацией FORTRAN, OCCAM, SISAL и т.д.).
V поколение. Языки искусственного интеллекта (InterLisp, EXPERTLISP, IQLISP, SAIL) и естественные языки, не требующие освоения специального синтаксиса. В настоящее время естественные языки ограниченных возможностей (CLOUT, Q$A, HAL).
Фактор | Характеристика | Группы | Примеры ЯП |
Уровень ЯП | Степень близости ЯП к архитектуре компьютера | Низкий | Автокод, ACCEMBLER |
Средний | FORTRAN, PASCAL, ADA, BASIC, C | ||
Высокий | СЕТЛ | ||
Специализация ЯП | Потенциальная или реальная область применения | Общего назначения (универсальные) | ALGOL, PL/1, SIMULA, BASIC, PASCAL |
Специализированные | FORTRAN (инженерные расчеты), COBOL (коммерческие задачи), REFAL, LISP (символьная обработка), MODULA, ADA (программирование в режиме реального времени) | ||
Алгоритмичность (процедурность) | Возможность абстрагироваться от деталей алгоритма. Алгоритмичность тем выше, чем точнее приходится планировать порядок выполняемых действий | Процедурные | ACCEMBLER, FORTRAN, BASIC, PASCAL, ADA |
Непроцедурные | PROLOG, LANGIN |
Дата добавления: 2017-04-20; просмотров: 634;