Общая характеристика языков программирования
Даже при наличии десятков тысяч программ для PC пользователям может потребоваться что-то такое, чего не делают (или делают, но не так) имеющиеся программы. В этих случаях следует использовать системы программирования, т.е. системы для разработки новых программ. Эти системы обычно включают компилятор, осуществляющий преобразование программ на языке программирования в программу в машинных кодах, или интерпретатор, осуществляющий непосредственное выполнение программы на языке программирования, редактор текстов программ, библиотеки полезных подпрограмм, отладчики, а иногда и различные вспомогательные программы. Для популярных языков программирования (Си, Си++, Паскаль, Бейсик, Фортран и др.) имеется множество систем программирования, позволяющих создавать программы, работающие в среде DOS, Windows и др. В последнее время стали появляться системы программирования на языке Java, они позволяют создавать программы, вызываемые при просмотре Web-страниц в глобальной электронной сети Internet. Особым классом систем программирования являются системы для создания приложений типа клиент-сервер. Эти системы позволяют быстро создавать информационные системы для подразделений и даже крупных предприятий. В них содержатся средства для создания пользовательского интерфейса, описания процедур обработки данных, заготовки для выполнения типовых действий по обработке данных и т.д. Эти системы, как правило, позволяют работать с самыми различными СУБД — Oracle, Microsoft SQL Server и др. Виды языков программирования. Формализованный язык, предназначенный для описания программ и алгоритмов решения задач на ЭВМ. Языки программирования являются искусственными. В них синтаксис и семантика строго определены. Поэтому они не допускают свободного толкования выражения, что характерно для естественного языка. Языки программирования разделяются на две основные категории языки высокого уровня и языки низкого уровня: 1)Язык высокого уровня [high-level language] - Язык программирования, средства которого обеспечивают описание задачи в наглядном, легко воспринимаемом виде, удобном для программиста. Он не зависит от внутренних машинных кодов ЭВМ любого типа, поэтому программы, написанные на языках высокого уровня, требуют перевода в машинные коды программами транслятора либо интерпретатора. К языкам высокого уровня относят Фортран , ПЛ/1 , Бейсик , Паскаль , Си , Ада и др. 2)Язык низкого уровня , [low-level language ] - Язык программирования, предназначенный для определенного типа ЭВМ и отражающий его внутренний машинный код (см. ниже также "машинный язык ", " машинно-ориентированный язык " и " язык ассемблера "). Различают также следующие виды языков программирования: 1)Алгоритмический язык [algorithmic language ] - Совокупность символов, соглашений и правил, используемых для однозначного описания алгоритмов и обычно являющаяся часть языка программирования; 2)Неалгоритмический язык [nonalgorithmic language] - Язык программирования, тексты которого не содержат указаний на порядок выполнения операций и служат лишь исходным материалом для синтеза алгоритма решения задачи; 3)Формальный язык [formal language] – Язык программирования, построенный по правилам некоторого логического исчисления или формальной грамматики [formal grammar ], представляющей собой систему правил построения в заданном алфавите конечных знаковых последовательностей, множество которых образует формальный язык; 4)Исходный язык [source language] - Язык программирования, на котором написана программа, в отличие от машинного языка, на котором программы выполняются компьютером. Исходные языки классифицируются на языки высокого уровня и языки низкого уровня. 5)Машинный ( абсолютный ) язык , язык ЭВМ [computer (machine) language] - Язык программирования, предназначенный для представления программ в форме, обеспечивающей возможность их выполнения техническими средствами; 6)Машинозависимый ( машинно-ориентированный ) язык , машинозависимый язык программирования [computer-sensitive (computer-oriented) language] - Язык программирования, учитывающий структуру и характеристики ЭВМ определенного типа или конкретной ЭВМ; 7)Машиннонезависимый язык [machine-independent language] - Язык программирования, структура и средства которого не связаны ни с какой конкретной ЭВМ и позволяют выполнять составленные на нем программы на любой ЭВМ, снабженной трансляторами (см. ниже) с этого языка; 8)Символический язык , язык символического кодирования [symbolic language] - Язык программирования, ориентированный на конкретные ЭВМ и основанный на кодировании машинных операций при помощи определенного набора символов; 9)Гибридный ( комбинированный ) язык [hibrid language] - Язык программирования, использующий также средства другого языка; 10)Графический язык [graphic language ] - Язык, предназначенный для написания программ машинной графики и пользования ими. 11)Базовый язык [base language] – Машинный язык , общий для семейства ЭВМ (язык программирования в СУБД с автономным языком). 12)Общий язык [common language] - Машинный язык, общий для группы ЭВМ и используемых ими внешних устройств; 13)Эталонный язык [reference language ] - Язык, являющийся основой для всех его конкретных версий, являющихся вариантами адаптации эталонного языка к определенным условиям применения и назначения; 14)Язык ассемблера , ассемблер [assembler language ] - Универсальный язык программирования , относящийся к категории языков низкого уровня, структура которого определяется форматами команд, данными машинного языка и архитектурой ЭВМ. Используется программистами в тех случаях, когда невозможно применение языка высокого уровня или требуются эффективные программы в машинных кодах. 15)Декларативный ( непроцедурный ) язык [declararative (nonprocedural) language] - Язык программирования, который позволяет задавать связи и отношения между объектами и величинами, но не определяет последовательность выполнения действий (например, языки Пролог , QBE); 16)Императивный ( процедурный ) язык [imperative language] - Язык программирования, который позволяет в явной форме (при помощи задания выполняемых операторов) определять действия и порядок (последовательность) их выполнения; 17)Язык функционального программирования , функциональный язык [functional language] - Декларативный язык программирования, основанный на понятии функций, которые задают зависимость, но не определяют порядок вычислений. 18)Специализированный язык [special language] - Язык программирования, ориентированный на решение определенного круга задач; 19)Язык описания страниц [PDL - Page Description Language] - Специализированный язык, предназначенный для печатающих устройств. Предусматривает возможность использования изображений в формате, независимом от параметров устройства отображения. Наиболее известным языком такого типа является PostScript. 20)Автономный язык [freestanding language] - Специализированный язык высокого уровня, в замкнутых СУБД (" СУБД с автономным языком "); 21)Язык конструирования интерактивных технологий - В СУБД - язык, предназначенный для описания технологических процессов обработки данных с учетом разделения характера операций по их типам, а также обеспечения диалога с администратором системы; 22)Язык манипулирования данными , ЯМД [DML - Data Manipulation Language] - В СУБД - язык, предназначенный для обращения к базе данных и выполнения поиска, чтения и модификации ее записей; 23)Язык обработки списков [list language] - Специализированный язык, предназначенный для описания процессов обработки данных, представленных в виде списков объектов ; 24)Язык описания данных [DDL - Data Description Language ] - Язык, предназначенный для описания "концептуальной схемы” базы данных ; 25)Язык описания хранения данных [DSDL - Data Storage Description Language ] - Язык, предназначенный для описания физической структуры ( схемы ) базы данных ; 26)Язык описания страниц [page description language] - Система для кодировки документов, которая позволяет точно описать ее внешний вид после подготовки к выводу на печать или на дисплей. Примером использования такого языка служит PDF (Portable Document Format), разработанный Adobe для хранения и представления изображений страниц. 27)Язык представления знаний [KRL - Knowledge Representation Language] - Декларативный или декларативно-процедурный язык, предназначенный для представления знаний в памяти ЭВМ (например, языки Лисп и Пролог ); 28)Язык публикаций [publication language ] - Язык, используемый для публикации алгоритмов и программ; 29)Язык спецификаций [specification language] - Декларативный язык для задания спецификаций программ ; 30)Проблемно-ориентированный язык [problem-oriented language] - Язык программирования, предназначенный для решения определенного класса задач (проблем); 31)Процедурный ( процедурно-ориентированный ) язык [procedure-orinted language] - Проблемно-ориентированный язык, который облегчает выражение процедуры, как точного алгоритма; 32)Язык реального времени [real-time language] - Язык, используемый для программирования задач, в которых критическим является время реакции ЭВМ на сигналы, требующие от нее немедленных действий (например, язык Ада ); 33)Язык управления пакетом [batch control language ] - Набор команд , директив , квалификаторов и правил их использования для управления пакетной обработкой данных; 34)Язык управления заданиями [job-control language ] - Язык, на котором записывается последовательность команд, управляющих выполнением задания. В отличие от обычных языков программирования, в которых объектами описания являются элементы, связанные с решением отдельной задачи, в языках управления заданиями преобразуемыми объектами являются целые программы и выходные потоки данных, обработанных этими программами. 35)Общесетевой командный язык [CNCL - Common Network - Command language ] - Стандартный в рамках вычислительной сети язык диалогового (интерактивного) поиска данных, предназначенный для унификации работы пользователей с неоднородными базами данных, управляемых различными СУБД ; 36)Системный язык [system language ] - Язык общения оператора ЭВМ с вычислительной системой, представляющий собой совокупность команд оператора и сообщений системы; 37)Язык общего назначения , универсальный язык [universal programming language] - Язык программирования, ориентированный на решение задач практически из любой области и объединяющий на единой методической основе наиболее существенные свойства и средства современных машино- и проблемноориентированных языков программирования (например, язык ассемблера , ПЛ/1 и др.); 38)Язык ориентированный на пользователя [user-oriented language ] - Слабоформализованный язык программирования, близкий к естественному языку ; 39)Язык меню [menu language ] - Язык диалога пользователя с системой, основанный на использовании меню.